Looping data

Looping adalah membuat program yang akan dilakukan secara berulang-ulang misalnya kita ingin mencetak data dari 1 sampai 1000, bila kita tidak menggunakan perintah looping kita harus mengetikan angka sebanyak 1000 kali, tapi dengan menggunakan perintah looping kita hanya perlu menuliskan 3 baris program saja. Dalam bahasa ruby juga terdapat berbagai macam bentuk looping yang dapat mengakomodasikan kebutuhan kita bila ingin mencetak kumpulan data baik itu berupa array maupun suatu record.

Looping

  • sama seperti pada program yang lain di dalam ruby terdapat berbagai macam bentuk looping
  • looping adalah melakukan suatu kelompok program secara berulang-ulang
  • batasan antara looping dapat ditentukan dengan 3 hal yaitu nilai awal, counter / penambah dan nilai akhir
  • agar siswa dapat lebih jelas dalam memahami berbagai macam looping yang ada di ruby, maka berikut akan diberikan contoh program
class DeretBilangan
  def initialize(awal, akhir)
    @awal = awal
    @akhir = akhir
  end

  def menggunakan_while_do
    puts "Contoh looping menggunakan while do"
    i = @awal
    while i <= @akhir do 
      puts "bilangan ke #{i}"
      i = i + 1
    end
  end

  def menggunakan_each
    puts "Contoh looping menggunakan each"
    puts "di dalam ruby penulisan each dapat diganti dengan map, collect dan select"
    @data = [10,20,30,45,50,68,74,81]
    total = 0
    @data.each do |nilai|
      puts " #{nilai} "
      total = total + nilai
    end
    puts "Total bilangan diatas adalah #{total}"
  end

  def map_collect_select_each
    @data = [1,2,3]
    @hasil = @data.map { |n| n*2 }
    puts "Hasil perintah map [1,2,3] adalah #{@hasil}"
    @hasil = @data.collect { |n| n*2 }
    puts "Hasil perintah collect [1,2,3] adalah #{@hasil}"
    @hasil = @data.select { |n| n*2 }
    puts "Hasil perintah select [1,2,3] adalah #{@hasil}"
    @hasil = @data.each { |n| n*2 }
    puts "Hasil perintah each [1,2,3] adalah #{@hasil}"
    puts "Bila Cek bila menggunakan kondisi n > 2"
    @hasil = @data.map { |n| n>2 }
    puts "cek n>2 dari map [1,2,3] adalah #{@hasil}"
    @hasil = @data.collect { |n| n>2 }
    puts "cek n>2 dari collect [1,2,3] adalah #{@hasil}"
    @hasil = @data.select { |n| n>2 }
    puts "cek n>2 dari select [1,2,3] adalah #{@hasil}"
    @hasil = @data.each { |n| n>2 }
    puts "cek n>2 dari each [1,2,3] adalah #{@hasil}"
    puts "dari hasil diatas dapat disimpulkan"
    puts "map dan collect sama, yaitu menghasilkan array baru hasil dari perhitungan"
    puts "select akan menghasilkan array tapi berisi data awal yang sesuai dengan syarat"
    puts "each akan selalu mengembalikan seluruh data awal yang di looping"
  end

  def menggunakan_for
    puts "Contoh looping menggunakan for"
    for nilai in 1..10
      puts " #{nilai}"
    end
  end

end

deret1 = DeretBilangan.new(5,10)
deret1.menggunakan_while_do
deret1.menggunakan_each
deret1.menggunakan_for
deret1.map_collect_select_each