Protocol di Swift
Penjelasan
Protocol di Swift setara interface di bahasa lain — mendefinisikan kumpulan method/property yang WAJIB diimplementasikan tipe data yang menerapkannya lewat : NamaProtocol. Beda dari class, baik struct MAUPUN class bisa menerapkan protocol — ini jadi cara utama Swift mencapai polymorphism tanpa harus selalu memakai inheritance class.
Contoh Konsep
protocol Bentuk {
func hitungLuas() -> Double
}
struct Lingkaran: Bentuk { // struct BISA menerapkan protocol
var jariJari: Double
func hitungLuas() -> Double {
return 3.14 * jariJari * jariJari
}
}
let lingkaranku = Lingkaran(jariJari: 7)
print(lingkaranku.hitungLuas())
Praktikum
Buat protocol Hewan dengan method bersuara() -> String. Buat struct Kucing yang : Hewan, method bersuara()-nya mengembalikan "Meong". Buat instance Kucing dan tampilkan hasil bersuara().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Karena struct tidak bisa inheritance tapi bisa menerapkan protocol, kombinasi "struct + protocol" adalah pola yang sangat dianjurkan komunitas Swift modern (disebut protocol-oriented programming) dibanding mengandalkan inheritance class.