Latihan Soal 2

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 ๐Ÿ™‚

Be the first to comment

Leave a Reply

Your email address will not be published.


*