Follow Us @soratemplates

Minggu, 16 Oktober 2016

Contoh Soal Program Ruby Array/Larik MATRIKS

01.09.00 0 Comments
SOAL

Buatlah sebuah program untuk membentuk 2 buah matriks berordo n x n, dimana n adalah inputan user. Lalu hitung sesuai menu:
Menu 1 : Penjumlahan
Menu 2 : Pengurangan
Menu 3 : Perkalian

Menu 4 : Exit

SOURCE CODE

puts "-----------------------------------"
puts "| Program Array dan Array Lanjut: |"
puts "|       M  A  T  R  I  K  S       |"
puts "-----------------------------------"

  puts"MATRIKS A"
  print"masukkan banyak baris matriks A : "
  nA=gets.to_i
  print"masukkan banyak kolom matriks A : "
  mA=gets.to_i
  puts"Ordo Matriks A: #{nA} x #{mA}"
  puts"---------------------------------------"
 
  puts"MATRIKS B"
  print"masukkan banyak baris matriks B : "
  nB=gets.to_i
  print"masukkan banyak kolom matriks B : "
  mB=gets.to_i
  puts"Ordo Matriks B: #{nB} x #{mB}"
  puts"---------------------------------------"
 
  a=Array.new(nA,Array.new(mA,nil))
  b=Array.new(nB,Array.new(mB,nil))
 
  puts"MATRIKS A"
  for i in 1..nA
    baris=[nil]
      for j in 1..mA
        print "Baris ke-#{i} Kolom ke-#{j} : "
        baris[j]=gets.to_i
      end
     a[i]=baris
  end
 
  puts"---------------------------------------"
 
  puts"MATRIKS B"
  for i in 1..nB
    baris=[nil]
      for j in 1..mB
        print "Baris ke-#{i} Kolom ke-#{j} : "
        baris[j]=gets.to_i
      end
    b[i]=baris
  end
   
  puts"---------------------------------------"
 
  puts"MATRIKS A"
   for i in 1..nA
     print "|   "
       for j in 1..mA
         print "#{a[i][j]}   "
       end
     puts "|"
   end
  puts"---------------------------------------"
 
  puts"MATRIKS B"
  for i in 1..nB
    print "|   "
      for j in 1..mB
        print "#{b[i][j]}   "
      end
    puts "|"
  end

puts"----------------------------------------"
pilih="y"
while pilih=="y" do
puts"==========MENU=========="
puts"| 1. Penjumlahan       |"
puts"| 2. Pengurangan       |"
puts"| 3. Perkalian         |"
puts"| 4. Exit              |"
puts"========================"
print"Masukkan Menu : "
menu=gets.to_i

if menu==1
puts"--------------PENJUMLAHAN--------------"
  if nA==nB and mA==mB
    puts "Matriks A+B = "
    for i in 1..nA
      print "|\t"
       for j in 1..mB
         print "#{a[i][j]+b[i][j]}"
         print "\t"
       end
       puts "|"
     end
  else
        puts "Ket : Karena Ordo A dan B tidak sama"
        puts "      maka-->Tidak bisa dijumlahkan"
  end
 
elsif menu==2
puts"------------PENGURANGAN----------------"
  if nA==nB and mA==mB
    puts "Matriks A-B = "
    for i in 1..nA
      print "|\t"
      for j in 1..mB
        print "#{a[i][j]-b[i][j]}"
        print "\t"
      end
      puts "|"
    end
  else
    puts "Ket : Karena Ordo A dan B tidak sama"
    puts "      maka-->Tidak bisa dikurangi"
  end
elsif menu==3
puts"----------------PERKALIAN--------------"
  if mA==nB
    puts "Matriks X = A*B = "
    x=Array.new(nA,Array.new(mB,nil))
      for i in 1..nA
        y=[nil]
          for j in 1..mB
            z=0
              for k in 1..mA
                p=a[i][k]*b[k][j]
                z=z+p
                y[j]=z
              end
             x[i]=y
          end
       end
      
       for i in 1..nA
         print "|\t"
         for j in 1..mB
           print "#{x[i][j]}"
           print "\t"
         end
         puts "|"
       end
  else
  puts "Ket : Karena kolom A dan baris B tidak sama"
  puts "      maka-->Tidak bisa dikalikan"
  end
   
elsif menu==4
   puts"-----------------EXIT------------------"
   break
else
  puts "INPUTAN SALAH..!!"

end
puts "---------------------------------------"
pilih=["a-z/A-Z"]
while pilih!="y" and pilih!="t" do
print "Ingin Mengulang Menu?? (y/t) : "
pilih=gets.chomp
  puts "---------------------------------------"
end
if pilih=="t"
puts "======================================"
puts "|     T E R I M A    K A S I H ^_^   |"
puts "======================================" 
end
end

OUTPUT