Pada artikel sebelumnya kita telah belajar apa itu struct dan cara penggunaannya pada bahasa pemrogaman go atau golang. apabila anda belum mengikuti artikel sebelumnya saya sarankan anda untuk membaca artikel sebelumnya tentang Golang – Pengenalan dan cara menggunakan struct. Dan artikel kali ini kita akan belajar tentang interface dan cara menggunakannya pada bahasa pemrogaman go.
Pengenalan interface
Interface adalah tipe data yang abstract, dia tidak memiliki implementasi secara langsung. Dalam interface sendiri hanya berisi definisi-definisi method saja, jadi interface itu isinya murni hanya kontrak saja. Saat kita membuat interface dan kita ingin mengikuti kontrak interface nya maka kita harus membuat struct yang sama deklarasinya dengan interface nya.
Implementasi interface
Setiap tipe data yang sesuai dengan kontrak interface, secara otomatis di anggap sebagai interface tersebut sehingga kita tidak perlu mengimplementasikan interface secara manual. Hal ini agak berbeda dengan bahasa pemrogaman lain yang ketika membuat interface, kita harus menyebutkan secara eksplisit ingin menggunakan interface yang mana. Perhatikan contoh berikut

Pada baris ke 6 kita membuat interface dengan nama HasName
dan memiliki method getName
yang mengembalikan value string
, kemudian pada baris ke 11 kita membuat function dengan parameter interface HashName
selanjutnya kita membuat struct dengan nama People & Peliharaan
yang dimana kedua sturct ini memiliki struct function dengan nama getName
dan return value string
. Yang artinya siapapun itu yang mempunyai function getName
dan return valuenya string
maka dia berhak mengikuti kontrak HashName
.
Interface kosong
Golang bukanlah bahasa pemrograman yang berorintasi object, biasanya dalam bahasa pemrograman berorientasi object ada data parent di puncak yang bisa di anggap sebagai semua implementasi data yang ada di hahasa pemrogaman tersebut. Pada golang interface kosong adalah interface yang tidak memiliki deklarasi method satupun, hal ini membuat semua tipe data akan menjadi implementasinya. Hal ini sama seperti tipe data any pada kotlin. Perhatikan contoh berikut

Pada baris ke 5 kita membuat sebuah function Ups
dimana pada function tersebut kita berikan return value interface kosong, sehingga dalam function tersebut kita bisa me return tidak hanya tipe data int
saja tetapi bisa tipe data apaun.
Error interface
Golang memiliki interface yang digunakan sebagai kontrak untuk membuat error, nama interface nya adalah error. Untuk membuat error kita tidak perlu membuat manual karena golang sudah menyediakan library untuk membuat helper secara mudah, yang terdapat di package errors. Perhatikan contoh berikut

Pada kode diatas kita mengimport package errors
di baris ke 4, kemudian kita juga membuat function sederhana untuk menghitung pembagian di line 8. Pada function pembagian
kita me return 2 data yaitu hasil pembagian dengan tipe data int
dan juga interface error. Kemudian kita juga melakukan pengecekan apakah parameter pembagi
nilainya sama dengan 0 atau tidak jika sama maka kita akan me return kembali nilai 0 nya dan pada value ke dua kita membuat error baru dengan librabry errors
. Jika tidak error maka kita akan me return hasil bagi nya dan untuk value kedua nya kita dapat me return nil
saja karena memang tidak terjadi error.
Penutup
Pada artikel kali ini kita telah belajar apa itu interface dan cara menggunakannya pada bahasa pemrogaman golang. Dan pada artikel selanjutnya saya akan membahas Type Assertions pada golang.