Last active
October 28, 2017 06:37
-
-
Save faytranevozter/2ad6187bfad226708560c46134ba1018 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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