0Pricing
Ruby Academy · Pelajaran

Apa Itu Metaprogramming?

Pahami cara metaprogramming memungkinkan Ruby mengubah strukturnya sendiri saat runtime.

Apa Itu Metaprogramming? adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.

Memahami Metaprogramming

Apa Itu Metaprogramming?

Metaprogramming adalah kemampuan Ruby untuk mengubah strukturnya sendiri saat program berjalan.

Metaprogramming memungkinkan pengembang mendefinisikan metode secara dinamis, mengubah perilaku kelas, dan memanipulasi objek dengan cara yang canggih.

Apa Itu Metaprogramming? — ilustrasi 1

Sifat Dinamis Ruby

Sifat Dinamis Ruby

Tidak seperti bahasa bertipe statis, Ruby memungkinkan Anda mengubah kelas dan objek secara dinamis.

Metode, variabel, bahkan kelas dapat dibuat dan diubah saat program berjalan.

Contoh Metaprogramming Sederhana

Contoh Metaprogramming Sederhana

Menggunakan send, kita dapat memanggil metode secara dinamis.

class Person
  def greet
    'Hello!'
  end
end

p = Person.new
puts p.send(:greet)

Keuntungan Metaprogramming

Keuntungan Metaprogramming

Metaprogramming memungkinkan:

  • Kode yang tidak banyak berulang (prinsip DRY).
  • Aplikasi yang lebih fleksibel dan dinamis.
  • Modifikasi dan penyempurnaan yang mudah saat program berjalan.

Di Mana Metaprogramming Digunakan?

Di Mana Metaprogramming Digunakan?

Metaprogramming digunakan dalam:

  • Ruby on Rails (Active Record mendefinisikan metode secara dinamis).
  • DSL (Bahasa Khusus Domain).
  • Kerangka kerja pengujian seperti RSpec.

Menggunakan instance_eval

Menggunakan instance_eval

instance_eval memungkinkan eksekusi kode dalam konteks suatu objek.

class Person
end

p = Person.new
p.instance_eval { @name = 'Alice' }
puts p.instance_variable_get(:@name)

Menggunakan class_eval

Menggunakan class_eval

class_eval mengubah kelas secara dinamis.

class Person
end

Person.class_eval do
  def greet
    'Hello!'
  end
end

puts Person.new.greet

Risiko Keamanan Metaprogramming

Risiko Keamanan Metaprogramming

Penggunaan metaprogramming dapat menimbulkan risiko keamanan:

  • Menjalankan kode yang tidak dikenal dengan eval dapat berbahaya.
  • Mengganti metode bawaan dapat menyebabkan perilaku yang tidak terduga.

Rangkuman Metaprogramming

Selamat!

Anda telah mempelajari apa itu metaprogramming dan bagaimana metaprogramming memungkinkan modifikasi dinamis di Ruby.

Selanjutnya, Anda akan mempelajari cara mendefinisikan dan memanggil metode secara dinamis.

Apa Itu Metaprogramming? — ilustrasi 10

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Apa Itu Metaprogramming?” gratis?

Ya — teks lengkap “Apa Itu Metaprogramming?” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Apa Itu Metaprogramming?”?

Pahami cara metaprogramming memungkinkan Ruby mengubah strukturnya sendiri saat runtime. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Ruby Academy?

Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Apa Itu Metaprogramming?” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?

Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Apa Itu Metaprogramming?
  2. Definisi Metode Dinamis
  3. Kelas Terbuka dan Monkey Patching
  4. Menggunakan send dan eval
← Kembali ke Ruby Academy