Skip to content

Instantly share code, notes, and snippets.

@faytranevozter
Last active October 28, 2017 06:37
Show Gist options
  • Save faytranevozter/2ad6187bfad226708560c46134ba1018 to your computer and use it in GitHub Desktop.
Save faytranevozter/2ad6187bfad226708560c46134ba1018 to your computer and use it in GitHub Desktop.
import java.util.Scanner;
class formatBiodata {
// bagian deklarasi struktur record
String nama;
String alamat;
int umur;
char jekel;
float ipk;
}
class Example {
public static int N=5;
public static Scanner masukan = new Scanner(System.in);
public static void ngentriData(formatBiodata biodataMahasiswa[]) {
// bagian entri data ke dalam struktur larik
// int bacaTombol=0;
// for (int i=0; i<=N-1; i++) {
// System.out.print("Silakan masukkan nama anda : ");
// biodataMahasiswa[i].nama = masukan.next();
// System.out.print("Silakan masukkan alamat anda : ");
// biodataMahasiswa[i].alamat = masukan.next();
// System.out.print("Silakan masukkan umur anda : ");
// biodataMahasiswa[i].umur = masukan.nextInt();
// System.out.print("Silakan masukkan Jenis Kelamin anda : ");
// try {
// bacaTombol = System.in.read();
// }
// catch(java.io.IOException e) {}
// biodataMahasiswa[i].jekel = (char)bacaTombol;
// System.out.print("Silakan masukkan IPK anda : ");
// biodataMahasiswa[i].ipk = masukan.nextFloat();
// System.out.println();
// }
biodataMahasiswa[0].nama = "Fay";
biodataMahasiswa[1].nama = "Laily";
biodataMahasiswa[2].nama = "Oky";
biodataMahasiswa[3].nama = "Siboy";
biodataMahasiswa[4].nama = "Galang";
biodataMahasiswa[0].alamat = "Jogja";
biodataMahasiswa[1].alamat = "Bantul";
biodataMahasiswa[2].alamat = "Sleman";
biodataMahasiswa[3].alamat = "Jakarta";
biodataMahasiswa[4].alamat = "Jogja";
biodataMahasiswa[0].umur = 21;
biodataMahasiswa[1].umur = 24;
biodataMahasiswa[2].umur = 25;
biodataMahasiswa[3].umur = 22;
biodataMahasiswa[4].umur = 21;
biodataMahasiswa[0].jekel = 'L';
biodataMahasiswa[1].jekel = 'P';
biodataMahasiswa[2].jekel = 'L';
biodataMahasiswa[3].jekel = 'L';
biodataMahasiswa[4].jekel = 'L';
biodataMahasiswa[0].ipk = (float) 4.0;
biodataMahasiswa[1].ipk = (float) 2.0;
biodataMahasiswa[2].ipk = (float) 3.0;
biodataMahasiswa[3].ipk = (float) 1.0;
biodataMahasiswa[4].ipk = (float) 3.5;
}
public static void tampilkanData(formatBiodata biodataMahasiswa[]) {
// bagian menampilkan isi struktur Larik
System.out.println("---------------------------------");
System.out.println("NAMA ALAMAT UMUR JEKEL IPK ");
System.out.println("---------------------------------");
for (int i=0; i<=N-1; i++) {
System.out.print (biodataMahasiswa[i].nama + " ");
System.out.print (biodataMahasiswa[i].alamat + " ");
System.out.print (biodataMahasiswa[i].umur + " ");
System.out.print (biodataMahasiswa[i].jekel + " ");
System.out.println(biodataMahasiswa[i].ipk);
}
System.out.println("---------------------------------");
}
public static void tambahDataDiDepan(formatBiodata biodataMahasiswa[]) {
// bagian membuat record sementara untuk menampung data baru
formatBiodata biodataMahasiswaBaru = new formatBiodata();
int bacaTombol=0;
System.out.print("Silakan masukkan nama anda : ");
biodataMahasiswaBaru.nama = masukan.next();
System.out.print("Silakan masukkan alamat anda : ");
biodataMahasiswaBaru.alamat = masukan.next();
System.out.print("Silakan masukkan umur anda : ");
biodataMahasiswaBaru.umur = masukan.nextInt();
System.out.print("Silakan masukkan Jenis Kelamin anda : ");
try {
bacaTombol = System.in.read();
}
catch(java.io.IOException e) {}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.print("Silakan masukkan IPK anda : ");
biodataMahasiswaBaru.ipk = masukan.nextFloat();
// bagian menggeser isi larik mulai dari Belakang s/d 0 selangkah ke bawah
for (int i=N-1; i>= 0; i--) {
biodataMahasiswa[i+1] = biodataMahasiswa[i];
}
// bagian memindahkan data baru ke larik ke-0
biodataMahasiswa[0] = biodataMahasiswaBaru;
// memperbaharui banyaknya data (N), banyaknya data bertambah satu
N++;
}
public static void tambahDataDiTengah(formatBiodata biodataMahasiswa[]) {
// bagian membuat record sementara untuk menampung data baru
formatBiodata biodataMahasiswaBaru = new formatBiodata();
// bagian entri data baru ke penyimpan sementara
Scanner masukan = new Scanner(System.in);
int bacaTombol=0;
System.out.print("Silakan masukkan nama anda : ");
biodataMahasiswaBaru.nama = masukan.next();
System.out.print("Silakan masukkan alamat anda : ");
biodataMahasiswaBaru.alamat = masukan.next();
System.out.print("Silakan masukkan umur anda : ");
biodataMahasiswaBaru.umur = masukan.nextInt();
System.out.print("Silakan masukkan Jenis Kelamin anda : ");
try {
bacaTombol = System.in.read();
} catch(java.io.IOException e) {}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.print("Silakan masukkan IPK anda : ");
biodataMahasiswaBaru.ipk = masukan.nextFloat();
// bagian menentukan posisi target T
int T;
System.out.print("Pada posisi ke berapa data akan dimasukkan ? : ");
T = masukan.nextInt();
// bagian menggeser isi larik mulai dari Belakang s/d T selangkah ke belakang
for (int i=N-1; i>= T; i--) {
biodataMahasiswa[i+1] = biodataMahasiswa[i];
}
// bagian memindahkan data baru ke larik ke-T
biodataMahasiswa[T] = biodataMahasiswaBaru;
// memperbaharui banyaknya data (N), banyaknya data bertambah satu
N++;
}
public static void tambahDataDiBelakang(formatBiodata biodataMahasiswa[]) {
// bagian membuat record sementara untuk menampung data baru
formatBiodata biodataMahasiswaBaru = new formatBiodata();
// bagian entri data baru ke penyimpan sementara
Scanner masukan = new Scanner(System.in);
int bacaTombol=0;
System.out.print("Silakan masukkan nama anda : ");
biodataMahasiswaBaru.nama = masukan.next();
System.out.print("Silakan masukkan alamat anda : ");
biodataMahasiswaBaru.alamat = masukan.next();
System.out.print("Silakan masukkan umur anda : ");
biodataMahasiswaBaru.umur = masukan.nextInt();
System.out.print("Silakan masukkan Jenis Kelamin anda : ");
try {
bacaTombol = System.in.read();
} catch(java.io.IOException e) {}
biodataMahasiswaBaru.jekel = (char)bacaTombol;
System.out.print("Silakan masukkan IPK anda : ");
biodataMahasiswaBaru.ipk = masukan.nextFloat();
// bagian memindahkan data baru ke larik ke-N
biodataMahasiswa[N] = biodataMahasiswaBaru;
// memperbaharui banyaknya data (N), banyaknya data bertambah satu
N++;
}
public static void hapusDataDiDepan(formatBiodata biodataMahasiswa[]) {
// bagian menggeser isi larik mulai dari 0 - Belakang selangkah ke depan
for (int i=0; i<= N-2; i++) {
biodataMahasiswa[i] = biodataMahasiswa[i+1];
}
System.out.println("Proses menghapus data ke-0 selesai.");
// memperbaharui banyaknya data (N), banyaknya data berkurang satu
N--;
}
public static void hapusDataDiTengah(formatBiodata biodataMahasiswa[]) {
// bagian menentukan posisi target T
Scanner masukan = new Scanner(System.in);
int T;
System.out.print("Tuliskan posisi data yang akan dibapus : ");
T = masukan.nextInt();
// bagian menggeser isi larik mulai dari T - Belakang selangkah ke depan
for (int i=T; i<= N-2; i++) {
biodataMahasiswa[i] = biodataMahasiswa[i+1];
}
System.out.println("Proses menghapus data ke-" + T + " selesai.");
// memperbaharui banyaknya data (N), banyaknya data berkurang satu
N--;
}
public static void hapusDataDiBelakang(formatBiodata biodataMahasiswa[]) {
System.out.println("Proses menghapus data paling akhir selesai.");
// memperbaharui banyaknya data (N), banyaknya data berkurang satu
N--;
}
public static void cariDataLinear(formatBiodata biodataMahasiswa[]) {
Scanner masukan = new Scanner(System.in);
// bagian memasukkan kata kunci ------------------------------------------
System.out.print("Silakan masukkan kataKunci data yang anda cari :");
String kataKunci = masukan.next();
boolean statusKetemu = false;
int lokasiKetemu = -1;
// bagian mencari data satu persatu urut dari larik terdepan
int i = 0;
while ((i<=N-1) && (statusKetemu==false)) {
// mencocokkan biodataMahasiswa[i].nama == kataKunci
if (kataKunci.equals(biodataMahasiswa[i].nama)) {
statusKetemu = true;
lokasiKetemu = i;
}
i++;
}
System.out.println("Status Ketemu: "+statusKetemu+" di posisi ke " + lokasiKetemu);
}
public static void mencariDataLinear(formatBiodata biodataMahasiswa[]) {
String kataKunci;
int lokasi=-1;
boolean statusKetemu=false;
//bagian memasukkan kata kunci ------------------------------------------
Scanner masukan = new Scanner(System.in);
System.out.print("Masukkan kata kunci pencarian : ");
kataKunci = masukan.next();
//bagian mencari data satu persatu urut dari larik terdepan
for (int i=0; i<= N-1; i++) {
//mencocokkan biodataMahasiswa[i].nama == kataKunci
if (biodataMahasiswa[i].nama.equals(kataKunci)) {
statusKetemu = true;
lokasi = i;
break;
}
}
if (statusKetemu == true) {
System.out.println("Data yang anda cari KETEMU di larik ke : " + lokasi);
} else {
System.out.println("maap, nama yang anda cari tidak ditemukan");
}
}
public static void mencariDataBiner(formatBiodata biodataMahasiswa[]) {
String kataKunci;
int lokasi=-1;
boolean statusKetemu=false;
// bagian memasukkan kata kunci ------------------------------------------
Scanner masukan = new Scanner(System.in);
System.out.print("Masukkan kata kunci pencarian : ");
kataKunci = masukan.next();
// bagian mencari data satu persatu urut dari larik terdepan
int atas,bawah,tengah;
atas = 0;
bawah = N-1;
tengah = (atas + bawah) / 2;
while ((statusKetemu == false) && (bawah-atas!=1)) {
System.out.println(biodataMahasiswa[tengah].nama+" <---> " + kataKunci );
// jika kataKunci < biodataMahasiswa[tengah].nama)
if (kataKunci.compareTo(biodataMahasiswa[tengah].nama) < 0) {
bawah = tengah;
tengah = (atas + bawah) / 2;
}
// jika kataKunci > biodataMahasiswa[tengah].nama)
else if (kataKunci.compareTo(biodataMahasiswa[tengah].nama) > 0) {
atas = tengah;
tengah = (atas + bawah) / 2;
} else {
statusKetemu = true;
lokasi = tengah;
}
}
if (statusKetemu == true) {
System.out.println("Data yang anda cari KETEMU di larik ke : " + lokasi);
} else {
System.out.println("maap, nama yang anda cari tidak ditemukan ");
}
}
public static void mengurutkanDataBubble(formatBiodata biodataMahasiswa[]) {
formatBiodata biodataSementara = new formatBiodata();
int indeksTerakhir = N-1;
for (int j=0;j<=indeksTerakhir - 1; j++) {
for (int i=0; i<=indeksTerakhir -1 -j; i++) {
// perintah dibawah ini identik dengan if (nama[i]>nama[i+1])
if (biodataMahasiswa[i].nama.compareTo(biodataMahasiswa[i+1].nama) < 0) {
biodataSementara = biodataMahasiswa[i];
biodataMahasiswa[i] = biodataMahasiswa[i+1];
biodataMahasiswa[i+1] = biodataSementara;
}
}
}
}
public static void main(String[] args) {
// bagian deklarasi record berbasis LARIK
formatBiodata biodataMahasiswa[] = new formatBiodata[20];
for (int i=0; i<=N-1; i++) {
biodataMahasiswa[i] = new formatBiodata();
}
ngentriData(biodataMahasiswa);
tampilkanData(biodataMahasiswa);
// tambahDataDiDepan(biodataMahasiswa);
// tambahDataDiTengah(biodataMahasiswa);
// tambahDataDiBelakang(biodataMahasiswa);
// hapusDataDiDepan(biodataMahasiswa);
// tampilkanData(biodataMahasiswa);
// hapusDataDiTengah(biodataMahasiswa);
// tampilkanData(biodataMahasiswa);
// hapusDataDiBelakang(biodataMahasiswa);
// tampilkanData(biodataMahasiswa);
// cariDataLinear(biodataMahasiswa);
mencariDataBiner(biodataMahasiswa);
// tampilkanData(biodataMahasiswa);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment