Studi Kasus:
Buatlah sebuah program untuk menampilkan IPK yang diraih oleh seorang mahasiswa.
Input:
- Nama Mahasiswa
- NIM
- Jumlah matakuliah
- Kode Matkul: CS1423 -> angka terakhir menunjukkan sks
- Nama Matkul
- Nilai : A,B,C,D,E
Output:
Nama, NIM, dan IPK
Jawaban:
Dari studi kasus di atas, bisa dirancang 2 buah kelas, yaitu Mahasiswa dan MataKuliah.
Berikut adalah hasil coding untuk kelas Mahasiswa.
public class Mahasiswa {
private String nama;
private String nim;
private float ipk;
MataKuliah[] mataKuliah = new MataKuliah[100];
private int jumlahMatkul = 0;
public Mahasiswa(String nama, String nim){
setNama(nama);
setNim(nim);
}
public void tambahMatkul(int index, String kodeMatkul, String namaMatkul, char nilaiMatkul){
this.mataKuliah[index] = new MataKuliah(kodeMatkul, namaMatkul, nilaiMatkul);
}
public void hitungIPK(){
float jumlahMutu = 0;
int jumlahTotalSKS = 0;
for(int i = 0; i < getJumlahMatkul(); i++){
jumlahMutu += this.mataKuliah[i].getNilai() * this.mataKuliah[i].getJumlahSKS();
jumlahTotalSKS += this.mataKuliah[i].getJumlahSKS();
}
setIpk(jumlahMutu/jumlahTotalSKS);
}
public void setNama(String nama){
this.nama = nama;
}
public void setNim(String nim){
this.nim = nim;
}
public void setIpk(float ipk){
this.ipk = ipk;
}
public String getNama(){
return this.nama;
}
public String getNim(){
return this.nim;
}
public float getIpk(){
return this.ipk;
}
public void tambahJumlahMatkul(){
this.jumlahMatkul++;
}
public int getJumlahMatkul(){
return this.jumlahMatkul;
}
}
Kemudian, berikut ini adalah hasil coding dari kelas MataKuliah.
public class MataKuliah {
private String kode;
private String nama;
private int jumlahSKS;
private char nilai;
public MataKuliah(String kode, String nama, char nilai){
setKode(kode);
setNama(nama);
setJumlahSKS(kode);
setNilai(nilai);
}
public void setKode(String kode){
this.kode = kode;
}
public void setNama(String nama){
this.nama = nama;
}
public void setJumlahSKS(String kode){
this.jumlahSKS = Character.getNumericValue(kode.charAt(kode.length() - 1));
}
public void setNilai(char nilai){
this.nilai = nilai;
}
public String getKode(){
return this.kode;
}
public String getNama(){
return this.nama;
}
public int getJumlahSKS(){
return this.jumlahSKS;
}
public int getNilai(){
if(this.nilai == 'A')
return 4;
else if(this.nilai == 'B')
return 3;
else if(this.nilai == 'C')
return 2;
else if(this.nilai == 'D')
return 1;
else
return 0;
}
}
Terakhir, buat kelas Main sebagai kelas utama yang akan memanggil dan memanfaatkan kelas Mahasiswa dan Matakuliah yang telah dibuat tadi.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//Meminta data mahasiswa
Scanner userInput = new Scanner(System.in);
System.out.print("\n\n---- Data Mahasiswa ---\n\n");
System.out.print("Masukan Nama Anda : ");
String nama = userInput.nextLine();
System.out.print("Masukan NIM : ");
String nim = userInput.nextLine();
System.out.print("Jumlah Mata Kuliah : ");
//Meminta data mata kuliah
Mahasiswa mahasiswa = new Mahasiswa(nama, nim);
int jumlahMatkul = userInput.nextInt();
String kodeMatkul;
String namaMatkul;
char nilaiMatkul;
System.out.print("\n---- Data Mata Kuliah ---\n\n");
for(int i = 0; i < jumlahMatkul; i++){
Scanner inputData = new Scanner(System.in);
System.out.print("Nama Matakuliah " + (i + 1) + " : ");
namaMatkul = inputData.nextLine();
System.out.print("Kode Matakuliah " + (i + 1) + " : ");
kodeMatkul = inputData.nextLine();
System.out.print("Nilai Matakuliah (A/B/C/D/E/F)" + " : ");
nilaiMatkul = inputData.next().charAt(0);
mahasiswa.tambahMatkul(i, kodeMatkul, namaMatkul, nilaiMatkul);
mahasiswa.tambahJumlahMatkul();
System.out.println("");
}
mahasiswa.hitungIPK();
System.out.print("\n---- Hasil Data ---\n\n");
System.out.println("Nama : " + mahasiswa.getNama());
System.out.println("Nim : " + mahasiswa.getNim());
System.out.println("Jumlah Mata Kuliah : " + jumlahMatkul);
System.out.println("Nilai IPK : " + mahasiswa.getIpk() + "\n\n");
}
}
Happy coding ๐
Leave a Reply