Kali ini opvl
bakal sharing tentang bahasa pemrograman Ruby Mungkin pada bertanya-tanya, kenapa ruby, kenapa gk yang lain? Itu karena banyak perusahaan besar yang pakai ruby, contohnya airbnb, github & soundcloud. Buat lebih lengkapnya bisa baca disini.
Nah di sesi sharing kali ini gk ada tools khusus yang perlu diinstall. Kita pakai aja online compiler repl.it . Kalau ada yang pengen tau cara install Ruby, coba colek opvl
aja di kolom komentar atau lewat email. Sapa tau dibikinin postnya.
Beberapa point yang bakal dibahas kali ini adalah
1. Tipe Data
String
Tipe data string banyak ditemuin. Operasi yang paling sering dilakuin ama si string ini biasanya ambil substringnya. Buat bikin si string ini sendiri sama kaya bahasa pemrograman lainnya.
sesuatu = "ini adalah sebuah setring"
Buat ambil substring sendiri sama kaya yang lain
sesuatu = "ini adalah sebuah setring"
sesuatu[-7, 7] #=> setring
sesuatu[4] #=> a
sesuatu[0, 3] #=> ini
sesuatu[4..9] #=> adalah
sesuatu[4...9] #=> adalah
sesuatu[-7, 7]
sama sesuatu[0, 3]
berarti diambil dari index tertentu sebanyak n
. Index minus berarti kita itung dari belakang, kalau -1 berarti paling akhir kalau -7 berarti posisi ke 7 dari belakang. sesuatu[4]
berarti diambil di posisi ke-4. sesuatu[4..9]
berarti kita ambil dari index ke 4 sampai 9 sedangkan sesuatu[4...9]
berarti kita ambil dari index ke 4 sampai 8. Bedanya ..
sama ...
cuma kalau ..
index yang belakangnya dimasukin sedangkan ...
index belakangnya gk dimasukin.
Array
Buat bikin array
ada beberapa cara
nama_array = Array.new #=> []
nama_array = Array.new(5) #=> [nil, nil, nil, nil, nil]
nama_array = Array.new(5, 'default_ini') #=> ['default_ini', 'default_ini', 'default_ini', 'default_ini', 'default_ini']
Array.new
dipakai buat bikin array kosong yg gk ada isinya. Array.new(5)
dipakai buat bikin array dengan panjang 5 sedangkan Array.new(5, 'default_ini')
dipakai buat bikin array dengan panjang 5 dengan isi default nya masing-masing default_ini
.
Buat nambahin nilai baru ada beberapa cara
nama_array = [1, 2, 3, 4, 5]
nama_array.push(6) #[1, 2, 3, 4, 5, 6]
nama_array << 7 #[1, 2, 3, 4, 5, 6, 7]
nama_array.insert(2, 'beda') #[1, 2, 'beda', 3, 4, 5, 6, 7]
nama_array.push(6)
dan nama_array << 7
dipakai buat masukin nilai baru ke akhir suatu array, sedangkan nama_array.insert(2, 'beda')
dipakai buat masukin nilai baru ke index tertentu. Di ruby index dimulai dari 0.
Nah buat ambil data dari array
juga ada beberapa cara
nama_array = [0, 1, 2, 3, 4, 5]
nama_array[3] #=> 3
nama_array.at(5) #=> 5
nama_array[3]
dan nama_array.at(5)
dipakai buat ambil array di index tertentu.
Selain hal-hal diatas, biasanya kita juga suka buat cari tau apakah suatu nilai ada di dalam array
. Disini kita bisa pakai nama_array.include?('nilai_yang_dicek')
dan buat ngitung panjang dari array bisa pakai nama_array.length
atau nama_array.count
Hashes
Hashes mirip sama array, cuma hashes key nya bisa kita modif. Buat contoh pemakaian hashes itu, misal kita pengen nyimpen berapa jumlah utang dari masing-masing temen.
daftarUtang = Hash.new(0)
daftarUtang['Tono'] = 10000
daftarUtang['Mari'] = 23500
Hash.new(0)
dipakai buat bikin hash baru dengan nilai default nya 0. Nilai default itu bakal berguna kalau kita akses key yang gk ada. Biar lebih jelas coba liat contoh dibawah
daftarUtang = Hash.new(0)
daftarUtang['Tono'] += 14300 #=> daftarUtang['Tono'] = 0, ditambah 14300 jadi 14300
daftarUtang2 = Hash.new
daftarUtang2['Tono'] += 14300 #=> daftarUtang['Tono'] = nil, ditambah 14300 jadi error
Buat yang pengen bikin hash langsung ada isinya bisa kya gini
daftarUtang = {'abi' => 22000, 'umi' => 13500}
2. Input & Output
Input
Buat ambil input dari user, kita pakai gets
puts "Nama : "
nama = gets.chomp #=> 12
puts "Hasil masukan #{nama}" #=> Hasil masukan 12
puts "Class masukan #{nama.class}" #=> Class masukan String
.chomp
setelah gets dipakai buat ilangin \n
hasil enter dari keyboard. Hasil dari gets.chomp
tipe datanya String
. Kalau mau ganti tipe data bisa pakai to_i
atau to_f
puts "Nama : "
nama = gets.chomp.to_i #=> 12
puts "Hasil masukan #{nama}" #=> Hasil masukan 12
puts "Class masukan #{nama.class}" #=> Class masukan Integer
Output
Buat nampilin sesuatu ke user, kita bisa pakai beberapa cara puts
print
puts 123
puts 456
print 123
print 456
> 123
> 456
> 123456
puts
bakal kasih newline
diakhir sedangkan print
gk kasih newline
. Buat tampilin variable pakai #{nama_variable}
a = 2
b = 3
puts "a : #{a}, b : #{b}" #=> a : 2, b : 3
3. Fungsi
Kadang kita perlu buat suatu fungsi yang bisa dipanggil berkali-kali buat bikin code lebih simple. Fungsi di Ruby
cukup simple
def cetak
puts "Hasil fungsi cetak"
end
cetak #=> Hasil fungsi cetak
Nama fungsi di Ruby
harus diawali huruf kecil, karena huruf besar dipakai untuk constant
. Fungsi di Ruby
bisa juga dikasih parameter.
def cetak(a, b)
puts "Hasil a : #{a}, b : #{b}"
end
cetak 1, 2 #=> Hasil a : 1, b : 2
Sama kaya dibahasa pemrograman lainnya, kita bisa kasih return value dari fungsi
def itungLuas(p, l)
return p*l
end
luas = itungLuas(4, 3)
puts "Luas : #{luas}" #=> Luas : 12
Sebenernya buat balikin suatu nilai dari fungsi kita bisa aja gk pakai return
. Kalau di fungsi gk ada return
nya, nilai yang bakal dibalikin adalah nilai terakhir sebelum fungsi nya selesai. Jadi fungsi itungLuas diatas bisa ditulis
def itungLuas(p, l)
p*l
end
luas = itungLuas(4, 3)
puts "Luas : #{luas}" #=> Luas : 12
4. Looping
Misal kita mau looping
dari 0-9
kita bisa pakai beberapa cara
n = 10
n.times do |i|
print "#{i} " #=> 0 1 2 3 4 5 6 7 8 9
end
(0..9).each do |i|
print "#{i} " #=> 0 1 2 3 4 5 6 7 8 9
end
.times
lebih simple dipakai tapi gk bisa leluasa buat kasih nilai awal. .times
pasti diawali dari 0
sedangkan .each
bisa kita atur nilai awal dan akhir nya
(1..10).each do |i|
print "#{i} " #=> 1 2 3 4 5 6 7 8 9 10
end
Buat looping Array dan Hash bisa pakai .each
ini_array = [1, 2, 3, 4]
ini_array.each do |i|
print "#{i} " #=> 1 2 3 4
end
ini_hash = {'wow' => 'ula', 'shoot' => 'kick'}
ini_hash.each do |key, value|
puts "key : #{key} value : #{value}"
end
#> key : wow value : ula
#> key : shoot value : kick
5. If Else
n = 1
if n == 1
puts "Satu"
elsif n == 2
puts "Dua"
else
puts "Entah"
end
#> "Satu"
Inget kalau elsif
bukan elseif
atau elif
Sekian sharing opvl
minggu ini. Thanks udah mampir, silakan stay tuned karena bakal ada sharing tiap minggunya. Kalau ada pertanyaan atau request bisa komen dibawah atau colek lewat email hq.opvl@gmail.com . See ya!!