Last active
January 6, 2018 06:43
-
-
Save faytranevozter/579d56debf0d3cd804bc856be67de056 to your computer and use it in GitHub Desktop.
Ini YA :)
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 SimpleHeap { | |
public static Scanner scanner = new Scanner(System.in); | |
public static String menu = "0"; | |
public static int N = 5; | |
public static BaseData awal; | |
public static BaseData akhir; | |
public static void inisialisasiSenaraiKosong() { | |
BaseData data1 = new BaseData(); | |
BaseData data2 = new BaseData(); | |
BaseData data3 = new BaseData(); | |
BaseData data4 = new BaseData(); | |
BaseData data5 = new BaseData(); | |
data1.name1 = "NAME1 1 "; | |
data1.name2 = "NAME2 1"; | |
data1.name3 = "NAME3 1"; | |
data1.name4 = 1298000; | |
data1.kiri = null; | |
data1.kanan = data2; | |
data2.name1 = "NAME1 2 "; | |
data2.name2 = "NAME2 2"; | |
data2.name3 = "NAME3 2"; | |
data2.name4 = 1298000; | |
data2.kiri = data1; | |
data2.kanan = data3; | |
data3.name1 = "NAME1 3 "; | |
data3.name2 = "NAME2 3"; | |
data3.name3 = "NAME3 3"; | |
data3.name4 = 1298000; | |
data3.kiri = data2; | |
data3.kanan = data4; | |
data4.name1 = "NAME1 4 "; | |
data4.name2 = "NAME2 4"; | |
data4.name3 = "NAME3 4"; | |
data4.name4 = 1298000; | |
data4.kiri = data3; | |
data4.kanan = data5; | |
data5.name1 = "NAME1 5 "; | |
data5.name2 = "NAME2 5"; | |
data5.name3 = "NAME3 5"; | |
data5.name4 = 1298000; | |
data5.kiri = data4; | |
data5.kanan = null; | |
awal = data1; | |
akhir = data5; | |
} | |
public static int hitungJumlahSimpul() { | |
int N = 0; | |
BaseData bantu; | |
bantu = awal; | |
while (bantu!=null) { | |
N++; | |
bantu = bantu.kanan; | |
} | |
return N; | |
} | |
public static void insertData() { | |
int i = 0; | |
String pilihan; | |
do { | |
if (i >= 10) { | |
System.out.println("+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"); | |
System.out.println("Data Sudah Penuh."); | |
break; | |
} else { | |
BaseData baru = new BaseData(); | |
System.out.print("Name1 : "); | |
scanner.nextLine(); | |
baru.name1 = scanner.nextLine(); | |
System.out.print("Name2 : "); | |
baru.name2 = scanner.nextLine(); | |
System.out.print("Name3 : "); | |
baru.name3 = scanner.nextLine(); | |
System.out.print("Name4 : "); | |
baru.name4 = scanner.nextInt(); | |
if (awal == null) { // jika senarai kosong | |
awal = baru; | |
akhir = baru; | |
baru.kiri = null; | |
baru.kanan = null; | |
} else { // jika senarai tidak kosong | |
baru.kiri = akhir; | |
akhir.kanan = baru; | |
akhir = baru; | |
akhir.kanan = null; | |
} | |
i++; | |
System.out.print("Lagi? (y/n) : "); | |
pilihan = scanner.next(); | |
} | |
} while(pilihan.equals("y")); | |
System.out.println("Berhasil menambah " + (i) + " data."); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void showMenuShowData() { | |
System.out.println("Choose: "); | |
System.out.println("1. Show All Data"); | |
System.out.println("2. Show Data by Name1"); | |
System.out.println("3. Total Data by Name1"); | |
System.out.println("4. Back"); | |
System.out.print("Your Choice [1-4] : "); | |
try { | |
menu = scanner.next(); | |
} catch (java.util.InputMismatchException e) { | |
menu = "0"; | |
} | |
System.out.println("#####################################################"); | |
switch (menu) { | |
case "1": showAllData(); break; | |
case "2": showDataByName1(); break; | |
case "3": countDataByName1(); break; | |
case "4": showMenu(); break; | |
default: | |
System.out.println("Are you kidding me?"); | |
showMenuAdd(); | |
break; | |
} | |
} | |
public static void showAllData() { | |
if (awal==null) { // jika senarai masih kosong | |
System.out.print("....MAAF SENARAI KOSONG...."); | |
} else { // jika senarai tidak kosong | |
System.out.println("-------------------------------------------------"); | |
System.out.println("| NAME1 | NAME2 | NAME3 | NAME4 |"); | |
System.out.println("-------------------------------------------------"); | |
BaseData bantu; | |
bantu = awal; | |
while (bantu != null) { | |
System.out.print("| " + bantu.name1 + " | "); | |
System.out.print(bantu.name2 + " | "); | |
System.out.print(bantu.name3 + " | "); | |
System.out.println(bantu.name4 + " |"); | |
bantu = bantu.kanan; | |
} | |
System.out.println("-------------------------------------------------"); | |
} | |
System.out.println("#####################################################"); | |
showMenu(); | |
} | |
public static void showDataByName1() { | |
System.out.print("Masukkan Merk : "); | |
scanner.nextLine(); | |
String keyword = scanner.nextLine(); | |
System.out.println(keyword); | |
System.out.println("-------------------------------------------------"); | |
System.out.println("| NAME1 | NAME2 | NAME3 | NAME4 |"); | |
System.out.println("-------------------------------------------------"); | |
BaseData bantu; | |
bantu = awal; | |
while (bantu != null) { | |
if (keyword.equalsIgnoreCase(bantu.name1)){ | |
System.out.print("| " + bantu.name1 + " | "); | |
System.out.print(bantu.name2 + " | "); | |
System.out.print(bantu.name3 + " | "); | |
System.out.println(bantu.name4 + " |"); | |
} | |
bantu = bantu.kanan; | |
} | |
System.out.println("-------------------------------------------------"); | |
System.out.println("#####################################################"); | |
showMenu(); | |
} | |
public static void countDataByName1() { | |
System.out.print("Masukkan Merk : "); | |
scanner.nextLine(); | |
String keyword = scanner.nextLine(); | |
System.out.println(keyword); | |
int total = 0; | |
BaseData bantu; | |
bantu = awal; | |
while (bantu != null) { | |
if (keyword.equalsIgnoreCase(bantu.name1)){ | |
total++; | |
} | |
bantu = bantu.kanan; | |
} | |
System.out.println("Jumlah : " + total); | |
System.out.println("#####################################################"); | |
showMenu(); | |
} | |
public static void showMenuAdd() { | |
System.out.println("Choose: "); | |
System.out.println("1. Add Data in the Front"); | |
System.out.println("2. Add Data in the Middle"); | |
System.out.println("3. Add Data in the Last"); | |
System.out.println("4. Back"); | |
System.out.print("[1-4] : "); | |
try { | |
menu = scanner.next(); | |
} catch (java.util.InputMismatchException e) { | |
menu = "0"; | |
} | |
System.out.println("-----------------------------------------------------"); | |
switch (menu) { | |
case "1": addDataAtFront(); break; | |
case "2": addDataAtMiddle(); break; | |
case "3": addDataAtLast(); break; | |
case "4": showMenu(); break; | |
default: | |
System.out.println("Are you kidding me?"); | |
showMenuAdd(); | |
break; | |
} | |
} | |
public static void addDataAtFront() { | |
System.out.println("// todo addDataAtFront"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void addDataAtMiddle() { | |
System.out.println("// todo addDataAtMiddle"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void addDataAtLast() { | |
System.out.println("// todo addDataAtLast"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void searchData() { | |
System.out.println("// todo searchData"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void editData() { | |
int T; | |
System.out.print("Masukkan posisi data yang akan diubah : "); | |
T = scanner.nextInt(); | |
BaseData edit = new BaseData(); | |
System.out.print("Name1 : "); | |
scanner.nextLine(); | |
edit.name1 = scanner.nextLine(); | |
System.out.print("Name2 : "); | |
edit.name2 = scanner.nextLine(); | |
System.out.print("Name3 : "); | |
edit.name3 = scanner.nextLine(); | |
System.out.print("Name4 : "); | |
edit.name4 = scanner.nextInt(); | |
int i = 0; | |
BaseData bantu = awal; | |
while(bantu != null){ | |
if (T == i) { | |
edit.kiri = bantu.kiri; | |
edit.kanan = bantu.kanan; | |
bantu.kiri.kanan = edit; | |
bantu.kanan.kiri = edit; | |
break; | |
} | |
bantu = bantu.kanan; | |
i++; | |
} | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void deleteData() { | |
System.out.println("// todo deleteData"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void showMenuSort() { | |
System.out.println("Choose: "); | |
System.out.println("1. Sort By Name1"); | |
System.out.println("2. Sort By Name2"); | |
System.out.println("3. Sort By Name3"); | |
System.out.println("4. Sort By Name4"); | |
System.out.println("5. Back"); | |
System.out.print("[1-5] : "); | |
try { | |
menu = scanner.next(); | |
} catch (java.util.InputMismatchException e) { | |
menu = "0"; | |
} | |
System.out.println("+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"); | |
switch (menu) { | |
case "1": sortByName1(); break; | |
case "2": sortByName2(); break; | |
case "3": sortByName3(); break; | |
case "4": sortByName4(); break; | |
default: | |
System.out.println("Masukkan data yang sesuai !!"); | |
showMenuSort(); | |
break; | |
} | |
} | |
public static void sortByName1() { | |
int N = hitungJumlahSimpul(); | |
BaseData A = null; | |
BaseData B = null; | |
BaseData bantu = null; | |
BaseData berhenti = akhir.kanan; | |
int nomor; | |
System.out.println("Jumlah : " + N); | |
for (int i = 1; i <= N-1; i++) { | |
A = awal; | |
B = awal.kanan; | |
nomor = 1; | |
// proses banding-tukar, khusus BaseData pertama dgn sebelahnya | |
if (A.name1.compareTo(B.name1) > 0) { | |
A.kanan = B.kanan; | |
B.kanan = A; | |
awal = B; | |
} | |
//proses banding-tukar, BaseData kedua dgn sebelahnya, dst | |
nomor++; | |
bantu = awal; | |
while (bantu.kanan.kanan != berhenti) { | |
A = bantu.kanan; | |
B = bantu.kanan.kanan; | |
if (A.name1.compareTo(B.name1) > 0) { // tukarkan BaseData A dan BaseData B | |
A.kanan = B.kanan; | |
B.kanan = A; | |
bantu.kanan = B; | |
if (B == akhir) { | |
akhir = A; | |
} | |
} | |
bantu = bantu.kanan; | |
nomor++; | |
} | |
berhenti = bantu.kanan;; | |
} | |
System.out.println("Sort Selesai"); | |
System.out.println("-----------------------------------------------------"); | |
showAllData(); | |
} | |
public static void sortByName2() { | |
System.out.println("// todo sort"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void sortByName3() { | |
System.out.println("// todo sort"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void sortByName4() { | |
System.out.println("// todo sort"); | |
System.out.println("-----------------------------------------------------"); | |
showMenu(); | |
} | |
public static void showMenu() { | |
System.out.println("Choose: "); | |
System.out.println("1. Insert Data"); | |
System.out.println("2. Show Data"); | |
System.out.println("3. Add Data *"); | |
System.out.println("4. Search Data"); | |
System.out.println("5. Edit Data"); | |
System.out.println("6. Delete Data"); | |
System.out.println("7. Sort Data"); | |
System.out.println("8. Exit"); | |
System.out.print("[1-8] : "); | |
try { | |
menu = scanner.next(); | |
} catch (java.util.InputMismatchException e) { | |
menu = "0"; | |
} | |
System.out.println("-----------------------------------------------------"); | |
switch (menu) { | |
case "1": insertData(); break; | |
case "2": showMenuShowData(); break; | |
case "3": showMenuAdd(); break; | |
case "4": searchData(); break; | |
case "5": editData(); break; | |
case "6": deleteData(); break; | |
case "7": showMenuSort(); break; | |
case "8": | |
System.out.println("Goodby!"); | |
System.exit(0); | |
break; | |
default: | |
System.out.println("Are you kidding me?"); | |
showMenu(); | |
break; | |
} | |
} | |
public static void main(String[] args) { | |
// show welcome message | |
System.out.println("Welcome to My Program !!"); | |
inisialisasiSenaraiKosong(); | |
// Go | |
showMenu(); | |
} | |
} | |
class BaseData { | |
String name1, name2, name3; | |
int name4; | |
BaseData kiri; | |
BaseData kanan; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment