Minggu, 06 November 2016

Array pada Ruby



Assalamu’alaikum WR. WB., hai para bloger pada postingan saya kemarin saya membahas tentang bahasa pemrograman ruby mengenai perulangan. Silahkan bagi kalian yang belum melihat bisa melihatnya Di Sini. Sekarang saya akan menjelaskan kembali bahasa pemrograman ruby mengenai array pada ruby.

Array pada ruby

Tipe data Array di Ruby hampir sama dengan tipe data array pada bahasa pemrograman lain umumnya. Tipe data Array di Ruby sama dengan tipe data list di Python. Untuk membuat suatu objek Array baru, Kita dapat menggunakan literal Array [] ataupun konstruktor Array.new. Isi array dapat berupa objek apapun baik angka, string, maupun objek lain termasuk objek array itu sendiri. Untuk mengakses elemen objek Array ini, kita menggunakan indeks di mana indeks awal dimulai dari 0 sampai panjang array – 1. Kita juga dapat menggunakan indeks negatif di mana indeks -1 berarti elemen terakhir , -2 berarti elemen kedua terakhir, dan seterusnya.

Apabila kita mencoba mengakses elemen Array pada indeks yang di luar jangkauan, pernyataan tersebut tidak akan menyebabkan error seperti IndexError : list index out of range di Python, Ruby akan mengembalikan objek nil. Untuk mengubah isi array ataupun menambahkan data pada objek Array dengan indeks tertentu, kita bisa menggunakan statement biasa seperti array[indeks] = nilai baru. Apabila kita ingin membuat objek Array yang berisi string, akan repot sekali untuk menambahkan tanda kutip pada setiap elemen Array. Hal tersebut dapat diatasi dengan menggunakan prefiks %w.

Sekarang langsung saja pada programnya, silahkan untuk copy-paste untuk kalian yang ingin mencoba meruning program ini :

def menu()
puts ""
puts "===============Menu=============="
puts "1. Array"
puts "2. Hash"
puts "3. Range"
puts "4. Keluar"
puts "================================="
print "Masukan Pilihan : "
a = gets.to_i
if a == 1
            array
elsif a == 2
            hash  
elsif a == 3
            range
elsif a == 4
            exit     
else
puts "Maaf Menu Yang Anda Pinta Tidak Tersedia :"
end
end
def array()
nama=[]
kelas=[]
uts=[]
uas=[]
print "Masukan jumlah data mahasiswa : "
jumlah = gets.to_i
for i in 1..jumlah
print "Masukan Nama Mahasiswa Ke #{i}: "
nama[i] = gets.to_s
print "Masukan Kelas Anda : "
kelas[i] = gets.to_s
print "Masukan Nilai UTS : "
uts[i] = gets.to_i
print "Masukan Nilai UAS : "
uas[i] = gets.to_i
end
puts "Data Mahasiswa yang anda input"
puts "================================="
for i in 1..jumlah
print "Nama Mahasiswa Ke #{i}: "
print nama[i]
print "Kelas : "
print kelas[i]
print "Total Nilai Akhir : "
puts (uas[i]+uts[i])/2
puts "================================="
end
ulang
end
def hash()
puts "================================================"
            print "Masukkan Nama Mahasiswa : "
            nama = gets.to_s
            nama.chop!
            print "Masukkan Npm Mahasiswa : "
            npm = gets.to_s
            npm.chop!
            print "Masukkan Kelas Mahasiswa : "
            kelas = gets.to_s
            kelas.chop!
            print "Masukkan Jurusan Mahasiswa : "
            jurusan = gets.to_s
            puts "================================================"
            jurusan.chop!
            data = {"Nama"=>nama,"Npm"=>npm,"Kelas"=>kelas,"Jurusan"=>jurusan}          
print "Masukkan data yang ingin ditampilkan : "
x = gets.to_s
x.chop!
puts data[x]
ulang()
end                
def range()
rata = 0
print "Masukan Batas Bilangan : "
x = gets.to_i
for i in 1..x
print "Masukan Nilai Ke #{i}: "
bil = gets.to_i
rata = rata + bil
end
print "Rata-Rata Nilai yang diinput adalah : "
rata2 = rata/x
puts (rata2)
puts "================================"
ulang
end
def ulang ()
print "Back to menu [y/n] "
            a = gets
            a.chop!
            if a == "y"
                        menu
            else
            puts "Terimakasih :) :* "
            end
            end
menu

LOGIKA PROGRAM

def menu()
puts ""
puts "===============Menu=============="
puts "1. Array"
puts "2. Hash"
puts "3. Range"
puts "4. Keluar"
puts "================================="
print "Masukan Pilihan : "
a = gets.to_i
if a == 1
  array
elsif a == 2
  hash  
elsif a == 3
  range
elsif a == 4
  exit  
else
puts "Maaf Menu Yang Anda Pinta Tidak Tersedia :"
end
end
Blok sintaks di atas adalah header dalam program Array.rb ini yang di simpan kedalam fungsi def dengan nama menu(). Dimana menggunakan perintah percabangan if elsif else untuk memilih menu yang ingin kita jalankan, jika menginputkan nomor 1 maka program akan menjalankan program array, jika menginputkan nomor 2 maka program akan menjalankan program hash, jika menginputkan nomor 3 maka program akan menjalankan program range dan jika menginputkan nomor 4 maka program akan keluar



def array()
nama=[]
kelas=[]
uts=[]
uas=[]
print "Masukan jumlah data mahasiswa : "
jumlah = gets.to_i
for i in 1..jumlah
print "Masukan Nama Mahasiswa Ke #{i}: "
nama[i] = gets.to_s
print "Masukan Kelas Anda : "
kelas[i] = gets.to_s
print "Masukan Nilai UTS : "
uts[i] = gets.to_i
print "Masukan Nilai UAS : "
uas[i] = gets.to_i
end
puts "Data Mahasiswa yang anda input"
puts "================================="
for i in 1..jumlah
print "Nama Mahasiswa Ke #{i}: "
print nama[i]
print "Kelas : "
print kelas[i]
print "Total Nilai Akhir : "
puts (uas[i]+uts[i])/2
puts "================================="
end
ulang
end
Blok sintak di atas adalah kodingan untuk program no 1 yaitu array yang ditaruh d dalam fungsi def. Dengan nama[], kelas[], uts[] dan uas[] adalah variabel yang dimasukkan kedalam array yang nantinya akan diginakan untuk memanggil pada inputan nanti. Program akan meminta untuk memasukan banyaknya mahasiswa yang ingin di inputkan dan dihitung nilai totalnya, dengan menggunakan perintah perulangan for. Program ini akan meminta inputan untuk nama, kelas, nilai uts dan nilai uas, yang nantinya akan ditampilkan untuk nama, kelas dan total niilai yang telah dihitung yang nantinya akan memanggil dari variabel array tadi. Ulang adalah perintah untuk memanggil fungsi ulang nanti

def hash()
puts "================================================"
            print "Masukkan Nama Mahasiswa : "
            nama = gets.to_s
            nama.chop!
            print "Masukkan Npm Mahasiswa : "
            npm = gets.to_s
            npm.chop!
            print "Masukkan Kelas Mahasiswa : "
            kelas = gets.to_s
            kelas.chop!
            print "Masukkan Jurusan Mahasiswa : "
            jurusan = gets.to_s
            puts "================================================"
            jurusan.chop!
            data = {"Nama"=>nama,"Npm"=>npm,"Kelas"=>kelas,"Jurusan"=>jurusan} 
print "Masukkan data yang ingin ditampilkan : "
x = gets.to_s
x.chop!
puts data[x]
ulang()
end
Blok sintaks di atas adalah kodingan untuk program nomor 2 yaitu hash. Dalam program ini kita akan di minta untuk menginputkan nama, npm, kelas dan jurusan. Sama halnya pada fungsi dictionary pada python, fungsi hash juga digunakan untuk membuat objec data yang diinginkan, dengan menggunakan literal hash {}  ataupun konstruktor Hash.new. Dengan menyimpan objek berupa variabel nama, kelas, npm dan jurusan kita akan menignputkanya telebih dahulu  lalu pada perintah selanjutnya kita akan memanggilnya dengan objek variabel tadi

def range()
rata = 0
print "Masukan Batas Bilangan : "
x = gets.to_i
for i in 1..x
print "Masukan Nilai Ke #{i}: "
bil = gets.to_i
rata = rata + bil
end
print "Rata-Rata Nilai yang diinput adalah : "
rata2 = rata/x
puts (rata2)
puts "================================"
ulang
end
Blok sintaks di atas adalah kodingan untuk program nomor 3 yaitu range. Range pada ruby merupakan suatu barisan di mana tterdapat nilai awal dan nilai akhir dari barisan tersebut. Pada program ini, kita akan di minta untuk menginputkan batas bilangan yang ingin dihitung dengan variabel x, lalu selanjutnya kita masukan kembali banyak bilangan sesuai dengan batasannya. Selanjutnya program akan melooping banyaknya batas dengan rumus variabel rata ditambah variabel bil. Terakhir untuk mengitung rata-ratanya program menghitung dengan rumus variabel rata dibagi variabel x

def ulang ()
print "Back to menu [y/n] "
            a = gets
            a.chop!
            if a == "y"
                        menu
            else
            puts "Terimakasih :) :* "
            end
            end
menu
Blok sintak di atas adalah kodingan untuk mengulang program yang dimasukkan kedalam fungsi def ulang(). Dimana program ini menggunakan perintah percabangan if else, jika kita menginputkan kata / tulisan y maka program akan mengulangnya dan kembali pada menu awal. Jika menginputkan n maka program akan keluar dengan sendirinya atau berhenti

OUTPUT PROGRAM


Perulangan Ruby



Assalamu’alaikum WR. WB., hai para bloger pada postingan saya kemarin saya membahas tentang bahasa pemrograman ruby mengenai percabangan. silahkan bagi kalian yang belum melihat bisa melihatnya Di Sini. Sekarang saya akan menjelaskan kembali bahasa pemrograman ruby mengenai perulangan pada ruby.

Membuat menu menggunakan perulangan

Perintah perulangan di gunakan untuk mengulang pengeksekusian statemen-statemen hingga berkali-kali sesuai dengan iterasi yang diinginkan. Dalam Ruby, perintah untuk perulangan (loop) adalah times, while dan for.
Perintah Times
Perintah times digunakan untuk perulangan yang sangat sederhana. Hanya dengan
bentuk umum serperti di bawah ini kita bisa langsung mendapatkan output berulang.
Perintah While
Perintah while pada Ruby merupakan perintah yang paling umum digunakan untuk
proses perulangan. Konsep sederhana dari perintah while adalah statement yang terdapat di dalam while akan diulang pengeksekusiannya selama nilai kondisinya benar. Dan ia akan keluar atau tidak melakukan eksekusi blok statemen jika nilai kondisinya salah.
Perintah For
Perintah for dalam Ruby sama seperti bahasa pemrograman lainnya. Pada perulangan
for ini lebih spesifik dari pada perintah while. Kita dapat menentukan range (batasan) pada perulangan ini.

Sekarang langsung saja pada programnya, silahkan untuk copy-paste untuk kalian yang ingin mencoba meruning program ini :

p = 0
while p != 4
puts " "
puts " "
puts "|===== Selamat DATANG =====|"
puts "1. Segitiga"
puts "2. Faktorial"
puts "3. Deret Fibo"
puts "4. Keluar"
puts "============================"
print "Masukan pilihan anda : "
a = gets.to_i
while p != 4

if a == 1
print "Masukan tinggi : "
x = gets.to_i
i = 1
temp = x

while i <= x
c = 1
            while c <= i
            print " "
            c+=1
            end
                        d = 1
                        while d <= temp
                        print "* "
                        d+=1
                        end
i+=1
temp -=1
puts ""
end
break

elsif a == 2
print "Masukan nilai : "
x = gets.to_i
c = 1
for i in 1..x
print (i)
            if (i<x)
            print ("x")
            end
            c = c*i
end
print ("=")
print (c)
break

elsif a == 3
print "Masukan jumlah fibo : "
x = gets.to_i
a = 0
b = 0
c = 1

d = 1
while d < x do
d = d+1
puts b
a = c + b
b = c
c = a
end
break
elsif a == 4
exit

else
puts "Inputan anda salah"
exit
end
end
end

Logika Program

p = 0
while p != 4
puts " "
puts " "
puts "|===== Selamat DATANG =====|"
puts "1. Segitiga"
puts "2. Faktorial"
puts "3. Deret Fibo"
puts "4. Keluar"
puts "============================"
print "Masukan pilihan anda : "
a = gets.to_i
while p != 4
Blok sintaks di atas digunakan untuk membuat header dari menu.rb ini, dengan menggunakan perulangan while program akan mengulang menu ini dan meminta inputan untuk memilih program mana yang ingin kita jalankan dan akan berhenti apabila kita menginputkan no 4

if a == 1
print "Masukan tinggi : "
x = gets.to_i
i = 1
temp = x
while i <= x
c = 1
while c <= i
print " "
c+=1
end
d = 1
while d <= temp
print "* "
d+=1
end
i+=1
temp -=1
puts ""
end
break
Blok sintaks di atas adalah program untuk pilihan pertama yaitu gambar segitiga terbalik. Dimana if == 1 digunakan untuk membuat percabangan dimana akan bekerja apabila pada inputan di menu kita menginputkan no satu. Program akan meminta inputan juga untuk menentukan tinggi segitiga dengan variabel x dan menggunakan tipe data integer. Dalam program ini menggunakan perulangan while 

elsif a == 2
print "Masukan nilai : "
x = gets.to_i
c = 1
for i in 1..x
print (i)
if (i<x)
print ("x")
end
c = c*i
end
print ("=")
print (c)
break
Blok sintaks di atas adalah program untuk pilihan kedua yaitu faktorial. Dimana kita diminta untuk menginputkan nilai yang ingin kita hitung menggunakan perintah  perulangan for. Dimana nantinya jika kita menginputkan nilai 5 maka program akan menghitungg faktorialnya, dengan menghitung perkalian dari angka 1 sampai 5

elsif a == 3
print "Masukan jumlah fibo : "
x = gets.to_i
a = 0
b = 0
c = 1
d = 1
while d < x do
puts b
a = c + b
b = c
c = a
end
break
Blok sintaks di atas adalah program untuk pilihan ketiga yaitu deret fibonacci. Dimana kita diminta untuk menginputkan banyaknya deret fibonacci yang di inginkan. Dengan variabel yang sudah ditentukan, program akan menghitungnya dimana jika kita menginputkan 7 maka program akan mengeluarkan sebanyak 7 deret.Dengan perhitungan deret satu, dua dan tiga bernilai 0, 1, 1 selanjutnya pada baris ke empat akan dihitung deret ketiga ditambah dengan deret kedua

elsif a == 4
exit

else
puts "Inputan anda salah"
exit
end
end
end
Blok sintaks di atas adalah perintah untuk menu no 4 yaitu keluar. Dalam bahasa pemrograman ruby jika untuk menghentikan atau mengakhiri suatu program yang sedang berjalan, kita hanya perlu menambahkan kodingan exit untuk mengakhiri program tersebut. Dan kondisi terakhir dalam percabangan menu ini adalah else digunakan jika kita menginputkannya tidak sesuai pada program yang dibuat maka program akan mengoutputkan “Inputan anda salah” dan menggunakan perintah exit untuk mengakhiri running dari program tersebut

OUTPUT PROGRAM