Selalu ingin mencoba hal - hal yang baru meski penuh resiko dan tantangan yang sulit. "Kain kafan tidak berkantung".

Golang tutorial indonesia – Interface

1
Degananda.com -

Interface

Interface dalam bahasa indonesia dapat berarti antar muka yakni suatu mekanisme komunikasi antara user dan sistem. Contohnya kita mengenal UI (user interface) merupakan antarmuka yang berguna menampilkan data ke user. Dibawah ini adalah contoh user interface dari website degananda.com

Lalu apakah yang dimaksut dengan interface pada golang ? perhatikan contoh kode dibawah ini untuk memahami pengertian interface dalam konteks pemrograman go.

package main

type MahlukHidup interface {
	bernafas()
	bergerak()
}

type Manusia struct {
	nama string
	umur int
}

func main() {

}

Mudahnya interface adalah suatu “cetakan” atau guideline yang harus diimplementasikan dalam struct. Contohnya jika anda pernah membuat kue dengan cetakan matahari maka hasil ahir dari adonan dapat dipastikan 100% berbentuk kue. Ini dikarenakan kita membuat kue tersebut dengan menggunakan adonan. Begitu juga dengan interface dalam golang yakni template dari suatu struct sehingga hasil ahir dapat sesuai dengan cetakan(interface) yang digunakan.

Pada kasus diatas kita tahu bahwa seluruh mahluk hidup memiliki ciri (salahduannya)

  1. Bernafas, jika tidak bernafas maka tidak dapat hidup ini adalah ciri mutlak dari suatu mahluk hidup.
  2. Bergerak, even suatu tumbuhan bergerak tidak hanya hewan

lalu bagaimana cara mengimplementasikan interface Mahlukhidup pada struct manusia tersebut ?

Implement interface pada struct

Untuk mengimplementasikan interface di struct pada golang kita harus melakukan beberapa hal

  1. Implementasikan(buat methid pada struct) seluruh method yang pada interface tersebut pada struct
  2. Memanggil method dengan nama interface tersebut
  3. done.

Pertama kita implementasikan seluruh method yang ada di interface Mahlukhidup pada struct manusia

package main

type MahlukHidup interface {
	bernafas()
	bergerak()
}

type Manusia struct {
	nama string
	umur int
}

func main() {

}

/*
	Implementasi seluruh method pada interface Mahluk hidup
*/
func (m *Manusia) bernafas() {

}

func (m *Manusia) bergerak() {

}

Setelah ini kita panggil method tersebut (yang kita implementasikan) dengan menggunakan nama dari interface tersebut

package main

import (
	"fmt"
)

type MahlukHidup interface {
	bernafas()
	bergerak()
}

type Manusia struct {
	nama string
	umur int
}

func main() {
	dega := Manusia{"degananda ferdian", 17}
	mahluk(dega)
}

/*
	Implementasi seluruh method pada interface Mahluk hidup
*/
func (m Manusia) bernafas() {
	fmt.Println(m.nama + " Bernafas...")
}

func (m Manusia) bergerak() {
	fmt.Println(m.nama + " Bergerak...")
}

func mahluk(mh MahlukHidup) {
	mh.bergerak()
	mh.bernafas()
}

kode diatas jika dieksekusi akan menghasilkan tampilan seperti dibawah ini pada konsol

cara menghubungkan interface dan struct ini intinnya adalah melakukan implementasi seluruh method yang ada pada interface ke struct yang di inginkan. Setelah itu buat method yang memiliki parameter sesuai dengan interface.

  • Lukmanul Hakim

    thanks