PBO 5

  muhammad rafi budi purnama

5025221307

PBO 5


Formulir rencana studi digunakan dalam ekosistem kampus, dimana mahasiswa menggunakan program ini dalam mengambil mata kuliah. Program sederhana ini memberikan gambaran sederhana mengenai bagaimana FRS berjalan menggunakan bahasa Java (simplified)

Terdapat beberapa bagian yaitu

  • Main.java
  • Mahasiswa.java
  • Dosen.java
  • MataKuliah.java
  • Kelas.java
class diagram dari kelas kelas yang ada digambarkan dalam gambar berikut. 


Berikut merupakan kode dari setiap class. 

Main.java

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

public class Main {
    static Scanner input = new Scanner(System.in);

    static Mahasiswa mahasiswa;
    static ArrayList<Dosen> daftarDosen = new ArrayList<>();
    static ArrayList<MataKuliah> daftarMataKuliah = new ArrayList<>();
    static ArrayList<Kelas> daftarKelas = new ArrayList<>();
    static ArrayList<Kelas> kelasDiambil = new ArrayList<>();

    public static void main(String[] args) {
        isiDataAwal();

        System.out.print("Masukkan nama mahasiswa: ");
        String nama = input.nextLine();
        System.out.print("Masukkan NRP mahasiswa: ");
        String nrp = input.nextLine();
        mahasiswa = new Mahasiswa(nama, nrp);

        int pilihan;
        do {
            tampilkanMenu();
            System.out.print("Pilih menu: ");
            pilihan = input.nextInt();
            input.nextLine();

            switch (pilihan) {
                case 1:
                    ambilKelas();
                    break;
                case 2:
                    lihatDataKelas();
                    break;
                case 3:
                    lihatDataMahasiswa();
                    break;
                case 4:
                    lihatDataDosen();
                    break;
                case 5:
                    lihatDataMataKuliah();
                    break;
                case 6:
                    System.out.println("Terima kasih telah menggunakan sistem FRS!");
                    break;
                default:
                    System.out.println("Pilihan tidak valid!");
            }
            System.out.println();
        } while (pilihan != 6);
    }

    static void tampilkanMenu() {
        System.out.println("=== MENU FORMULIR RENCANA STUDI ===");
        System.out.println("1. Ambil Kelas");
        System.out.println("2. Lihat Data Kelas yang Diambil");
        System.out.println("3. Lihat Data Mahasiswa");
        System.out.println("4. Lihat Data Dosen");
        System.out.println("5. Lihat Data Mata Kuliah");
        System.out.println("6. Keluar");
        System.out.println("===================================");
    }

    static void isiDataAwal() {
        // Dosen
        Dosen d1 = new Dosen("Prof. Tohari Ahmad, Ph.D");
        Dosen d2 = new Dosen("Dr. Budi Santoso, M.Kom");
        Dosen d3 = new Dosen("Ir. Siti Aminah, M.T");
        daftarDosen.add(d1);
        daftarDosen.add(d2);
        daftarDosen.add(d3);

        // Mata Kuliah
        MataKuliah m1 = new MataKuliah("Pemrograman Berorientasi Objek");
        MataKuliah m2 = new MataKuliah("Jaringan Komputer");
        MataKuliah m3 = new MataKuliah("Kecerdasan Buatan");
        daftarMataKuliah.add(m1);
        daftarMataKuliah.add(m2);
        daftarMataKuliah.add(m3);

        // Kelas (menghubungkan dosen & matkul)
        daftarKelas.add(new Kelas(m1, d1));
        daftarKelas.add(new Kelas(m2, d2));
        daftarKelas.add(new Kelas(m3, d3));
    }

    static void ambilKelas() {
        System.out.println("=== Ambil Kelas ===");
        for (int i = 0; i < daftarKelas.size(); i++) {
            System.out.println((i + 1) + ". " + daftarKelas.get(i));
        }
        System.out.print("Pilih nomor kelas: ");
        int pilihan = input.nextInt();
        input.nextLine();

        if (pilihan > 0 && pilihan <= daftarKelas.size()) {
            Kelas kelas = daftarKelas.get(pilihan - 1);
            kelasDiambil.add(kelas);
            System.out.println("Berhasil mengambil kelas: " + kelas);
        } else {
            System.out.println("Pilihan tidak valid!");
        }
    }

    static void lihatDataKelas() {
        System.out.println("=== Kelas yang Diambil ===");
        if (kelasDiambil.isEmpty()) {
            System.out.println("Belum ada kelas yang diambil.");
        } else {
            for (int i = 0; i < kelasDiambil.size(); i++) {
                System.out.println((i + 1) + ". " + kelasDiambil.get(i));
            }
        }
    }

    static void lihatDataMahasiswa() {
        System.out.println("=== Data Mahasiswa ===");
        System.out.println(mahasiswa);
    }

    static void lihatDataDosen() {
        System.out.println("=== Data Dosen ===");
        for (int i = 0; i < daftarDosen.size(); i++) {
            System.out.println((i + 1) + ". " + daftarDosen.get(i));
        }
    }

    static void lihatDataMataKuliah() {
        System.out.println("=== Data Mata Kuliah ===");
        for (int i = 0; i < daftarMataKuliah.size(); i++) {
            System.out.println((i + 1) + ". " + daftarMataKuliah.get(i));
        }
    }
}

Mahasiswa.java

public class Mahasiswa {
    private String nama;
    private String nrp;

    public Mahasiswa(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 + ")";
    }
}

Dosen.java

public class Dosen {
    private String nama;

    public Dosen(String nama) {
        this.nama = nama;
    }

    public String getNama() {
        return nama;
    }

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

MataKuliah.java

public class MataKuliah {
    private String namaMatkul;

    public MataKuliah(String namaMatkul) {
        this.namaMatkul = namaMatkul;
    }

    public String getNamaMatkul() {
        return namaMatkul;
    }

    @Override
    public String toString() {
        return namaMatkul;
    }
}

Kelas.java

public class Kelas {
    private MataKuliah mataKuliah;
    private Dosen dosen;

    public Kelas(MataKuliah mataKuliah, Dosen dosen) {
        this.mataKuliah = mataKuliah;
        this.dosen = dosen;
    }

    public MataKuliah getMataKuliah() {
        return mataKuliah;
    }

    public Dosen getDosen() {
        return dosen;
    }

    @Override
    public String toString() {
        return mataKuliah.getNamaMatkul() + " - " + dosen.getNama();
    }
}

hasil dari implementasi tersebut diperlihatkan di gambar di bawah

Komentar

Postingan populer dari blog ini

TUGAS 2 : Jettpack compose : Hello, World!

Pertemuan 3 PPB (A) - Mengenal Composable Aplikasi Selamat Ulang Tahun

Pertemuan 5 - Aplikasi Kalkulator Sederhana