Pertemuan 5: Konsep dan Sifat Objek
Tugas Pertemuan 5
Nama: Farrel Aqilla Novianto
NRP: 5025241015
Kelas: Pemrograman Berorientasi Objek (A)
Implementasi Grouping Object
mahasiswa biasanya harus mengisi Formulir Rencana Studi (FRS) untuk memilih mata kuliah yang akan diambil pada suatu semester. Proses ini melibatkan mahasiswa, dosen pengampu mata kuliah, dan daftar mata kuliah yang tersedia.
Dalam tugas kali ini, saya akan membuat simulasi sistem FRS sederhana menggunakan Java berbasis console menu. Sistem ini memungkinkan mahasiswa untuk:
- Melihat daftar mata kuliah yang tersedia
- Mengambil mata kuliah (selama kuota masih ada)
- Menghapus/drop mata kuliah yang sudah diambil
- Menampilkan daftar mata kuliah yang sudah dipilih
Kode Dosen.java
/**
*
* @author Farrel Aqilla Novianto
*/
public class Dosen{
String nama;
String nip;
public Dosen(String namaInput, String nipInput){
nama = namaInput;
nip = nipInput;
}
}
Kode Mahasiswa.java
/**
*
* @author Farrel Aqilla Novianto
*/
import java.util.ArrayList;
public class Mahasiswa{
String nama;
String nim;
ArrayList<MataKuliah> matkulDiambil = new ArrayList<>();
public Mahasiswa(String namaInput, String nimInput){
nama = namaInput;
nim = nimInput;
}
public void ambilMatkul(MataKuliah mk){
for(MataKuliah m : matkulDiambil){
if(m.namaMK.equals(mk.namaMK)){
System.out.println("Kamu sudah mengambil mata kuliah " + mk.namaMK);
return;
}
}
if(mk.kuota > 0){
matkulDiambil.add(mk);
mk.kuota--;
System.out.println("Berhasil mengambil " + mk.namaMK);
}
else{
System.out.println("Mata kuliah " + mk.namaMK + " sudah penuh!");
}
}
public void dropMatkul(String namaMK){
for(MataKuliah m : matkulDiambil){
if(m.namaMK.equals(namaMK)){
matkulDiambil.remove(m);
m.kuota++;
System.out.println("Berhasil drop mata kuliah " + namaMK);
return;
}
}
System.out.println("Mata kuliah " + namaMK + " tidak ditemukan di FRS kamu!");
}
public void tampilkanFRS(){
System.out.println("\nFRS Mahasiswa " + nama + " (" + nim + "):");
if(matkulDiambil.isEmpty()){
System.out.println("Belum mengambil mata kuliah");
}
else{
for(MataKuliah mk : matkulDiambil){
System.out.println("- " + mk.namaMK + " (Dosen: " + mk.dosen.nama + ")");
}
}
}
}Kode MataKuliah.java
/**
*
* @author Farrel Aqilla Novianto
*/
public class Dosen{
String nama;
String nip;
public Dosen(String namaInput, String nipInput){
nama = namaInput;
nip = nipInput;
}
}Kode Main.java
/**
*
* @author Farrel Aqilla Novianto
*/
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Dosen pakDwi = new Dosen("Pak Dwi", "12345");
Dosen pakIrfan = new Dosen("Pak Irfan", "67890");
ArrayList<MataKuliah> daftarMK = new ArrayList<>();
daftarMK.add(new MataKuliah("Struktur Data (A)", 3, pakDwi));
daftarMK.add(new MataKuliah("Pemrograman Web (D)", 5, pakIrfan));
System.out.print("Masukkan nama mahasiswa: ");
String namaMhs = sc.nextLine();
System.out.print("Masukkan NRP mahasiswa: ");
String nimMhs = sc.nextLine();
Mahasiswa mhs = new Mahasiswa(namaMhs, nimMhs);
int pilihan;
do{
System.out.println("\n=== SISTEM FRS ===");
System.out.println("1. Info Mata Kuliah");
System.out.println("2. Ambil Mata Kuliah");
System.out.println("3. Drop Mata Kuliah");
System.out.println("4. Tampilkan FRS");
System.out.println("0. Keluar");
System.out.print("Pilih menu: ");
pilihan = sc.nextInt();
sc.nextLine();
switch(pilihan){
case 1:
System.out.println("\n--- INFO MATA KULIAH ---");
for(int i = 0; i < daftarMK.size(); i++){
MataKuliah mk = daftarMK.get(i);
System.out.println((i+1) + ". " + mk.namaMK + " | Dosen: " + mk.dosen.nama + " | Kuota tersisa: " + mk.kuota);
}
break;
case 2:
System.out.println("\nPilih mata kuliah untuk diambil:");
for(int i = 0; i < daftarMK.size(); i++){
MataKuliah mk = daftarMK.get(i);
System.out.println((i+1) + ". " + mk.namaMK + " (Kuota: " + mk.kuota + ")");
}
int pilihMK = sc.nextInt();
sc.nextLine();
if(pilihMK > 0 && pilihMK <= daftarMK.size()){
mhs.ambilMatkul(daftarMK.get(pilihMK-1));
}
else{
System.out.println("Pilihan tidak valid!");
}
break;
case 3:
if(mhs.matkulDiambil.isEmpty()){
System.out.println("Belum ada mata kuliah yang diambil");
break;
}
System.out.println("\n--- Mata Kuliah yang sudah diambil ---");
for(int i = 0; i < mhs.matkulDiambil.size(); i++){
MataKuliah mkDrop = mhs.matkulDiambil.get(i);
System.out.println((i+1) + ". " + mkDrop.namaMK + " (Dosen: " + mkDrop.dosen.nama + ")");
}
System.out.print("\nPilih nomor mata kuliah yang ingin didrop: ");
int dropIdx = sc.nextInt();
sc.nextLine();
if(dropIdx > 0 && dropIdx <= mhs.matkulDiambil.size()){
MataKuliah mkDrop = mhs.matkulDiambil.get(dropIdx-1);
mhs.dropMatkul(mkDrop.namaMK);
}
else{
System.out.println("Pilihan tidak valid!");
}
break;
case 4:
mhs.tampilkanFRS();
break;
case 0:
System.out.println("Keluar dari sistem...");
break;
default:
System.out.println("Pilihan tidak valid!");
}
}
while(pilihan != 0);
sc.close();
}
}
Setelah kita buat skripnya, kita run saja console menu dengan klik kanan main lalu klik void main, dan berikut dokumentasinya:
Komentar
Posting Komentar