Tugas 12 - Implementasi Polymorphism

 Source Code: https://github.com/rsthopaz/Polymorphism.git

Explanation:

1). Item

public class Item
{
    private String title;
    private int playingTime;
    private boolean gotIt;
    private String comment;
    public Item(String theTitle, int time)
    {
        title = theTitle;
        playingTime = time;
        gotIt = false;
        comment = "<no comment>";
    }

    public void setComemnt(String comment)
    {
        this.comment = comment;
    }

    public String getComment ()
    {
        return comment;
    }

    public void setOwn(boolean ownIt)
    {
        gotIt = ownIt;
    }

    public void print()
    {
        System.out.print(title + " (" + playingTime + " mins)");
        if(gotIt){
            System.out.println("*");
        }else{
            System.out.println();
        }
        System.out.println(" " + comment);
    }
}

Kode di atas mendefinisikan sebuah kelas Java bernama Item. Kelas ini digunakan untuk merepresentasikan sebuah item CD dan DVD yang akan digunakan nanti

public Item(String theTitle, int time)
    {
        title = theTitle;
        playingTime = time;
        gotIt = false;
        comment = "<no comment>";
    }

Konstruktor ini digunakan untuk membuat objek Item baru. Ketika objek dibuat, konstruktor menerima dua parameter:

theTitle: Nama atau judul dari item (misalnya, nama film atau judul game).

time: Durasi atau waktu bermain yang terkait dengan item tersebut (dalam satuan menit).


2). CD

public class CD extends Item
{
    private String artist;
    private int numberOfTracks;

    public CD(String theTitle, String theArtist, int tracks, int time)
    {
        super(theTitle, time);
        artist = theArtist;
        numberOfTracks = tracks;
    }

    public int getNumberOfTracks()
    {
        return numberOfTracks;
    }

    public void print()
    {
        super.print();
        System.out.println(" " + artist);
        System.out.println(" tracks: " + numberOfTracks);
    }
}

Kelas CD adalah subclass dari kelas Item, yang berarti CD adalah jenis spesifik dari Item. Kelas ini menambahkan dua atribut baru yang khusus untuk CD, yaitu:

artist: Nama artis yang membuat album atau CD.

numberOfTracks: Jumlah lagu (tracks) pada CD tersebut.

  public CD(String theTitle, String theArtist, int tracks, int time)
    {
        super(theTitle, time);
        artist = theArtist;
        numberOfTracks = tracks;
    }

super(theTitle, time): Kata kunci super digunakan untuk memanggil konstruktor dari kelas induk (Item). Konstruktor Item membutuhkan dua parameter, yaitu judul (theTitle) dan waktu bermain (time). Dengan menggunakan super(), kita memastikan bahwa properti title dan playingTime dari kelas Item terinisialisasi dengan benar. artist: Properti artist diinisialisasi dengan parameter theArtist yang diterima oleh konstruktor. numberOfTracks: Properti numberOfTracks diinisialisasi dengan parameter tracks yang diterima oleh konstruktor.


3). DVD

public class DVD extends Item {
    private String director;

    public DVD(String theTitle, String theDirector, int time)
    {
        super(theTitle, time);
        director = theDirector;
    }

    public String getDirector(){
        return director;
    }

    public void print()
    {
        super.print();  // Call the print method of the superclass (Item)

        System.out.println(" director: " + director);
    }
}

Kelas DVD adalah kelas yang mewakili sebuah DVD, dengan menambahkan informasi khusus yang relevan untuk DVD, yaitu director (sutradara). Kelas ini memiliki konstruktor, metode getter, dan metode untuk menampilkan informasi DVD.

public DVD(String theTitle, String theDirector, int time)
    {
        super(theTitle, time);
        director = theDirector;
    }

super(theTitle, time): Kata kunci super() digunakan untuk memanggil konstruktor dari kelas induk (Item). Konstruktor Item membutuhkan dua parameter, yaitu judul (theTitle) dan waktu bermain (time). Dengan menggunakan super(), kita memastikan bahwa properti title dan playingTime di kelas Item terinisialisasi dengan benar. director: Properti director diinisialisasi dengan parameter theDirector yang diterima oleh konstruktor DVD. Ini adalah nama sutradara dari DVD.


4). Database

import java.util.ArrayList;
public class Database {
    private ArrayList<Item> items;

    public Database()
    {
        items = new ArrayList<>();
    }

    public void addItem(Item theItem)
    {
        items.add(theItem);
    }

    public void list()
    {
        for(Item item : items)
        {
            item.print();
        }
    }
}

Kelas ini dapat digunakan untuk mengelola koleksi objek-objek yang merupakan turunan dari kelas Item, termasuk objek-objek seperti CD, DVD, atau Item itu sendiri.

5). Main

public class Main {
    public static void main(String[] args) {
        // Create a new database to hold items
        Database db = new Database();

        // Create some items
        Item item1 = new CD("The Dark Side of the Moon", "Pink Floyd", 10, 42);
        Item item2 = new DVD("Inception", "Christopher Nolan", 148);
       
        // Set comments and ownership
        item1.setComemnt("Great classic album!");
        item1.setOwn(true);
       
        item2.setComemnt("Mind-bending film");
        item2.setOwn(false);
       
        // Add items to the database
        db.addItem(item1);
        db.addItem(item2);
       
       
        // List all items in the database
        db.list();
    }
}

Program ini mendemonstrasikan cara membuat database yang berisi berbagai jenis item, mengatur komentar dan status kepemilikan, serta menampilkan daftar semua item yang ada di dalam database.

Database db = new Database();

        // Create some items
        Item item1 = new CD("The Dark Side of the Moon", "Pink Floyd", 10, 42);
        Item item2 = new DVD("Inception", "Christopher Nolan", 148);

Di sini, kita membuat sebuah objek Database baru yang akan digunakan untuk menyimpan daftar Item. Dengan memanggil konstruktor Database(), sebuah koleksi kosong dari Item akan dibuat. 

Item item1: Objek item1 adalah sebuah objek bertipe CD yang memiliki judul "The Dark Side of the Moon" oleh artis "Pink Floyd", terdiri dari 10 lagu, dengan durasi total 42 menit. Objek CD ini dibuat menggunakan konstruktor CD, yang menerima judul, nama artis, jumlah lagu, dan durasi.

Item item2: Objek item2 adalah sebuah objek bertipe DVD yang memiliki judul "Inception" dan disutradarai oleh Christopher Nolan, dengan durasi 148 menit.


Output:



Komentar

Postingan populer dari blog ini

The Busy Beaver Problem

Tugas 15 - Final Project

Church-Turing Thesis dan Kaitannya dengan Bahasa Pemrograman