Skip to content

Instantly share code, notes, and snippets.

@xvbnm48
Created March 7, 2022 16:27
Show Gist options
  • Select an option

  • Save xvbnm48/f31ee33b346054a27798a9ca8579ecd3 to your computer and use it in GitHub Desktop.

Select an option

Save xvbnm48/f31ee33b346054a27798a9ca8579ecd3 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"math"
"github.com/xvbnm48/golang-fundamental-kw/part5/management"
)
type hitung interface {
luas() float64
keliling() float64
}
type lingkaran struct {
diameter float64
}
func (l lingkaran) jariJari() float64 {
return l.diameter / 2
}
func (l lingkaran) luas() float64 {
return math.Pi * math.Pow(l.jariJari(), 2)
}
func (l lingkaran) keliling() float64 {
return math.Pi * l.diameter
}
type persegi struct {
sisi float64
}
func (p persegi) luas() float64 {
return math.Pow(p.sisi, 2)
}
func (p persegi) keliling() float64 {
return p.sisi * 4
}
func main(){
var bangunDatar hitung
bangunDatar = persegi{10.0}
fmt.Println("===== persegi")
fmt.Println("luas :", bangunDatar.luas())
fmt.Println("keliling :", bangunDatar.keliling())
bangunDatar = lingkaran{14.0}
fmt.Println("===== lingkaran")
fmt.Println("luas :", bangunDatar.luas())
fmt.Println("keliling :", bangunDatar.keliling())
fmt.Println("jari-jari :", bangunDatar.(lingkaran).jariJari())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment