Menu
CoddyTech

Ulasan: Kalkulator Bentuk

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 33 dari 87.

challenge icon

Tantangan

Mudah

Mari kita buat kalkulator bentuk yang menggabungkan semua konsep polimorfisme yang telah kamu pelajari di bab ini. Kamu akan membuat class abstrak Shape dengan subclass konkret, lalu menggunakan polimorfisme untuk menghitung dan menampilkan luas secara seragam.

Kamu akan membagi kodemu ke dalam empat file:

  • Shape.java: Buat class abstrak yang menjadi dasar bagi semua bentuk. Setiap bentuk memiliki field name (String). Sertakan constructor untuk menginisialisasinya, method getter getName(), dan method abstrak getArea() yang mengembalikan nilai double. Tambahkan juga method describe() yang mengembalikan: [name]: [area] (dengan area diformat hingga 2 angka desimal menggunakan String.format("%.2f", getArea())).
  • Circle.java: Buat class konkret yang memperluas Shape. Lingkaran memiliki field radius (double). Gunakan super untuk memberikan "Circle" sebagai nama. Implementasikan getArea() agar mengembalikan luas menggunakan Math.PI * radius * radius.
  • Rectangle.java: Buat class konkret lain yang memperluas Shape. Persegi panjang memiliki field width dan height (keduanya double). Berikan "Rectangle" sebagai nama kepada constructor induk. Implementasikan getArea() agar mengembalikan hasil perkalian width dengan height.
  • Main.java: Buat kalkulator bentuk yang menunjukkan polimorfisme dalam aksi. Kamu akan menerima tiga input: radius lingkaran, width, dan height persegi panjang.

    Buat Circle dan Rectangle, lalu simpan keduanya dalam array berisi referensi Shape. Lakukan perulangan pada array dan untuk setiap bentuk, cetak deskripsinya menggunakan method describe().

    Setelah perulangan, hitung dan cetak total luas semua bentuk dengan format: Total area: [sum] (juga diformat hingga 2 angka desimal). Gunakan perulangan atau akumulator terpisah untuk menjumlahkan luas dengan memanggil getArea() pada setiap referensi bentuk.

Kamu akan menerima tiga input: radius lingkaran (double), width persegi panjang (double), dan height persegi panjang (double).

Output-mu harus menampilkan tiga baris, satu deskripsi untuk setiap bentuk, lalu total luas. Perhatikan bagaimana kamu dapat memperlakukan berbagai bentuk secara seragam melalui tipe abstrak Shape, sementara setiap bentuk menghitung luasnya dengan caranya sendiri!

Coba sendiri

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Baca input
        double radius = scanner.nextDouble();
        double width = scanner.nextDouble();
        double height = scanner.nextDouble();
        
        // TODO: Buat object Circle menggunakan radius
        
        // TODO: Buat object Rectangle menggunakan width dan height
        
        // TODO: Buat array berisi referensi Shape dan simpan kedua bentuk di dalamnya
        
        // TODO: Telusuri array dengan perulangan dan cetak deskripsi setiap bentuk menggunakan describe()
        
        // TODO: Hitung total luas semua bentuk
        // Gunakan perulangan atau akumulator untuk menjumlahkan luas dengan memanggil getArea() pada setiap bentuk
        
        // TODO: Cetak total luas dengan format: "Total area: [sum]"
        // Gunakan String.format("%.2f", totalArea) untuk pemformatan
    }
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Java online