Operator didalam Ruby


Pada sub-bagian ini kita akan mempelajari dasar tentang operator yang digunakan dalam Ruby. Ruby mendukung banyak sekali jenis operator, seperti pada bahasa pemrograman terkenal lainnya seperti Java, PHP, Pyhton dan lain-lain.

Banyak operator dalam Ruby sebenarnya adalah proses pemanggilan sebuah method. Contohnya ketika kita menulis kode a + b, Ruby akan menterjemahkan kode tersebut sebagai a.+(b), dimana + adalah method dari a, dan b adalah argumen yang dikirim melalui method +. Pada tabel dibawah, kita akan mengasumsikan nilai a dan b masing-masing adalah 20 dan 10.

Operator Aritmatik Ruby

Operator Deskripsi Contoh
+ Penjumlahan a + b = 30
- Pengurangan a - b = 10
/ Pembagian a / b = 2
* Perkalian a * b = 200
% Modulus - Mendapatkan sisa dari hasil pembagian a % b = 0
** Perpangkatan - a pangkat nilai dari b a ** b

Operator Pembanding Ruby

Operator Deskripsi Contoh
== Cek apakah nilai dari kedua sisi sama atau tidak. Jika bernilai sama, maka akan menghasilkan nilai true a == b menghasilkan nilai false
!= Cek apakah nilai dikedua sisi memiliki nilai yang berbeda. Jika iya, maka akan menghasilkan nilai true a != b menghasilkan true
> Cek apakah nilai yang ada disebelah kiri lebih besar dari pada nilai disebelah kanan a > b menghasilkan nilai true
< Cek apakah nilai yang ada disebelah kiri lebih kecil dari pada nilai disebelah kanan a < b menghasilkan nilai false
>= Cek apakah nilai yang ada disebelah kiri lebih besar atau sama dengan nilai yang ada disebelah kanan a >= b menghasilkan nilai true
<= Cek apakah nilai yang ada disebelah kiri lebih kecil atau sama dengan nilai yang ada disebelah kanan a <= b menghasilkan nilai false
<=> Operator pembanding kombinasi. Jika nilai kiri dan kanan sama, maka akan menghasilkan nilai 0. Jika nilai kiri lebih besar dari nilai kanan, maka akan menghasilkan nilai 1, dan sebaliknya akan menghasilkan nilai -1 (a <=> b) menghasilkan 1
eql? Operator yang akan mengembalikan nilai true jika memiliki kesamaan tipe object dan nilai. 1 == 1.0 akan menghasilkan true. Namun 1.eql? 1.0 akan menghasilkan false, karena tipe object yang dimiliki berbeda, yakni Float dan Fixnum.
equal? Akan menghasilkan true jika object yang dibandingkan memiliki object_id yang sama a = "a"; b = a; a.equal? b akan menghasilkan true. Namun a = "a"; b = a.dup; a.equal? b akan menghasilkan false, karena sudah memiliki object_id yang berbeda.

Operator Assignment / Pemberi Nilai Ruby

Operator Deskripsi Contoh
= Operator untuk memberikan nilai terhadap suatu variabel atau object. Ini adalah operator paling dasar dan yang akan paling sering digunakan. c = a + b berarti hasil penjumlahan akan disimpan kedalam local variable c
+= Menjumlahkan nilai yang ada disebelah kanan ke sebelah kiri dan menyimpan hasilnya di variable sebelah kiri b += a sama artinya dengan b = b + a
-= Menguraing nilai disebelah kiri dengan nilai yang ada disebelah kanan lalu menyimpan hasilnya di variable sebelah kiri a -= b sama artinya dengan a = a - b
*= Mengalikan nilai disebelah kanan dengan nilai yang ada disebelah kiri lalu menyimpan hasilnya di variable sebelah kiri b *= a sama artinya dengan b = b * a
/= Membagi nilai disebelah kanan dengan nilai yang ada disebelah kiri lalu menyimpan hasilnya di variable sebelah kiri a /= b sama artinya dengan a = a / b
%= Melakukan operasi modulus antara nilai disebelah kiri terhadap nilai disebelah kanan lalu menyimpan hasilnya di variable sebelah kiri a %= b sama artinya dengan a = a % b
**= Melakukan operasi perpangkatan antara nilai disebelah kiri dengan nilai disebelah kanan lalu menyimpan hasilnya divariable sebelah kir a **= b sama artinya dengan a = a ** b

Operator Bitwise Ruby

Operator bitwise melakukasi proses bit per bit pada nilai integer. Kita asumsikan bahwa nilai a dan b masing-masing adalah 10 dan 20 atau dalam format binari adalah 0000 1010 dan 0001 0100.

Operator Deskripsi Contoh
& Operator AND. Menghasilkan nilai 1 jika kedua variable memiliki nilai 1. Selain itu akan menghasilkan nilai 0 1 & 2 akan mengasilkan nilai 0
| Operator OR. Menghasilkan nilai 1 jika salah satu variable memiliki nilai 1 dan menghasilkan 0 jika kedua variable bernilai 0 1 | 2 menghasilkan nilai 3
^ Operator XOR. Menghasilkan nilai 1 jika kedua variable memiliki nilai yang berbeda 1 ^ 2 menghasilkan nilai 3
~ Operator NOT. Mengkonversi nilai setiap bit ke nilai yang berlawanan Jika (~a), maka untuk a nilai binernya akan menjadi 1111 0101
<< atau >> Operator Left Shift dan Right Shift. Operator ini digunakan untuk memindahkan atau menggeser bit pada nilai biner sebesar nilai yang diberikan pada variable disisi kanan. Jika a adalah 0000 1010, maka a >> 2 menghasilkan 0000 0010 karena nilai bit yang digeser kekanan sebesar 2 (dua) bit, dan sebaliknya dengan operator Left Shift

Untuk mempermudah dalam memahami operator bitwise, perhatikan tabel dibawah ini:

Operator Bitwise 0000 1010
0101 0010
AND 0000 0010
OR 0101 1010
XOR 0101 1000

Operator logika Ruby

Berikut ini adalah tabel operator logika di Ruby:

Operator Deskripsi Contoh
&& atau and Operator logika AND. Jika kedua nilai pembanding bernilai true maka menghasilkan nilai true true && true atau true and true menghasilkan true
|| atau or Operator logika OR. Jika salah satu nilai pembanding bernilai true maka menghasilkan nilai true false or true atau false || true menghasilkan true
! atau not Operator logika NOT. Digunakan untuk mengubah nilai yang didapat menjadi kebalikannya Jika !false atau not false maka menghasilkan true dan sebaliknya.

[info] Catatan

Jika kita perhatikan tabel diatas, terdapat 2 (dua) cara untuk menggunakan masing-masing dari operator logika tersebut. Sebenarnya, kedua cara yang digunakan tersebut bekerja dengan cara yang sama, hanya saja ada sedikit perbedaan diantara keduanya. Yakni urutan pengeksekusian kode atau lebih sering disebut dengan Operator Precedence dimana && memiliki hak lebih tinggi dibandingkan dengan AND sehingga akan dieksekusi lebih dulu oleh Ruby dan ini juga berlaku untuk operator || dimana memiliki hak lebih tinggi dibandingkan dengan OR. Kita akan mengetahui lebih lanjut tentang urutan hak eksekusi kode di sub-bagian selanjutnya.

Operator Ternary Ruby

Ada 1 (satu) operator didalam Ruby yang disebut dengan operator ternary. Operator ini bisa dibilang sama dengan kondisi if..else atau bisa juga disebut dengan inline condition. Operator ternary juga ada didalam bahasa pemrograman lain seperti Javascript.

Cara penggunaan operator ternary pertama menggunakan karakter tanda tanya (?) lalu disusul dengan karakter titik dua (:). Contoh penggunaannya adalah a > 1 ? true : false. Cara membacanya adalah jika a lebih besar dari 1, maka akan mengambil nilai atau variabel disebelah kiri dari karakter :, dan sebaliknya jika statement yang dievaluasi bernilai false.

Operator Range Ruby

Operator range didalam Ruby cukup sederhana. Perhatikan tabel dibawah ini:

Operator Deskripsi Contoh
.. Operator range yang bersifat inclusive Jika (1..10), maka akan membuat daftar angka dari 1 hingga 10. Disini 10 ikut dihitung karena bersifat inclusive
... Operator range yang bersifat exclusive Jika (1..10), maka akan membuat daftar angkar dari 1 hingga 9. Disini 10 tidak ikut dihitung karena bersifat exclusive

Operator range ini biasa digunakan untuk proses perulangan atau looping, misalnya (1..10).each { |i| puts i } dan lain-lain.

[info] Catatan

Selain membuat sebuah daftar angka, kita juga bisa membuat sebuah daftar huruf alfabet seperti ("a".."z").map { |alfabet| puts alfabet }

Operator defined?, . dan ::

Ada beberapa operator spesial dalam Ruby yang memang memiliki fungsi yang spesifik atau khusus. Yang pertama adalah operator defined?. Operator defined? biasanya digunakan untuk mengecek apakah sebuah method, class ataupun module sudah didefinisikan. Operator defined? akan mengembalikan nilai nil jika variabel yang dicek tidak ada atau belum didefinisikan dan jenis data dari ekspresi yang dievaluasi oleh operator defined?. Berikut adalah beberapa contoh penggunaan operator defined?.

defined? foo # Jika foo tidak ditemukan, maka nilai nil yang akan dikembalikan

foo = 1
defined? foo # Mengembalikan nilai "local-variable"
defined? $_ # Mengembalikan nilai "global-variable"
defined? __FILE__ # Mengembalikan nilai "expression"

Yang kedua adalah operator titik atau dot (.) dan 2 (dua) titik dua atau double colon (::). Kedua operator ini biasa digunakan untuk pemanggilan sebuah method ataupun konstan. Untuk diingat, class dan method juga bisa disebut sebagai konstan. Namun umumnya hanya operator dot sajalah yang digunakan untuk pemanggilan sebuah method, sedangkan double colon lebih sering digunakan lebih spesifik untuk pemanggilan sebuah konstan.

Perhatikan contoh dibawah.

CONS = 3
class Foo
  CONS = 2

  def initialize
    puts CONS
  end
end

puts Foo::CONS # Memanggil sebuah Constant didalam sebuah Class
Foo.new # Memanggil method "new"

results matching ""

    No results matching ""