Guest User

Untitled

a guest
Jan 17th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "math"
  6. )
  7.  
  8. type hitung interface {
  9. luas() float64
  10. keliling() float64
  11. }
  12.  
  13. type lingkaran struct {
  14. diameter float64
  15. }
  16.  
  17. type persegi struct {
  18. sisi float64
  19. }
  20.  
  21. func (l lingkaran) jariJari() float64 {
  22. return l.diameter / 2
  23. }
  24.  
  25. func (l lingkaran) luas() float64 {
  26. return math.Pi * math.Pow(l.jariJari(), 2)
  27. }
  28.  
  29. func (l lingkaran) keliling() float64 {
  30. return math.Pi * l.diameter
  31. }
  32.  
  33. func (p persegi) luas() float64 {
  34. return math.Pow(p.sisi, 2)
  35. }
  36.  
  37. func (p persegi) keliling() float64 {
  38. return p.sisi * 4
  39. }
  40.  
  41. func luas(h hitung) float64 {
  42. return h.luas()
  43. }
  44.  
  45. func keliling(h hitung) float64 {
  46. return h.keliling()
  47. }
  48.  
  49. func main() {
  50. fmt.Println("Hello, playground")
  51.  
  52. var ling hitung
  53. ling = lingkaran{2.0}
  54.  
  55. var per persegi
  56. per.sisi = 4.0
  57.  
  58. fmt.Printf("luas lingkaran : %v\n", ling.luas())
  59. fmt.Printf("luas persegi : %v \n", per.luas())
  60. fmt.Printf("luas lingkaran : %v\n", luas(persegi{4.0}))
  61. fmt.Printf("keliling lingkaran: %f\n", keliling(lingkaran{2.0}))
  62. fmt.Printf("luas lingkaran : %f\n\n", luas(lingkaran{3.0}))
  63.  
  64. fmt.Printf("jari jari lingkaran : %f\n", ling.(lingkaran).jariJari())
  65. }
Add Comment
Please, Sign In to add comment