Interface
Pada sesi ini akan dibahas apa itu Interface dan kapan menggunakannya
Interface adalah adalah kumpulan definisi method yang tidak memiliki isi (hanya definisi saja) yang dibungkus dengan nama tertentu.
Interface merupakan tipe data. Nilai objek bertipe interface zero value-nya adalah nil
. Interface mulai bisa digunakan jika sudah ada isinya, yaitu objek konkret yang memiliki definisi method yang sama dengan yang ada di interface.
Lalu yang menjadi pertanyaan, kenapa dan kapan menggunakan Interface?
Menulis kode yang fleksibel, dapat digunakan kembali, dan modular sangat penting dalam mengembangkan program. Ini juga adalah kenapa Go dibuat. Go sangat mendukung penulisan code yang clean, simple, reliable, dan efficient.
Jadi Interface sebenarnya adalah tools yang bisa kita pakai atau tidak. Tetapi Interface dapat membuat kode menjadi clean, shorter, dan more readable.
Mendefenisikan Behaviour
Sebelum masuk ke contoh Interface lebih detail, mari kita lihat studi kasus berikut:
Dari kode di atas tidak ada yang salah. Jika dijalankan hasilnya pun akan sesuai.
Kita bisa lihat ada behaviour yang mirip diantara masing-masing struct
yaitu sama-sama memiliki method luas
. Untuk itu kita akan membuat interface
untuk menampung method tersebut.
Mendefenisikan Interface
Untuk membuat tipe data Interface kita membutuhkan keyword type
dan interface
. Kita akan membuat interface
bernama BangunDatar
:
Lalu kita akan membuat function yang memiliki parameter dengan tipe data interface
.
Kita akan coba menggabungkan kedua kode di atas dengan kode sebelumnya:
Jadi fungsi luasBangunDatar
tidak memperdulikan parameter nilai dari masing-masing bangun datar. Kita dapat menambahkan sebanyak mungkin bangun datar yang kita ingin hitung luasnya denga catatan struct
harus memiliki method yang terdaftar pada interface
dan memiliki isi sesuai dengan konteksnya masing-masing.
Studi kasus #2
Perhatikan kode di bawah ini:
Pada studi kasus di atas ada kesamaan behaviour yaitu kedua struct
sama-sama memiliki method String
untuk menampilkan teks informasi Buku dan Artikel.
Last updated