Belajar Ruby - Sintaks Dasar & Tipe Data
Episode 3 of 23

Belajar Ruby - Sintaks Dasar & Tipe Data

Episode ini membahas sintaks dasar Ruby: variabel dan konstanta dengan aturan penamaannya, tipe data Integer, Float, String, Symbol, Array, Hash, dan Range, komentar, output dengan p dan puts, string interpolation, serta perbedaan simbol dan string.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Sekarang kalian mulai menyentuh hal yang sesungguhnya: sintaks dasar dan tipe data Ruby. Materi ini adalah kosakata bahasa Ruby — variabel, konstanta, angka, string, simbol, array, hash, dan rentang. Semua episode berikutnya dibangun di atas pemahaman ini, jadi pastikan setiap konsep benar-benar dikuasai sebelum melompat.

Salah satu daya tarik Ruby adalah sintaks yang terasa seperti bahasa alami. Kalian tidak akan menemukan titik koma wajib atau kurung kurawal untuk block. Sebaliknya, ada aturan penamaan yang mengandung makna (prefix seperti @ dan $), serta beberapa cara mencetak output yang masing-masing punya peran berbeda.

Episode 3 ini membedah variabel dan konstanta beserta aturannya, seluruh tipe data dasar, komentar dan fungsi output p/puts/print, serta perbandingan mendalam antara simbol dan string — dua konsep yang sering membingungkan pemula.

Variabel dan Konstanta

Empat Jenis Variabel

Ruby mengenal empat lingkup variabel yang dibedakan dari prefix penamaannya:

RubyJenis-jenis variabel
nama = "Ruby"            # lokal
@nama_instans = "Ruby"   # instance (per objek)
@@jumlah_total = 0       # class (dibagi seluruh kelas)
$versi_global = "4.0"    # global (dibagi seluruh program)

Variabel lokal (nama) hanya hidup di lingkup tempat ia didefinisikan. Variabel instance (@nama_instans) melekat pada satu objek dan akan dibahas detail di episode 6. Variabel class (@@jumlah_total) dibagi oleh seluruh objek satu kelas, sementara variabel global ($versi_global) bisa diakses dari mana saja — dan karena itu sering dihindari karena rawan konflik.

Konstanta dan Aturan Penamaan

Konstanta diawali huruf kapital dan ditulis dalam bentuk NAMA_BESAR. Ruby akan memperingatkan jika konstanta diubah nilainya:

RubyKonstanta
BAHASA = "Ruby"
puts BAHASA

Perbedaan praktisnya: coba ubah BAHASA dengan nilai baru — Ruby mengeluarkan peringatan, bukan error, karena konstanta di Ruby sebenarnya bisa diubah meski tidak disarankan. Nama method yang berakhir tanda tanya (seperti nil?) mengembalikan boolean, dan nama dengan tanda seru (seperti gsub!) menandakan method mutasi pada objek aslinya. Konvensi ini penting untuk membaca kode Ruby dengan cepat.

Tipe Data Dasar

Angka dan String

Ruby menyediakan Integer untuk bilangan bulat, Float untuk bilangan desimal, dan String untuk teks. Perhatikan bahwa di Ruby, angka bulat dan desimal adalah tipe berbeda dengan method berbeda:

RubyAngka dan string
umur = 30
harga = 19.99
puts umur.class
puts harga.class

umur.class menampilkan Integer dan harga.class menampilkan Float. Operasi pembagian integer dibulatkan ke bawah (misalnya 7 / 2 menghasilkan 3), jadi gunakan float jika ingin hasil desimal. String dibuat dengan tanda kutip tunggal atau ganda — perbedaannya akan kita lihat di bagian interpolasi.

Symbol, Array, Hash, dan Range

Selain angka dan string, ada empat tipe koleksi yang akan sangat sering kalian pakai:

  • Symbol (:nama) — string ringan yang identitasnya dibandingkan, bukan isinya.
  • Array ([1, 2, 3]) — koleksi terurut berbasis index.
  • Hash ({ kunci: "nilai" }) — pasangan key dan value.
  • Range (1..10) — rentang nilai dengan batas inklusif.
RubyKoleksi dasar
simbol = :nama
daftar = [1, 2, 3]
hash = { bahasa: "Ruby", tahun: 1995 }
rentang = 1..10
puts hash[:bahasa]
puts rentang.cover?(5)

Ekspresi hash[:bahasa] mengambil nilai dari key :bahasa, dan rentang.cover?(5) mengecek apakah 5 berada dalam rentang. Detail operasi koleksi ini dibahas menyeluruh di episode 10.

true, false, dan nil

Ruby juga punya tiga nilai khusus: true, false, dan nil — yang mewakili ketiadaan nilai. Semuanya adalah objek, dan hanya nil serta false yang dianggap falsy dalam konteks boolean. Nilai lain seperti 0, "", atau array kosong tetap truthy. Aturan ini berbeda dengan beberapa bahasa lain, jadi ingat baik-baik: hanya nil dan false yang dianggap salah.

Komentar dan Output

p, puts, dan print

Ruby punya tiga cara mencetak output dengan perilaku berbeda. puts menambahkan baris baru, print tidak, dan p menampilkan representasi internal nilai — sangat berguna untuk debugging:

Jalankan script tipe_data
ruby -e 'puts "baris pertama"; p [1, 2, 3]'

Command ruby -e mengeksekusi satu baris script tanpa membuat file. Dalam praktik harian, puts untuk output normal dan p untuk inspeksi nilai. Komentar di Ruby ditulis dengan # dan diabaikan interpreter:

RubyKomentar dan output
# ini komentar satu baris
puts "Halo"   # komentar di akhir baris

Komentar tidak memengaruhi eksekusi, tapi sangat penting untuk dokumentasi. Sebagai catatan, di sinilah kode-kode contoh episode sebelumnya memakai puts untuk menampilkan hasil ke terminal.

String Interpolation dan Simbol vs String

Interpolasi dengan Kutip Ganda

String interpolation adalah cara menyisipkan hasil ekspresi ke dalam string. Fitur ini hanya aktif pada string kutip ganda atau string dengan %Q:

RubyInterpolasi string
bahasa = "Ruby"
puts "Saya belajar #{bahasa} versi #{RUBY_VERSION}"
puts "Hasil penjumlahan: #{2 + 3}"

String kutip tunggal seperti '#{bahasa}' akan mencetak literal #{bahasa} tanpa di-interpolasi. puts "...#{bahasa}..." memperlihatkan cara kerja interpolasi yang mengevaluasi ekspresi di dalam tanda kurung kurawal ganda.

Simbol vs String

Simbol dan string terlihat mirip tetapi digunakan untuk tujuan berbeda. Simbol (:nama) adalah identifier yang dibandingkan berdasarkan identitas — tidak ada String#gsub pada simbol, dan simbol yang sama selalu merepresentasikan objek yang sama di seluruh program. String ("nama") adalah data yang bisa diubah-ubah.

RubySimbol vs string
puts :nama.equal?(:nama)
puts "nama".equal?("nama")

Hasilnya true untuk simbol (objek yang sama) dan false untuk string (dua objek berbeda). Ekspresi :nama.equal?(:nama) memakai method equal? yang membandingkan identitas objek. Itulah mengapa simbol ideal untuk key hash, flag, dan nama method — ringan dan cepat dibandingkan.

Tip

Kebiasaan membaca yang penting: ketika kalian melihat kode seperti hash[:kunci], ingat bahwa :kunci adalah simbol, bukan string. Konsistensi key simbol vs string di sebuah hash sering menjadi sumber bug yang membingungkan.

Penutup

Episode 3 memperkenalkan kosakata dasar Ruby: empat jenis variabel dengan aturan penamaan berbasis prefix, konstanta, tipe data Integer, Float, String, Symbol, Array, Hash, dan Range, aturan truthy yang hanya menganggap nil dan false sebagai salah, tiga cara output, serta perbedaan penting antara simbol dan string.

Inti yang harus dibawa pulang:

  • Variabel lokal, instance dengan @, class dengan @@, global dengan $.
  • Konstanta diawali huruf kapital dan sebaiknya tidak diubah setelah didefinisikan.
  • Hanya nil dan false yang falsy; semua nilai lain truthy termasuk nol dan string kosong.
  • puts menambah baris baru, p menampilkan representasi internal untuk debugging.
  • String interpolation memakai kutip ganda dan sintaks #{}.
  • Simbol dibandingkan berdasarkan identitas, string berdasarkan isi.

Di episode 4 selanjutnya kita akan membahas control flow dan operator — percabangan if, unless, ternary, dan case, perulangan while, until, loop, dan iterator each, operator short-circuit && dan ||, hingga operator spaceship <=> yang unik di Ruby. Sintaks dasar yang sudah kalian kuasai akan mulai membentuk logika program.