Menu
CoddyTech

Ulasan: Kalkulator Sederhana

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GO di Coddy. Pelajaran 11 dari 107.

challenge icon

Tantangan

Sulit

Buat Calculator lengkap dengan menggunakan semua yang telah kamu pelajari:

  • Struct (Field yang Diekspor): Definisikan Calculator dengan Name (string), LastResult (float64), dan History (int)
  • Fungsi Konstruktor: NewCalculator(name string) mengembalikan *Calculator. Jika name kosong, gunakan "Unnamed" sebagai nilai default
  • Value Receiver: GetInfo() mengembalikan nama kalkulator sebagai string berformat
  • Pointer Receiver: Add, Subtract, dan Multiply masing-masing menyimpan hasilnya di LastResult dan menambah History
  • Divide: pointer receiver yang mengembalikan (float64, string). Jika membagi dengan nol, kembalikan 0 dan "Error: division by zero" tanpa memperbarui History atau LastResult

Coba sendiri

package main

import "fmt"

func main() {
    var name string
    var a, b float64
    fmt.Scan(&name, &a, &b)

    calc := NewCalculator(name)

    fmt.Println(calc.GetInfo())
    fmt.Printf("History: %d\n", calc.History)

    fmt.Printf("%.0f + %.0f = %.2f\n", a, b, calc.Add(a, b))
    fmt.Printf("%.0f - %.0f = %.2f\n", a, b, calc.Subtract(a, b))
    fmt.Printf("%.0f * %.0f = %.2f\n", a, b, calc.Multiply(a, b))

    result, err := calc.Divide(a, b)
    if err != "" {
        fmt.Println(err)
    } else {
        fmt.Printf("%.0f / %.0f = %.2f\n", a, b, result)
    }

    fmt.Printf("History: %d\n", calc.History)
    fmt.Printf("Last Result: %.2f\n", calc.LastResult)
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Go online