ruby

16
RUBY Bahasa Yang Bagus tapi Jarang Diketahui Adam Pahlevi Baihaqi CariFreelancer.c om

Upload: rizky-noor-adha

Post on 25-Sep-2015

214 views

Category:

Documents


1 download

DESCRIPTION

.

TRANSCRIPT

RUBYBahasa Yang Bagus tapi Jarang Diketahui

Adam Pahlevi BaihaqiCariFreelancer.comLearn by DoingTell me and I forget, teach me and I may remember, involve me and I learn (Benjamin Franklin)Tujuan penyelenggaraan?Memperkenalkan bahasa RubyMemperkenalkan web framework RailsKenapa Ruby?Banyak hal yang bisa dilakukan di Ruby, tapi (umumnya) tak bisa di bahasa lain:Meta-programming, memprogram pemrograman.Membuat bahasa sendiri dengan Ruby (DSL)100% OO (1.to_s)100% Scripting (gak perlu kelas)LambdaSyntax yang mudah dibacaInstalasi plugin/library yang sangat mudahFungsiFungsi di definisikan dengan defFungsi tidak harus berada di dalam kelasFungsi dengan self berarti statisFungsi bisa private, public atau protectedPemanggilan fungsi tidak perlu parenthesisParameter fungsi bisa menggunakan HashFungsi bisa didefinisikan ulang, tapi tidak bisa di overloadprogrammer yang baru, gak ngerti apa bedanya fungsi di kelas dan gak di kelas. aku contohkan Remote dan AC, fungsi di Remote bisa kendalikan suhu di AC. di Java, setiap fungsi harus ada di Class. Di Ruby gak harus. misal saat migrasi data, Class gak dibutuhkan.Data struktur: ArrayMembuat array: [1,2,3] masukkan elemen antara [ dan ]Jika elemen String, bisa menggunakan %w{}Iterasi array menggunakan .eachData struktur: HashHash menggunakan simbol {}, contoh: {nama: adam pahlevi}Di Ruby versi lama, harus menggunakan notasi =>, contoh: {nama => adam pahlevi}Hash key-nya bisa menggunakan String atau Simbol.Hash memiliki each, each_key, dan each_valueSimbol?String dalam Ruby bersifat Mutable, tidak seperti di Java. Sehingga, untuk alasan kecepatan/efisiensi, diciptakanlah Simbol.adam (:adam = :adam)Jangan gunakan Simbol sebagai pengganti String!!! Simbol umumnya digunakan sebagai elemen key dari Hash.String (1)String bisa menggunakan petik dua, atau petik satu.Interpolasi hanya bisa dilakukan jika petik dua.String multi-line menggunakan %q()print = echo atau System.out.print.String (2)puts = System.out.println.gets = Scanner.split untuk konversi ke Array.split() per karakter.split( ) per kata.join untuk konversi ke String dari ArrayBlokBlok bisa diekspresikan dengan {} ataupun do...end l = -> { puts adam } # atau l = Proc.new do # error jika do end berhadapan dengan = puts ADAM endBlok bisa menerima argumenBlok banyak digunakan di RubyBlok sering digunakan untuk kode iterasiIterasiMenggunakan x.upto(y) | x & y = integer 1.upto(5).each do |i| endMenggunakan range x..y atau x...y (x..y).each { |i| puts index ke-#{i} }Paling sederhana menggunakan times 5.times { |i| puts index ke-#{i} }TantanganBuat program scanner teks. Hitung kemunculan kata dalam teks tersebut.

Misal, input: saya suka rubyOutput: {saya: 1, suka: 1, ruby: 1}Null = nilRuby memang OO, tapi gak memaksa OO.Saking OO-nya Ruby, pada dasarnya, nil adalah sebuah objek!Untuk mengetahui kelas suatu objek, ketik saja: nil.class, 1.class, adam.classUntuk mengecek apakah sesuatu itu nil atau tidak, gunakan saja .nil? 1.nil? adam.nil? nil.nil?True/FalseLucunya, Ruby tidak memiliki Boolean -_-true adalah TrueClass, false adalah FalseClassJujur saja, satu-satunya yang gak tak suka dari Ruby itu ya ini, gak ada Boolean-nya.Tapi jujur, ini juga karena saking OO-nya Ruby.Integer dan FloatSetiap angka non-desimal pada dasarnya bertipe IntegerSetiap angka yang memiliki desimal, pada dasarnya adalah FloatDi Ruby tidak ada Long, atau Double. Jika Integer/Float melebihi batas, akan dikonversi oleh Ruby secara otomatis ke tipe data yang lebih besar.Untuk mengetahui apakah suatu angka adalah kosong, .zero?