Menu
CoddyTech

Mengimplementasikan Interface

Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 14 dari 68.

Sekarang setelah kamu tahu cara mendefinisikan interface, mari pelajari bagaimana tipe Go mengimplementasikannya. Hal terpenting yang perlu kamu pahami adalah Go menggunakan implementasi implisit, tidak diperlukan kata kunci atau deklarasi khusus.

Jika suatu tipe memiliki semua method yang diwajibkan oleh sebuah interface, tipe tersebut otomatis memenuhi interface itu. Kamu tidak perlu menyatakan secara eksplisit bahwa tipemu mengimplementasikan interface tersebut, Go akan mengetahuinya untukmu.

Begini cara kerjanya dengan interface Shaper dari pelajaran sebelumnya:

type Circle struct {
    Radius float64
}

func (c Circle) Area() float64 {
    return 3.14159 * c.Radius * c.Radius
}

Karena tipe Circle memiliki method Area() yang mengembalikan float64, tipe tersebut secara otomatis mengimplementasikan interface Shaper. Kamu tidak perlu mendeklarasikan hubungan ini secara eksplisit, Go mengenalinya berdasarkan kecocokan tanda tangan method.

Pendekatan implisit ini membuat interface Go sangat fleksibel. Tipe apa pun yang sudah ada dapat memenuhi interface baru selama memiliki method yang diperlukan, meskipun interface tersebut dibuat setelah tipe itu ditulis.

challenge icon

Tantangan

Mudah

Dalam tantangan ini, kamu akan berlatih mengimplementasikan interface dengan membuat sistem kendaraan sederhana. Kamu akan membuat struct Car yang otomatis mengimplementasikan interface Vehicle melalui implementasi implisit Go.

Kamu akan menerima dua input:

  • String yang mewakili merek mobil (misalnya, "Toyota")
  • String yang mewakili kecepatan mobil dalam km/h (misalnya, "120")

Tugasmu:

  1. Definisikan interface Vehicle dengan satu tanda tangan method: GetInfo() yang mengembalikan string
  2. Definisikan struct Car dengan dua field: Brand (string) dan Speed (int)
  3. Implementasikan method GetInfo() untuk struct Car yang mengembalikan string dengan format: "Brand: [brand], Speed: [speed] km/h"
  4. Parse input untuk membuat instance Car
  5. Panggil method GetInfo() dan cetak hasilnya

Ingat, di Go, struct Car akan otomatis mengimplementasikan interface Vehicle karena memiliki method GetInfo() yang diperlukan dengan tanda tangan yang benar. Kamu tidak perlu menyatakan secara eksplisit bahwa Car mengimplementasikan Vehicle, Go mengenali hubungan ini secara implisit.

Coba sendiri

package main

import (
	"fmt"
	"strconv"
)

// TODO: 1. Definisikan interface Vehicle dengan method GetInfo() yang mengembalikan string

// TODO: 2. Definisikan struct Car dengan field Brand (string) dan Speed (int)

// TODO: 3. Implementasikan method GetInfo() untuk Car

func main() {
	// Baca input
	var brand string
	var speedStr string
	fmt.Scanln(&brand)
	fmt.Scanln(&speedStr)

	// Ubah string speed menjadi bilangan bulat
	speed, _ := strconv.Atoi(speedStr)

	// TODO: 4. Buat instance Car menggunakan brand dan speed, lalu panggil GetInfo()
	result := "" // ganti baris ini dengan implementasimu
	_ = brand
	_ = speed

	// Tampilkan hasilnya sebagai output
	fmt.Println(result)
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Go online