Yukihiro "Matz" Matsumoto

Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
Yukihiro "Matz" Matsumoto, Creator of Ruby

Jumat, 10 Oktober 2014

Dasar Operasi Perbandingan Dan Kondisional Dalam Ruby

Dalam membuat suatu program, hampir selalu kita akan berhadapan dengan pilihan terhadap apa yang akan dilakukan program kita selanjutnya bila menghadapi kondisi tertentu. Kita mungkin akan melakukan hal tertentu bila suatu variabel mempunyai nilai tertentu, hal ini sering disebut branching, dimana kita perlu membuat keputusan berdasarkan kondisional nilai suatu objek.

Pada tips kali ini, saya ingin berbagi mengenai operator-operator kondisional dasar yang dapat digunakan oleh program Ruby dalam melakukan branching pada program anda. Terdapat 3 operator yang akan saya bahas, yaitu if, unless, dan case(biasanya sering dipanggil switch dalam bahasa pemrograman lain seperti C, C++, Objective-C).

Operator &&/and dan ||/or

Kedua operator ini digunakan untuk membandingkan nilai true dan false dari dua atau lebih objek atau ekspresi, setelah dilakukan perbandingan maka operator ini akan mengeluarkan nilai true atau false berdasarkan hasil dari perbandingan. Anda perlu mengetahui bahwa didalam Ruby, setiap objek yang mempunyai nilai nil dan false akan dianggap sebagai false.

Untuk operator &&, kedua objek atau ekspresi yang dibandingkan hanya akan menghasilkan nilai true hanya jika kedua objek yang dibandingkan memiliki nilai true. Jika salah satu nilai adalah false maka hasil yang dikeluarkan adalah false.



Untuk operator ||, perbandingan objek dilakukan dengan membandingkan apabila salah satu objek saja yang memenuhi nilai true, maka hasil yang akan dihailkan juga adalah true. Perbandingan dilakukan dengan melihat dari kiri terlebih dahulu, apabila mempunyai nilai true, maka nilai yang dibagian kanan akan diabaikan, dan nilai yang dihasilkan akan berupa true.


Perlu anda ketahui bahwa Ruby mengijinkan anda untuk mengganti && dengan menggunakan kata and, serta mengganti || menggunakan kata or.

Operator ==, !=, <, <=, >, >=

Operator ini digunakan untuk melakukan perbandingan ekualitas nilai suatu objek. Operator == akan menghasilkan nilai true hanya jika nilai yang dibandingkan memiliki nilai yang sama, sedangkan operator != akan menghasilkan true jika nilai yang dibandingkan memiliki nilai yang berbeda.



Untuk operator <, <=, >, >= anda dapat melihat penjelasannya dibawah ini.
  • >, akan menghasilkan true hanya jika nilai yang kita bandingkan memiliki nilai yang lebih besar
  • >=, akan menghasilkan true hanya jika nilai yang kita bandingkan memiliki nilai sama atau lebih besar
  • <, akan menghasilkan true hanya jika nilai yang kita bandingkan memiliki nilai yang lebih kecil
  • <=, akan menghasilkan true hanya jika nilai yang kita bandingkan memiliki nilai sama atau lebih kecil



If Statement

If statement digunakan apabila anda ingin menjalankan program anda hanya jika kondisi yang anda berikan memenuhi syarat yang anda berikan.




Pertama, variabel age akan digunakan untuk menyimpan nilai yang akan dimasukkan oleh user menggunakan method gets, dilanjutkan dengan method strip untuk menghilangkan whitespace dan newline, serta method to_i untuk mengonversi objek string menjadi objek fixnum. Kemudian, digunakan operator if dengan syarat age > 20, hal ini berarti syntaks yang ada didalam blok if dan end hanya akan diekseskusi jika kondisi yang diberikan memenuhi syarat. Dalam hal ini age yang memiliki nilai 25 > 20 akan menghasilkan nilai true dan syntax yang ada didalam if akan dieksekusi. Sebaliknya apabila hasil yang dihasilkan adalah false, maka syntax yang berada di dalam blok else yang akan dieksekusi.

Elsif Statement

Kita juga dapat menggabungkan beberapa kondisi if menggunakan operasional elsif, dimana akan dilakukan test pada kondisi secara berurutan mulai dari yang paling pertama sampai ke yang paling akhir.



Dapat dilihat bahwa setelah mengassign nilai 40 kedalam variabel age. Dilakukan operasi kondisional if dan elsif, pertama akan dibandingkan apakah age berada didalam rentang 0 - 9, bila tidak ada maka perbandingan akan berlanjut kedalam rentang 10 - 19. Hal tersebut akan terus berlangsung sampai bila ada kondisi elsif yang memenuhi syarat, bila tidak ada maka syntaks yang berada dalam blok else yang akan dieksekusi.

Unless Statement

Unless merupakan operator yang memiliki kemiripan dengan if tetapi mempunyai makna yang berlawanan. Perbandingan hanya akan dijalankan hanya jika nilai yang dibandingkan adalah false. Seringkali sintaks ini membuat bingung programmer yang berasal dari bahasa pemrograman seperti C, sehingga kebanyakan syntaks ini tidak digunakan, dan programmer lebih memilih menggunakan if.



Sintaks yang berada didalam unless akan dijalankan hanya jika hasil dari age > 10 adalah false, dimana pada contoh ini sintaks yang ada didalam unless berhasil diekseskusi karena age tidaklah lebih dari 10.

Tips Shortcut Eksekusi Kode Dalam 1 Baris Menggunakan If dan Unless

Anda dapat mengekseskusi kode di dalam 1 baris menggunakan if atau unless dengan cara dibawah ini.


Case Statement

Case statement atau sering disebut switch dalam bahasa pemrograman lain mempunyai fungsi yang sama dengan multiple if statement, tetapi perbedaan yang utama adalah kita dapat menentukan case objek yang akan kita bandingkan nilainya.




Disini variabel age akan digunakan sebagai case atau perbandingan. Perbandingan dilakukan dengan menggunakan kata when, dimana pada konteks ini digunakan range antara 0 - 9 pada baris pertama, dan dilanjutkan seterusnya pada baris-baris berikutnya. Apabila ada yang memenuhi nilai dari variabel age maka sintaks yang ada didalamnya akan diekseskusi, bila tidak ada maka sintaks yang ada dalam else yang akan dieksekusi. Penggunaan antara case dengan multiple if statements bergantung pada selera dari programmer, tetapi penggunaan case statement seringkali menhghasilkan kode yang lebih jelas dan singkat.

Tidak ada komentar:

Posting Komentar