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.
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.