Cara menggunakan Module Pada Ruby
Module adalah kumpulan class dan method yang dapat digunakan oleh program lain. Dengan adanya modul maka program yang kita buat dapat sesingkat mungkin, karena deklarasi class dan method sudah ditempatkan di file lain, sehingga dapat lebih mudah dalam membuat program dan mencari kesalahan suatu program
Module
- module adalah kumpulan class dan method yang dapat digunakan oleh program lain
- Dengan adanya modul maka program yang kita buat dapat sesingkat mungkin, karena deklarasi class dan method sudah ditempatkan di file lain, sehingga dapat lebih mudah dalam membuat program dan mencari kesalahan suatu program
- dengan adanya module memudahkan para programmer untuk saling berbagi program dengan orang lain.
- misalnya ada file module matematika.rb
module Matematika module Kebersamaan def volume "Maaf tidak ada volume" end end class Persegi include Kebersamaan def initialize(sisi) @sisi = sisi end def luas @sisi * @sisi end end class Lingkaran include Kebersamaan def initialize(jarijari) @jarijari = jarijari end def luas 3.14 * jarijari * jarijari end end end
Penjelasan
- nama file disamakan dengan nama module (matematika.rb = module Matematika)
- Aturan pemberian nama module sama dengan pemberian nama class (diawali huruf besar)
- pada program diatas terdapat module matematika dimana didalamnya terdapat 2 class (Persegi dan Lingkaran)
- di dalam module Matematika terdapat module yang lain yang bernama module Kebersamaan
- sengaja diberi nama "Kebersamaan" karena method yang ada di dalam module ini akan digunakan oleh class Persegi dan class Lingkaran
- perintah include Kebersamaan yang ada di dalam class Persegi akan menyisipkan semua method yang ada di dalam module tersebut agar dapat digunakan oleh objek dari class persegi
- demikian pula dengan class Lingkaran dapat menggunakan semua perintah di dalam module kebersamaan
- Buat file ruby yang akan menggunakan module matematika misalnya prak-8a.rb
require_relative "matematika.rb" p1 = Matematika::Persegi.new(10) puts "Luas Persegi pertama adalah #{p1.luas}" puts "Volume Persegi pertama adalah #{p1.volume}"
- penjelasan
- perintah require_relative pada baris pertama untuk memanggil kode program di dalam file tersebut
- perintah Matematika::Persegi pada baris kedua untuk membuat objek dari class yang ada di dalam suatu module
- selanjutnya penggunaan objek dapat dilakukan seperti biasa seolah-olah semua program ada di dalam 1 file ini
- hasil dari program diatas
Modul Baca Rupiah
- pada praktek berikut ini kita akan mempelajari cara penggunaan modul
- buat file baru dengan nama uang.rb
- lakukan copy paste program dibawah ini dan simpan filenya
module Uang class Rupiah def ratusan(nilai) # isi nilai Ratusan digit1 = nilai.div(100) if digit1 != 0 then case digit1 when 1 nratusan = "Seratus " when 2 nratusan = "Dua Ratus " when 3 nratusan = "Tiga Ratus " when 4 nratusan = "Empat Ratus " when 5 nratusan = "Lima Ratus " when 6 nratusan = "Enam Ratus " when 7 nratusan = "Tujuh Ratus " when 8 nratusan = "Delapan Ratus " when 9 nratusan = "Sembilan Ratus " end else nratusan = "" end # isi nilai puluhan / belasan / satuan digit2 = nilai % 100 if (digit2 >= 10) and (digit2 < 20) case digit2 when 10 npuluhan = "Sepuluh " when 11 npuluhan = "Sebelas " when 12 npuluhan = "Dua Belas " when 13 npuluhan = "Tiga Belas " when 14 npuluhan = "Empat Belas " when 15 npuluhan = "Lima Belas " when 16 npuluhan = "Enam Belas " when 17 npuluhan = "Tujuh Belas " when 18 npuluhan = "Delapan Belas " when 19 npuluhan = "Sembilan Belas " end nsatuan = "" else if digit2 < 10 npuluhan = "" else case digit2 when 20..29 npuluhan = "Dua Puluh " when 30..39 npuluhan = "Tiga Puluh " when 40..49 npuluhan = "Empat Puluh " when 50..59 npuluhan = "Lima Puluh " when 60..69 npuluhan = "Enam Puluh " when 70..79 npuluhan = "Tujuh Puluh " when 80..89 npuluhan = "Delapan Puluh " when 90..99 npuluhan = "Sembilan Puluh " end end digit3 = nilai % 10 case digit3 when 0 nsatuan = "" when 1 nsatuan = "Satu " when 2 nsatuan = "Dua " when 3 nsatuan = "Tiga " when 4 nsatuan = "Empat " when 5 nsatuan = "Lima " when 6 nsatuan = "Enam " when 7 nsatuan = "Tujuh " when 8 nsatuan = "Delapan " when 9 nsatuan = "Sembilan " end end ratusan = nratusan + npuluhan + nsatuan end # method ratusan def baca(nilai) snilai = nilai.to_s # jadikan string panjang = snilai.length # ambil panjang string # nilai millard if nilai >= 1000000000 nmilliard = nilai.div(1000000000) nilai = nilai % 1000000000 smilliard = ratusan(nmilliard) + "Milliard " else smilliard = "" nmilliard = 0 end # nilai juta if nilai >= 1000000 njutaan = nilai.div(1000000) sjutaan = ratusan(njutaan) + "Juta " else sjutaan = "" njutaan = 0 end # nilai ribuan if nilai >= 1000 nribuan = (nilai - (njutaan * 1000000)) nribuan = nribuan.div(1000) if nribuan == 0 sribuan = "" else if nribuan == 1 sribuan = "Seribu " else sribuan = ratusan(nribuan) + "Ribu " end end else sribuan = "" nribuan = 0 end if nilai > 0 # nrupiah = (nilai - (njutaan * 1000000) - (nribuan * 1000)) nrupiah = nilai % 1000 srupiah = ratusan(nrupiah) + "Rupiah" else srupiah = "" end matauang = smilliard + sjutaan + sribuan + srupiah end # method baca_rupiah end end
- buat program baru dengan nama Prak-8b.rb
- berikut adalah contoh program
require_relative "uang.rb" u1 = Uang::Rupiah.new puts "Angka 11 dibaca menjadi #{u1.baca(11)}" puts "Angka 1500 dibaca menjadi #{u1.baca(1500)}" puts "Angka 1500000 dibaca menjadi #{u1.baca(1500000)}" puts "Angka 123371181 dibaca menjadi #{u1.baca(123371181)}"
Penjelasan
- Baris pertama adalah memanggil program Uang.rb
- Baris kedua adalah membuat objek u1 dari class Rupiah yang terdapat pada module Uang.
- baris ketiga memanggil method u1 dengan memberikan parameter angka 11
- baris keempat dst sama hanya memberikan nilai yang berbeda-beda sehingga program akan menghasilkan output yang berbeda pula.
- hasil dari program baca rupiah