Menu
CoddyTech

Ringkasan, Kalkulator Bentuk

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 30 dari 70.

challenge icon

Tantangan

Mudah

Mari kita buat kalkulator bentuk yang menggabungkan semua yang telah kamu pelajari tentang interface dan polimorfisme. Kamu akan membuat sistem yang dapat memproses berbagai bentuk secara seragam melalui interface umum, untuk menunjukkan keunggulan polimorfisme saat runtime.

Kamu akan mengatur kodemu dalam empat file:

  • IShape.cs: Definisikan interface bernama IShape di namespace Shapes. Setiap bentuk harus dapat menghitung luasnya dan mendeskripsikan dirinya. Deklarasikan dua method: CalculateArea() yang mengembalikan double, dan GetDescription() yang mengembalikan string.
  • Circle.cs: Buat class Circle di namespace Shapes yang mengimplementasikan IShape. Lingkaran memiliki property Radius (double) yang ditetapkan melalui konstruktornya. Rumus luasnya adalah Math.PI * Radius * Radius. Deskripsinya harus mengembalikan "Circle with radius {Radius}".
  • Rectangle.cs: Buat class Rectangle di namespace Shapes yang mengimplementasikan IShape. Persegi panjang memiliki property Width dan Height (keduanya double) yang ditetapkan melalui konstruktornya. Luasnya adalah lebar dikalikan tinggi. Deskripsinya harus mengembalikan "Rectangle {Width}x{Height}".
  • Program.cs: Di file utama, buat lingkaran dan persegi panjang menggunakan nilai input, lalu simpan keduanya dalam array berisi referensi IShape. Lakukan perulangan pada array dan untuk setiap bentuk, cetak deskripsinya, lalu luasnya yang dibulatkan hingga dua angka desimal. Ini menunjukkan bagaimana kamu dapat memproses bentuk-bentuk yang sangat berbeda melalui interface yang sama!

Kamu akan menerima tiga input:

  • Jari-jari lingkaran (double)
  • Lebar persegi panjang (double)
  • Tinggi persegi panjang (double)

Cetak output dengan format berikut untuk setiap bentuk:

{GetDescription() result}
Area: {CalculateArea() rounded to 2 decimal places}

Misalnya, jika inputnya adalah 5, 4, dan 6, outputnya seharusnya:

Circle with radius 5
Area: 78.54
Rectangle 4x6
Area: 24.00

Perhatikan bahwa perulanganmu tidak perlu mengetahui apakah bentuk yang diproses adalah lingkaran atau persegi panjang, perulangan cukup memanggil method pada interface dan membiarkan polimorfisme menangani sisanya. Inilah keunggulan pemrograman berbasis interface!

Coba sendiri

using System;
using Shapes;

class Program
{
    public static void Main(string[] args)
    {
        // Baca nilai input
        double circleRadius = Convert.ToDouble(Console.ReadLine());
        double rectWidth = Convert.ToDouble(Console.ReadLine());
        double rectHeight = Convert.ToDouble(Console.ReadLine());
        
        // TODO: Buat object Circle dengan jari-jari yang diberikan
        
        // TODO: Buat object Rectangle dengan lebar dan tinggi yang diberikan
        
        // TODO: Buat array IShape yang berisi kedua bentuk
        
        // TODO: Ulangi setiap elemen dalam array, lalu untuk setiap bentuk:
        // - Tampilkan deskripsinya menggunakan GetDescription()
        // - Tampilkan "Area: " diikuti hasil CalculateArea() yang dibulatkan ke 2 angka di belakang koma
    }
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online