Program Fungsi pada Ruby

class Proses
def initialize(i)
@i = i
@nama = Array.new(i)
@nilai = Hash.new(i)
end

Blok sintaks di atas merupakan proses pendeklarasian class dari program, serta mendeklarasikan fungsi def dari initialize yang berisikan deklrasi dari variabel – variabel yang akan digunakan di dalam program.

def nama
puts "===Input Nama==="
for x in 0..@i-1
print "Masukkan Nama ke-#{x+1} = "
@nama[x] = gets.chomp
end
puts
end

Listing di atas berguna untuk pendeklarasian fungsi def, yang mana fungsi tersebut berguna untuk menginputkan nama pada program. Dimana nama tersebut bertipekan array, dan proses penginputan nama tersebut menggunakan perulangan for. Setelah itu program akan mencetak spasi baru ke bawah.

def nilai
puts "===Input Nilai==="
for x in 0..@i-1
print "Nilai #{@nama[x]} = "
@nilai[@nama[x]] = gets.to_i
end
puts
end

Sintaks diatas adalah proses untuk pendeklarasian fungsi def, dimana fungsi tersebut berguna untuk memasukkan nilai pada program. Yang mana nilai tersebut bertipekan array, dan proses penginputan nilai menggunakan perulangan for. Setelah itu program akan mencetak spasi baru ke bawah.

def peringkat
n = 0
puts "===Rangking Nilai==="
nilai = Hash[@nilai.sort_by{|key,value|-value}.each{
|key,value|puts "Rangking #{n = n+1}n#{key} = #{value}"}]
puts
end
end

Pada sintaks ini program akan mendeklarasikan fungsi def, dimana fungsi akan menampilkan hasil rangking atau urutan peringkat. Yang mana rangking tersebut didapat dari nilai – nilai yang telah diinputkan sebelumnya. Dan setelah rangking tersebut dicetak, maka program akan mencetak spasi baru ke bawah.

print "Banyaknya Data = "
i = gets.to_i
puts
objek = Proses.new(i)
objek.nama()
objek.nilai()
objek.peringkat()

Listing di atas berfungsi untuk memasukkan banyaknya data sesuai dengan keinginan user. Selanjutnya program akan membuat objek. Dimana objek tersebut akan digunakan untuk memanggil fungsi – fungsi yang telah di deklarasikan sebelumnya. Kemudian program akan memanggil fungsi penginputan nama, fungsi penginputan nilai, dan fungsi mencetak rangking atau urutan.

Nah untuk hasil dari output program diatas adalah seperti berikut

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.