Jumat, 19 Oktober 2012

source code menghitung matriks di ruby

perhitungan matriks menggunakan bahasa pemrograman ruby terbilang mudah menurut saya. yang perlu di perhatikan dalam menghitung matriks di ruby adalah hanya Array dan looping. berikut ini adalah contoh program sederhana menghitung matriks menggunakan bahasa pemrograman ruby. :
m="y" or m="Y"
until m=="t" or m=="T" do
print "masukan ordo : "
r=gets.to_i
b=r
k=r
x=b-1
y=k-1
puts
a=Array.new(b).map {Array.new(k)}
for i in 0..x
  for j in 0..y
    print "matriks a, masukan baris ke ",(i+1),", kolom ke",(j+1),": "
      n=gets.to_i
      a[i][j]=n
  end
end
puts
p=Array.new(b).map {Array.new(k)}
for i in 0..x
  for j in 0..y
    print "matriks b, masukan baris ke ",(i+1),", kolom ke",(j+1),": "
      n=gets.to_i
      p[i][j]=n
  end
end
puts
puts "matriks a"
puts
for i in 0..y
  print ("|")
  for j in 0..x
    print(" ",a[i][j]," ")
  end
  puts("|")
end
puts
puts "matriks b"
puts
for i in 0..y
  print ("|")
  for j in 0..x
    print(" ",p[i][j]," ")
  end
  puts("|")
end
puts
  puts "===========pilihan==========="
  puts "1. untuk menjumlahkan matriks"
  puts "2. untuk mengurangkan matriks"
  print "masukan pilihan anda : "
  c=gets.to_i
  puts '==================================='
  if c==1
  puts "hasil penjumlahan adalah "
  puts
  for i in 0..x
    print ("|")
    for j in 0..y
      print "#{a[i][j]+p[i][j]} "
    end
    puts("|")
  end
  puts "=========================================="
  puts "transpose penjumlahan"
  puts
    for i in 0..x
         print ("|")
         for j in 0..y
           print "#{a[j][i]+p[j][i]} "
         end
         puts("|")
       end
  end
  puts'======================================'
if c==2
puts "hasil pengurangan adalah "
 puts
 for i in 0..x
   print ("|")
   for j in 0..y
     print "#{a[i][j]-p[i][j]} "
   end
   puts("|")
 end
  puts '========================================='
  puts "transpose pengurangan"
  puts
  for i in 0..x
     print ("|")
     for j in 0..y
       print "#{a[j][i]-p[j][i]} "
     end
     puts("|")
   end
    puts '========================================='
 end
print "apakah anda ingin mengulang y/t : "
m=gets.chomp
end


penjelasan



Program menghitung matriks ini adalah program yang dibuat untuk menjumlahkan dan mengurangkan dua matriks yang dimana ordo dan nilai matriks akan diinputkan oleh user dan kemudian hasil penjumlahan dan pengurangan tersebut ditranspose yaitu dimana posisi baris menjadi kolom dan kolom menjadi baris.

print "masukan ordo : "
r=gets.to_i
b=r
k=r
x=b-1
y=k-1


            Source kode menghitung matriks di atas adalah proses untuk memasukan ordo n x n dan mendeklarasikan nilai variable yang akan digunakan dalam proses selanjutnya. Pemasukan ordo terserah oleh user jika user memasukan angka 3 maka matriks yang akan keluar terdiri dari 3 baris dan 3 kolom.


a=Array.new(b).map {Array.new(k)}
for i in 0..x
  for j in 0..y
    print "matriks a, masukan baris ke ",(i+1),", kolom ke",(j+1),": "
      n=gets.to_i
      a[i][j]=n
  end
end
puts
p=Array.new(b).map {Array.new(k)}
for i in 0..x
  for j in 0..y
    print "matriks b, masukan baris ke ",(i+1),", kolom ke",(j+1),": "
      n=gets.to_i
      p[i][j]=n
  end
end

 
Kemudian Source kode menghitung matriks berikutnya adalah proses pemasukan nilai baris dan kolom oleh user. Matriks yang dimasukan oleh user ada dua matriks yaitu matriks a dan matriks b. jumlah angka yang dimasukan user adalah tergantung pada jumlah ordo yang dimasukan oleh user. Jika user memasukan angka 3 berarti banyaknya angka dari matriks yang akan dimasukan adalah 9 angka. Karena matriks ada dua maka user akan memasukan data matris sebanyak dua kali. Jadi total user memasukan angka adalah 18 kali.

Kelemahan dari matriks ini adalah tidak bisa memasukan data matriks yang berbeda. Program ini hanya bisa memasukan dua matriks dengan ordo yang sama. Dengan kata lain jika matriks a ordonya 3 x 3 maka matriks b juga ordonya 3 x 3. Sehingga penjumlahan lebih mudah untuk diproses.


puts
puts "matriks a"
puts
for i in 0..y
  print ("|")
  for j in 0..x
    print(" ",a[i][j]," ")
  end
  puts("|")
end
puts
puts "matriks b"
puts
for i in 0..y
  print ("|")
  for j in 0..x
    print(" ",p[i][j]," ")
  end
  puts("|")
end

Dan Source kode menghitung matriks berikutnya adalah proses untuk menampilkan matriks a dan matriks b seperti yang telah diinputkan oleh user.

puts "===========pilihan==========="
  puts "1. untuk menjumlahkan matriks"
  puts "2. untuk mengurangkan matriks"
  print "masukan pilihan anda : "
  c=gets.to_i
  puts '==================================='

 
Setelah matriks a dan matriks b ditampilkan maka aka nada pilihan apakah matriks tersebut akan dijumlahkan atau dikurangkan. Pilihan hanya ada 1 dan 2. Jika user menginputkan angka selain itu maka program tidak akan menampilkan apa-apa. Dan langsung menanyakan perintak perulangan.

puts '==================================='
  if c==1
  puts "hasil penjumlahan adalah "
  puts
  for i in 0..x
    print ("|")
    for j in 0..y
      print "#{a[i][j]+p[i][j]} "
    end
    puts("|")
  end
  puts "=========================================="
  puts "transpose penjumlahan"
  puts
    for i in 0..x
         print ("|")
         for j in 0..y
           print "#{a[j][i]+p[j][i]} "
         end
         puts("|")
       end
  end



Kemudian jika pilihan user 1, maka program akan menjumlahkan matriks a dan matriks b yang kemudian hasil dari penjumlahan tersebut akan ditranspose.


if c==2
puts "hasil pengurangan adalah "
 puts
 for i in 0..x
   print ("|")
   for j in 0..y
     print "#{a[i][j]-p[i][j]} "
   end
   puts("|")
 end
  puts '========================================='
  puts "transpose pengurangan"
  puts
  for i in 0..x
     print ("|")
     for j in 0..y
       print "#{a[j][i]-p[j][i]} "
     end
     puts("|")
   end


Dan jika user memilih 2, maka program akan mengurangkan matriks a dan matriks b dan kemudian hasil dari pengurangan tersebut ditranspose.


print "apakah anda ingin mengulang y/t : "
m=gets.chomp
end


            Dan Source kode menghitung matriks yang terakhir adalah proses perulangan. Dimana user akan ditanya apakah akan mengulang program atau tidak. Jika user ingin mengulang maka user dapat memasukan huruf “Y” yang berarti “ya” dan jika tidak user dapat memasukan huruf “T” yang artinya tidak maka program akan selesai.

 






 

0 komentar:

Posting Komentar