// tugas ketiga
/*
Nama : Ati Tasmiati Dewi
NIM : 11520244043
*/
import java.util.Scanner;
/////////////////////////////////////////////////////////////////
class mahasiswa { // mahasiswa mempunyai 3 data, nim, nama, dan ipk
private String nimMhs;
private String namaMhs;
private double ipkMhs;
//--------------------------------------------------------------
// constructor
// berguna juga untuk "memasukkan" data mahasiswa
public mahasiswa(String nim, String nama, double ipk) {
nimMhs = nim;
namaMhs = nama;
ipkMhs = ipk;
}
//--------------------------------------------------------------
// method untuk menampilkan data mahasiswa
public void lihatData() {
System.out.println(nimMhs + " --> " + namaMhs + " --> " + ipkMhs);
}
//--------------------------------------------------------------
// method memperoleh (mengambil) data nama
public String getNama(){
return namaMhs;
}
public String getNIM(){
return nimMhs;
}
public double getIpk(){
return ipkMhs;
}
} // end class mahasiswa
/////////////////////////////////////////////////////////////////
class arai {
private mahasiswa[] dt; // array
private int jml_data;
private int i;
//--------------------------------------------------------------
public arai(int max) { // constructor
dt = new mahasiswa[max];
jml_data = 0; // jumlah data mula-mula nol
}
//--------------------------------------------------------------
// method input untuk memasukkan data ke dalam array
public void input(String nim, String nama, double ipk) {
dt[jml_data] = new mahasiswa(nim,nama,ipk);
jml_data++; // jika ada data masuk maka jumlah datanya bertambah
}
//--------------------------------------------------------------
// method dataArai untuk menampilkan data yang ada dalam array
// method tidak mengembalikan nilai (menggunakan void) --> PROCEDURE
public void dataArai() { // menampilkan isi dari array
System.out.println("");
System.out.println("----------------------------");
System.out.println("NIM Nama IPK");
System.out.println("----------------------------");
for(i=0; i<jml_data; i++)
dt[i].lihatData();
System.out.println("----------------------------");
System.out.println("");
}
//--------------------------------------------------------------
// method cari untuk mencari data yang ada dalam array
// method mengembalikan nilai (tidak menggunakan void) --> FUNCTION
// pencarian data berdasarkan nama mahasiswa
public boolean cari(String cr) {
for(i=0; i<jml_data; i++) // mencari data pada setiap elemen array
if( dt[i].getNama().equals(cr) ) // membandingkan data pada array dengan yang dicari
break; // jika sama maka pencarian dihentikan
if(i == jml_data) // apakah pencarian yang dilakukan sebanyak jumlah elemen array?
return false; // jika true data TIDAK ditemukan (false)
else
return true; // jika false data ditemukan (true)
}
public boolean cari2(String nim){
for(i=0; i<jml_data; i++) // mencari data pada setiap elemen array
if( dt[i].getNIM().equals(nim) ) // membandingkan data pada array dengan yang dicari
break; // jika sama maka pencarian dihentikan
if(i == jml_data) // apakah pencarian yang dilakukan sebanyak jumlah elemen array?
return false; // jika true data TIDAK ditemukan (false)
else
return true; // jika false data ditemukan (true)
}
public void ketemu(String cr){
for(i=0; i<jml_data; i++) // mencari data pada setiap elemen array
if( dt[i].getNama().equals(cr) ) // membandingkan data pada array dengan yang dicari
System.out.println("NIM : "+dt[i].getNIM()+"\nNama : "+dt[i].getNama()+"\nIPK : "+dt[i].getIpk());
System.out.println("");
//menampilkan data nama NIM sama IPK
}
//--------------------------------------------------------------
// method hapus untuk menghapus data yang ada dalam array
// method mengembalikan nilai (tidak menggunakan void) --> FUNCTION
public boolean hapus(String hps) {
boolean cri = cari(hps); // memanggil method cari
if (cri==true) { // bila data ditemukan maka dihapus
for(int j=i; j<jml_data-1; j++)
dt[j] = dt[j+1];
jml_data--; // jangan lupa jumlah data dikurangi satu!!!
return true;
}
else // bila data tidak ditemukan
return false;
}
} // end class metod
/////////////////////////////////////////////////////////////////////////
class Prak03_11520244043 {
public static void main(String[] args) {
int i=1, jml_arai=100;
Scanner sken = new Scanner(System.in);
arai md = new arai(jml_arai); // memanggil class metod dengan variabel md
String nim, nama, cariData;
double ipk;
//----------------------------------------------------------------------
int menu;
do {
System.out.println("");
System.out.println("Pilih Menu di bawah ini");
System.out.println("1. Memasukkan data");
System.out.println("2. Pencarian data");
System.out.println("3. Penghapusan data");
System.out.println("4. Penampilan data");
System.out.println("5. Keluar");
System.out.print("Anda memilih : ");
menu = sken.nextInt();
if (menu==1){
do{
System.out.println("Masukkan data mahasiswa ke-" + i);
System.out.print("NIM : ");
nim = sken.next();
System.out.print("Nama : ");
nama = sken.next();
System.out.print("IPK : ");
ipk = sken.nextDouble();
boolean cri=md.cari2(nim);
if(cri==true){
System.out.println("Sudah ada mahasiswa dengan nim "+nim);
System.out.println("");
}else{
md.input(nim,nama,ipk); // memanggil method input pada class metod
i++;
break;
}
}while(true);
}
if (menu==2) {
System.out.print("Nama mahasiswa yang anda cari = ");
cariData = sken.next();
boolean hasil = md.cari(cariData); // memanggil method cari pada class metod
if (hasil==true){
System.out.println("");
System.out.println("========================");
System.out.println("Nama Mahasiswa ditemukan");
System.out.println("========================");
md.ketemu(cariData);
}else{
System.out.println("Nama " + cariData + " tidak ditemukan ");
}
System.out.println("");
} else if (menu==3) {
System.out.print("Data yang anda hapus = ");
cariData = sken.next();
boolean sts = md.hapus(cariData); // memanggil method hapus pada class metod
if (sts==true)
System.out.println("Data " + cariData + " berhasil dihapus");
else
System.out.println("Data " + cariData + " TIDAK ditemukan");
System.out.println("");
} else if (menu==4) {
md.dataArai();
System.out.println("");
}
} while (menu >= 1 && menu < 5);
} // end main()
} // end class tgsPertama
Tidak ada komentar:
Posting Komentar