Skip to content

Instantly share code, notes, and snippets.

@faytranevozter
Last active January 6, 2018 06:43
Show Gist options
  • Save faytranevozter/579d56debf0d3cd804bc856be67de056 to your computer and use it in GitHub Desktop.
Save faytranevozter/579d56debf0d3cd804bc856be67de056 to your computer and use it in GitHub Desktop.
Ini YA :)
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