Study
Julia

Multiple Dispatch di Julia

Penjelasan

Multiple dispatch adalah fitur PALING KHAS Julia — kamu bisa mendefinisikan BEBERAPA versi (method) fungsi yang sama, masing-masing untuk kombinasi TIPE argumen yang berbeda. Julia otomatis memilih method yang paling SPESIFIK cocok dengan tipe argumen yang diberikan saat runtime. Ini beda dari OOP tradisional yang cuma dispatch berdasarkan tipe objek PERTAMA (`self`/`this`) — Julia mempertimbangkan SEMUA argumen sekaligus.

Contoh Konsep

deskripsi(x::Int64) = println("Ini bilangan bulat: $x")
deskripsi(x::Float64) = println("Ini bilangan desimal: $x")
deskripsi(x::String) = println("Ini teks: $x")

deskripsi(5)        # Ini bilangan bulat: 5
deskripsi(5.5)      # Ini bilangan desimal: 5.5
deskripsi("halo")   # Ini teks: halo

# Method juga bisa mempertimbangkan DUA tipe argumen sekaligus
tambah(a::Int64, b::Int64) = a + b
tambah(a::String, b::String) = a * b   # penggabungan string kalau keduanya String

Praktikum

Buat fungsi luas dengan 2 method berbeda: luas(sisi::Int64) untuk persegi (sisi^2), dan luas(panjang::Int64, lebar::Int64) untuk persegi panjang.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Multiple dispatch memungkinkan kode Julia yang sangat generik tapi tetap cepat — library numerik Julia sering mendefinisikan puluhan method untuk fungsi yang sama, masing-masing dioptimalkan untuk kombinasi tipe tertentu.