Belajar Golang #21 : Cara menggunakan Interface

Cara menggunakan Interface – Selamat datang di tutorial pemrograman golang berseri yang ke – 21. Pada tutorial kali ini akan membahas mengenai interface di golang.

Bagi yang pernah menggunakan functional programming pasti sudah tidak asing lagi dengan interface, dimana suatu clas menimplementasikan pada interface tertentu. Salah satu contoh nya di konsep penggunaan OOP di PHP.

Apa itu Interface ?

Kita mulai dari pengertin interface di golang. Interface adalah sutu type yang di berikan nama tertentu, dimana isi dari type tersebut adalah suatu method(bukan fungsi).

Bisa di katakan bahwa suatu method harus mengimplementasikan interface yang di gunakan. Penggunaan interface akan dapat digunakan jika sudah memiliki data.

Mengapa Harus menggunakan Interface ?

Banyak yang bertanya, apakah semua program yang kompleks harus mengimplementasikan sebuah interface ?

Sebenarnya ngga harus, tapi program yang baik harus memiliki suatu metode sebagai acuan program yang di tuliskan. Dengan menggunakan interface maka tidak akan terbatas dengan isnya.

Method dari sautu interface dapat memiliki isi yang berbeda-beda. Sebagai contoh kita membuat interface dengan nama Hitung, di dalam hitung memberikan nama method luas(). Nah dengan membuat method luas dapat mengimplementasikan suatu tipe lain(contohnya struct) yang berbeda.

Ketika kita menghitung luas kubus dan segitiga maka variable yang di butuhkan tentunya berbeda. Dengan menggunakan interface tidak peduli dengan isi interface tersebut.

Yuk langsung saja ke contoh interface.

Deklarasi dan Implementasi Interface

Format Penulisan Deklarasi Interface seperti ini :

Contohnya :

main.go

Hasilnya :

Belajar Golang #21 : Cara menggunakan Interface

Perhatikan kode di atas, Terdapat interface dengan nama Kendaraan, dimana isinya yaitu method GetWarna(). Implementasi GetWarna() terdapat 2 method, dimana method tersebut mengacu struct motor dan mobil.

Isi dari kedua struct itu berbeda, namun tetap dapat di masukan dalam variable objek interface tersebut.

Perhatikan baris 40 dan 48, isi dari k mempunya variable objek yang berbeda yaitu motor dan mobil, namun masih bisa di masukan ke dalam variable interface.

Representasi Interface

Ketika kita memberikan nilai pada interface berupa variable objek , tentunya akan menimplementasi sebuah method yang di dalam interface. Di dalam golang interface tersebut dapat di jadikan parameter terhadap fungsi lain, walaupun fungsi tersebut tidak ada di dalam interface.

Contohnya :

Hasilnya :

Belajar Golang #21 : Cara menggunakan Interface

Perhatikan kode golang di atas, terdapat interface dengan nama kendaraan, yang memiliki method GetWarna(). Selain itu juga terdapat fungsi yang tidak ada di dalam interface. Maka untuk menggunakan nilai interface dapat di jadikan parameter terhadap fungsi lain.

Contoh di atas yang menggunakan parameter nilai interface yaitu CetakWarna(). Di dimana di dalam fungsi tersebut berisi nilai yang di masukan variable objek interface.

Embed Interface

Sama seperti penggunaan struct, interface juga dilakukan embed / nested terhadap interface lainnya yang berhubungan.

Contohnya :

main.go

Hasilnya :

Belajar Golang #21 : Cara menggunakan Interface

Perhatikan kode di atas, terdapat 3 interface yaitu :

  • Warna
  • WarnaOriginal
  • WarnaModif

Di dalam interface warna melakukan embed terhadap interface WarnaOriginal dan WarnaModif.

Di dalam interface WarnaModif terdapat method GetWarnaModif(), sedangkan pada interface WarnaOriginal terdapat method GetWarnaOriginal().

Namun keduanya menggukan struct yang sama yaitu mobil.

Tidak pelu kita melakukan pamnggilan terhadap embed interface nya, cukup memanggil interface yang digunakan untuk melakukan embed.

Sekian tutorial mengenai interface di golang. Terima kasih.

Leave a Reply