Membuat interface pada golang

Golang – Pengenalan dan cara implementasi interface

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

Membuat interface pada golang
Membuat interface pada golang

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

Membuat interface kosong pada golang
Membuat interface kosong pada golang

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

Interface error pada golang
Interface error pada golang

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.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook