Pertemuan 6 - Grouping Object

Aditya Rizki Muhammad

5025221272

PBO B2


Personal Organizer

hasil implementasi dari personal organizer adalah seperti berikut. 


Implementasi program tersebut bisa dikerjakan dalam satu kelas main seperti berikut.

Main.java

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    static Scanner input = new Scanner(System.in);
    static ArrayList<String> daftarTugas = new ArrayList<>();

    public static void main(String[] args) {
        int pilihan;
        do {
            tampilkanMenu();
            System.out.print("Pilih menu: ");
            pilihan = input.nextInt();
            input.nextLine(); // buang newline

            switch (pilihan) {
                case 1:
                    tambahTugas();
                    break;
                case 2:
                    tampilkanTugas();
                    break;
                case 3:
                    hapusTugas();
                    break;
                case 4:
                    System.out.println("Terima kasih! Aplikasi ditutup.");
                    break;
                default:
                    System.out.println("Pilihan tidak valid!");
            }
            System.out.println();
        } while (pilihan != 4);
    }

    static void tampilkanMenu() {
        System.out.println("=== PERSONAL ORGANIZER ===");
        System.out.println("1. Tambah Tugas Baru");
        System.out.println("2. Tampilkan Daftar Tugas");
        System.out.println("3. Hapus Tugas Berdasarkan Nomor");
        System.out.println("4. Keluar");
        System.out.println("===========================");
    }

    static void tambahTugas() {
        System.out.print("Masukkan nama tugas: ");
        String tugas = input.nextLine();
        daftarTugas.add(tugas);
        System.out.println("Tugas \"" + tugas + "\" berhasil ditambahkan!");
    }

    static void tampilkanTugas() {
        System.out.println("=== DAFTAR TUGAS ===");
        if (daftarTugas.isEmpty()) {
            System.out.println("Belum ada tugas yang ditambahkan.");
        } else {
            for (int i = 0; i < daftarTugas.size(); i++) {
                System.out.println((i + 1) + ". " + daftarTugas.get(i));
            }
        }
    }

    static void hapusTugas() {
        tampilkanTugas();
        if (!daftarTugas.isEmpty()) {
            System.out.print("Masukkan nomor tugas yang ingin dihapus: ");
            int nomor = input.nextInt();
            input.nextLine();

            if (nomor > 0 && nomor <= daftarTugas.size()) {
                String dihapus = daftarTugas.remove(nomor - 1);
                System.out.println("Tugas \"" + dihapus + "\" telah dihapus.");
            } else {
                System.out.println("Nomor tugas tidak valid!");
            }
        }
    }
}

Library Catalog

pada implementasi Library Catalog, kita akan membuat dua kelas yang direpresentasikan dalam class diagram berikut.


Implementasi dari setiap class nya dicantumkan dalam kode berikut.

Main.java

import java.util.ArrayList;

import java.util.Scanner;


public class Main {

    static Scanner input = new Scanner(System.in);

    static ArrayList<Book> katalog = new ArrayList<>();


    public static void main(String[] args) {

        int pilihan;

        do {

            tampilkanMenu();

            System.out.print("Pilih menu: ");

            pilihan = input.nextInt();

            input.nextLine(); // buang newline


            switch (pilihan) {

                case 1:

                    tambahBuku();

                    break;

                case 2:

                    tampilkanBuku();

                    break;

                case 3:

                    hapusBuku();

                    break;

                case 4:

                    System.out.println("Terima kasih! Aplikasi ditutup.");

                    break;

                default:

                    System.out.println("Pilihan tidak valid!");

            }

            System.out.println();

        } while (pilihan != 4);

    }


    static void tampilkanMenu() {

        System.out.println("=== LIBRARY CATALOG ===");

        System.out.println("1. Tambah Buku Baru");

        System.out.println("2. Tampilkan Daftar Buku");

        System.out.println("3. Hapus Buku Berdasarkan Nomor");

        System.out.println("4. Keluar");

        System.out.println("=======================");

    }


    static void tambahBuku() {

        System.out.print("Masukkan judul buku: ");

        String judul = input.nextLine();

        System.out.print("Masukkan nama penulis: ");

        String penulis = input.nextLine();

        System.out.print("Masukkan tahun terbit: ");

        int tahun = input.nextInt();

        input.nextLine();


        Book buku = new Book(judul, penulis, tahun);

        katalog.add(buku);

        System.out.println("Buku \"" + judul + "\" berhasil ditambahkan!");

    }


    static void tampilkanBuku() {

        System.out.println("=== DAFTAR BUKU ===");

        if (katalog.isEmpty()) {

            System.out.println("Belum ada buku dalam katalog.");

        } else {

            for (int i = 0; i < katalog.size(); i++) {

                System.out.println((i + 1) + ". " + katalog.get(i));

            }

        }

    }


    static void hapusBuku() {

        tampilkanBuku();

        if (!katalog.isEmpty()) {

            System.out.print("Masukkan nomor buku yang ingin dihapus: ");

            int nomor = input.nextInt();

            input.nextLine();


            if (nomor > 0 && nomor <= katalog.size()) {

                Book dihapus = katalog.remove(nomor - 1);

                System.out.println("Buku \"" + dihapus.getJudul() + "\" telah dihapus.");

            } else {

                System.out.println("Nomor tidak valid!");

            }

        }

    }

}


Book.java
public class Book {
    private String judul;
    private String penulis;
    private int tahunTerbit;

    public Book(String judul, String penulis, int tahunTerbit) {
        this.judul = judul;
        this.penulis = penulis;
        this.tahunTerbit = tahunTerbit;
    }

    public String getJudul() {
        return judul;
    }

    public String getPenulis() {
        return penulis;
    }

    public int getTahunTerbit() {
        return tahunTerbit;
    }

    @Override
    public String toString() {
        return "\"" + judul + "\" oleh " + penulis + " (" + tahunTerbit + ")";
    }
}


hasil dari kode tersebut seperti berikut


Student Record System

Pada project Student Record System, struktur class diagram sama dengan sebelumnya. Implementasinya terbagi dua yaitu main dan student.

Main.java

import java.util.ArrayList;

import java.util.Scanner;


public class Main {

    static Scanner input = new Scanner(System.in);

    static ArrayList<Student> daftarMahasiswa = new ArrayList<>();


    public static void main(String[] args) {

        int pilihan;

        do {

            tampilkanMenu();

            System.out.print("Pilih menu: ");

            pilihan = input.nextInt();

            input.nextLine(); // buang newline


            switch (pilihan) {

                case 1:

                    tambahMahasiswa();

                    break;

                case 2:

                    tampilkanMahasiswa();

                    break;

                case 3:

                    hapusMahasiswa();

                    break;

                case 4:

                    System.out.println("Terima kasih! Program ditutup.");

                    break;

                default:

                    System.out.println("Pilihan tidak valid!");

            }

            System.out.println();

        } while (pilihan != 4);

    }


    static void tampilkanMenu() {

        System.out.println("=== STUDENT RECORD SYSTEM ===");

        System.out.println("1. Tambah Mahasiswa Baru");

        System.out.println("2. Tampilkan Daftar Mahasiswa");

        System.out.println("3. Hapus Mahasiswa Berdasarkan Nomor");

        System.out.println("4. Keluar");

        System.out.println("=============================");

    }


    static void tambahMahasiswa() {

        System.out.print("Masukkan nama mahasiswa: ");

        String nama = input.nextLine();

        System.out.print("Masukkan NRP mahasiswa: ");

        String nrp = input.nextLine();


        Student mhs = new Student(nama, nrp);

        daftarMahasiswa.add(mhs);

        System.out.println("Mahasiswa \"" + nama + "\" berhasil ditambahkan!");

    }


    static void tampilkanMahasiswa() {

        System.out.println("=== DAFTAR MAHASISWA ===");

        if (daftarMahasiswa.isEmpty()) {

            System.out.println("Belum ada data mahasiswa.");

        } else {

            for (int i = 0; i < daftarMahasiswa.size(); i++) {

                System.out.println((i + 1) + ". " + daftarMahasiswa.get(i));

            }

        }

    }


    static void hapusMahasiswa() {

        tampilkanMahasiswa();

        if (!daftarMahasiswa.isEmpty()) {

            System.out.print("Masukkan nomor mahasiswa yang ingin dihapus: ");

            int nomor = input.nextInt();

            input.nextLine();


            if (nomor > 0 && nomor <= daftarMahasiswa.size()) {

                Student dihapus = daftarMahasiswa.remove(nomor - 1);

                System.out.println("Mahasiswa \"" + dihapus.getNama() + "\" telah dihapus.");

            } else {

                System.out.println("Nomor tidak valid!");

            }

        }

    }

}

Student.java
public class Student {
    private String nama;
    private String nrp;

    public Student(String nama, String nrp) {
        this.nama = nama;
        this.nrp = nrp;
    }

    public String getNama() {
        return nama;
    }

    public String getNrp() {
        return nrp;
    }

    @Override
    public String toString() {
        return nama + " (" + nrp + ")";
    }
}


Hasil dari kode tersebut adalah seperti berikut



Project Notebook

Implementasi pencatatan notebook dibagi menjadi 

Main.java

import java.util.ArrayList;

import java.util.Scanner;


public class Main {

    static Scanner input = new Scanner(System.in);

    static ArrayList<Note> daftarCatatan = new ArrayList<>();


    public static void main(String[] args) {

        int pilihan;

        do {

            tampilkanMenu();

            System.out.print("Pilih menu: ");

            pilihan = input.nextInt();

            input.nextLine(); // buang newline


            switch (pilihan) {

                case 1:

                    tambahCatatan();

                    break;

                case 2:

                    tampilkanCatatan();

                    break;

                case 3:

                    hapusCatatan();

                    break;

                case 4:

                    System.out.println("Terima kasih! Notebook ditutup.");

                    break;

                default:

                    System.out.println("Pilihan tidak valid!");

            }

            System.out.println();

        } while (pilihan != 4);

    }


    static void tampilkanMenu() {

        System.out.println("=== NOTEBOOK ===");

        System.out.println("1. Tambah Catatan Baru");

        System.out.println("2. Tampilkan Semua Catatan");

        System.out.println("3. Hapus Catatan Berdasarkan Nomor");

        System.out.println("4. Keluar");

        System.out.println("================");

    }


    static void tambahCatatan() {

        System.out.print("Masukkan judul catatan: ");

        String judul = input.nextLine();

        System.out.print("Masukkan isi catatan: ");

        String isi = input.nextLine();


        Note note = new Note(judul, isi);

        daftarCatatan.add(note);

        System.out.println("Catatan \"" + judul + "\" berhasil ditambahkan!");

    }


    static void tampilkanCatatan() {

        System.out.println("=== DAFTAR CATATAN ===");

        if (daftarCatatan.isEmpty()) {

            System.out.println("Belum ada catatan.");

        } else {

            for (int i = 0; i < daftarCatatan.size(); i++) {

                System.out.println((i + 1) + ". " + daftarCatatan.get(i).getJudul());

            }

            System.out.println();

            System.out.print("Ingin melihat isi catatan tertentu? (masukkan nomor atau 0 untuk kembali): ");

            int nomor = input.nextInt();

            input.nextLine();

            if (nomor > 0 && nomor <= daftarCatatan.size()) {

                System.out.println("------------------------");

                System.out.println(daftarCatatan.get(nomor - 1));

                System.out.println("------------------------");

            }

        }

    }


    static void hapusCatatan() {

        tampilkanCatatan();

        if (!daftarCatatan.isEmpty()) {

            System.out.print("Masukkan nomor catatan yang ingin dihapus: ");

            int nomor = input.nextInt();

            input.nextLine();


            if (nomor > 0 && nomor <= daftarCatatan.size()) {

                Note dihapus = daftarCatatan.remove(nomor - 1);

                System.out.println("Catatan \"" + dihapus.getJudul() + "\" telah dihapus.");

            } else {

                System.out.println("Nomor tidak valid!");

            }

        }

    }

}

Note.java

public class Note {

    private String judul;

    private String isi;


    public Note(String judul, String isi) {

        this.judul = judul;

        this.isi = isi;

    }


    public String getJudul() {

        return judul;

    }


    public String getIsi() {

        return isi;

    }


    @Override

    public String toString() {

        return "Judul: " + judul + "\nIsi: " + isi;

    }

}


kode dari setiap project tidak jauh berbeda. Hasil dari implementasi tersebut diperlihatkan gambar di bawah.