Latihan 1 dari materi Method di Go — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal sudah punya struct Lingkaran dengan field Radius float64, method Luas() float64 (3.14 * l.Radius * l.Radius), dan di main lingkaran l := Lingkaran{Radius: 7} yang mencetak l.Luas(). Biarkan semuanya.
Tambahkan method Keliling() float64 dengan value receiver (l Lingkaran) yang mengembalikan 2 * 3.14 * l.Radius. Pakai 3.14, bukan math.Pi.
Tambahkan method Resize(faktor float64) dengan pointer receiverfunc (l *Lingkaran) Resize(faktor float64) yang mengisi l.Radius = l.Radius * faktor.
Di main, sesudah baris Luas: cetak l.Keliling(), panggil l.Resize(2), lalu cetak l.Radius.
Output-nya:
153.86
43.96
14
Method-nya juga dicoba dengan lingkaran lain: Lingkaran{Radius: 2} harus punya keliling 12.56, dan Lingkaran{Radius: 5} sesudah Resize(3) harus punya radius 15.
Hint
Keliling cuma membaca radius, jadi value receiver cukup. Resize mengubah radius, jadi butuh pointer receiver, kalau gak, yang berubah cuma salinannya.
Tulis func (l Lingkaran) Keliling() float64 { ... } dan func (l *Lingkaran) Resize(faktor float64) { ... }, lalu di main tambahkan tiga baris: cetak keliling, panggil Resize(2), cetak l.Radius.