Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- Mahasiswa[] data = new Mahasiswa[2];
- for (int i = 0; i < data.length; i++) {
- System.out.print("Masukkan NIM : ");
- int nim = scan.nextInt();
- System.out.print("Masukkan Nama : ");
- String nama = scan.next();
- data[i] = new Mahasiswa(nama, nim);
- System.out.println("");
- }
- Mahasiswa d = new Mahasiswa();
- System.out.print("Masukkan NIM yang anda cari : ");
- d.setNim(scan.nextInt());
- if (Binary.binaryObject(data,d) > -1) {
- System.out.println("Data ada pada index ke " + Binary.binaryObject(data, d));
- } else {
- System.out.println("Data tidak ditemukan");
- }
- }
- //=========================================================================//
- public static int sequential(int elements[], int target) {
- for (int i = 0; i < elements.length; i++) {
- if (elements[i] == target) {
- return i;
- }
- }
- return -1;
- }
- public static int sequentialObject(Object elements[], Object target) {
- for (int i = 0; i < elements.length; i++) {
- if (((Comparable)elements[i]).compareTo(target)==0){
- return i;
- }
- }
- return -1;
- }
- //=========================================================================//
- public static int binary(int[] larik, int kunci) {
- int indekAwal = 0;
- int indekAkhir = larik.length - 1;
- int indekTengah;
- while (indekAwal <= indekAkhir) {
- indekTengah = (indekAwal + indekAkhir) / 2;
- if (larik[indekTengah] == kunci) {
- return indekTengah;
- } else if (larik[indekTengah] > kunci) {
- indekAkhir = indekTengah - 1;
- } else {
- indekAwal = indekTengah + 1;
- }
- }
- return -1;
- }
- public static int binaryObject(Object[] larik, Object kunci) {
- Arrays.sort(larik);
- int indekAwal = 0;
- int indekAkhir = larik.length - 1;
- int indekTengah;
- while (indekAwal <= indekAkhir) {
- indekTengah = (indekAwal + indekAkhir) / 2;
- if (((Comparable) larik[indekTengah]).compareTo(kunci) == 0) {
- return indekTengah;
- } else if (((Comparable) larik[indekTengah]).compareTo(kunci) > 0) {
- indekAkhir = indekTengah - 1;
- } else {
- indekAwal = indekTengah + 1;
- }
- }
- return -1;
- }
- //=========================================================================//
- public static int interpolasi(int[] larik, int kunci) {
- int indekAwal = 0;
- int indekAkhir = larik.length - 1;
- int indekTengah;
- while (indekAwal <= indekAkhir) {
- indekTengah = indekAwal + ((kunci - larik[indekAwal]) * (indekAkhir - indekAwal))
- / (larik[indekAkhir] - larik[indekAwal]);
- if (larik[indekTengah] == kunci) {
- return indekTengah;
- } else if (larik[indekTengah] > kunci) {
- indekAkhir = indekTengah - 1;
- } else {
- indekAwal = indekTengah + 1;
- }
- }
- return -1;
- }
- public static int interpolasiObject(Object[] larik, Object kunci) {
- Arrays.sort(larik);
- int indekAwal = 0;
- int indekAkhir = larik.length - 1;
- int indekTengah;
- while (indekAwal <= indekAkhir) {
- indekTengah = indekAwal + ((((Mahasiswa) kunci).getNim() - ((Mahasiswa) larik[indekAwal]).getNim()) * (indekAkhir - indekAwal))
- / (((Mahasiswa) larik[indekAkhir]).getNim() - ((Mahasiswa) larik[indekAwal]).getNim());
- if (((Comparable) larik[indekTengah]).compareTo(kunci) == 0) {
- return indekTengah;
- } else if (((Comparable) larik[indekTengah]).compareTo(kunci) > 0) {
- indekAkhir = indekTengah - 1;
- } else {
- indekAwal = indekTengah + 1;
- }
- }
- return -1;
- }
- //=========================================================================//
- //=========================Buble======================================//
- public static void bubleSortAsc(int[] larik) {
- //Langkah 1 : Untuk iterasi = 1 sampai N-1 lakukan langkah 2
- for (int iterasi = 0; iterasi < larik.length - 1; iterasi++) {
- //Langkah 2 : Untuk elemen = 0 sampai N-1-iterasi lakukan langkah 3
- for (int elemen = 0; elemen < larik.length - 1; elemen++) {
- //Langkah 3 : Test apakah larik[elemen] > larik[elemen + 1]
- if (larik[elemen] > larik[elemen + 1]) {
- //Jika ya, tukarkan nilai kedua elemen ini
- int temp;
- temp = larik[elemen];
- larik[elemen] = larik[elemen + 1];
- larik[elemen + 1] = temp;
- }
- }
- }
- for (int i = 0; i < larik.length; i++) {
- System.out.print(larik[i] + " ");
- }
- }
- public static void bubleSortAscObject(Mahasiswa larik[]) {
- for (int iterasi = 0; iterasi < larik.length - 1; iterasi++) {
- for (int elemen = 0; elemen < larik.length - 1; elemen++) {
- if (((Comparable) larik[elemen]).compareTo(larik[elemen + 1]) > 0) {
- Mahasiswa temp;
- temp = larik[elemen];
- larik[elemen] = larik[elemen + 1];
- larik[elemen + 1] = temp;
- }
- }
- }
- System.out.printf("%-10s", "NIM");
- System.out.printf("%-20s", "NAMA");
- System.out.println("");
- for (int i = 0; i < larik.length; i++) {
- System.out.printf("%-10s", larik[i].getNim());
- System.out.printf("%-20s", larik[i].getNama());
- System.out.println("");
- }
- }
- //=========================Selction======================================//
- public static void SelectionSortAsc(int[] larik) {
- for (int iterasi = 0; iterasi <= larik.length - 2; iterasi++) {
- int minIndex = iterasi;
- for (int elemen = iterasi + 1; elemen <= larik.length-1; elemen++) {
- if (larik[elemen] < larik[minIndex]) {
- minIndex = elemen;
- }
- }
- int temp;
- temp = larik[minIndex];
- larik[minIndex] = larik[iterasi];
- larik[iterasi] = temp;
- }
- for (int i = 0; i < larik.length; i++) {
- System.out.print(larik[i] + " ");
- }
- }
- public static void selectionSortObjectAsc(Mahasiswa larik[]) {
- for (int iterasi = 0; iterasi <= larik.length - 2; iterasi++) {
- int minIndex = iterasi;
- for (int elemen = iterasi + 1; elemen <= larik.length-1; elemen++) {
- if (((Comparable) larik[elemen]).compareTo(larik[minIndex]) < 0) {
- minIndex = elemen;
- }
- }
- Mahasiswa temp;
- temp = larik[minIndex];
- larik[minIndex] = larik[iterasi];
- larik[iterasi] = temp;
- }
- System.out.printf("%-10s", "NIM");
- System.out.printf("%-20s", "NAMA");
- System.out.println("");
- for (int i = 0; i < larik.length; i++) {
- System.out.printf("%-10s", larik[i].getNim());
- System.out.printf("%-20s", larik[i].getNama());
- System.out.println("");
- }
- }
- //=========================Insertion======================================//
- public static void InsertionSortAsc(int[] larik) {
- for (int iterasi = 1; iterasi <= larik.length - 1; iterasi++) {
- for (int elemen = iterasi; elemen >= 1; elemen--) {
- if (larik[elemen] < larik[elemen - 1]) {
- int temp;
- temp = larik[elemen];
- larik[elemen] = larik[elemen - 1];
- larik[elemen - 1] = temp;
- }
- }
- }
- for (int i = 0; i < larik.length; i++) {
- System.out.print(larik[i] + " ");
- }
- }
- public static void InsertionSortObjectAsc(Mahasiswa larik[]) {
- for (int iterasi = 1; iterasi <= larik.length - 1; iterasi++) {
- for (int elemen = iterasi; elemen >= 1; elemen--) {
- if (((Comparable) larik[elemen]).compareTo(larik[elemen - 1]) < 0) {
- Mahasiswa temp;
- temp = larik[elemen];
- larik[elemen] = larik[elemen - 1];
- larik[elemen - 1] = temp;
- }
- }
- }
- System.out.printf("%-10s", "NIM");
- System.out.printf("%-20s", "NAMA");
- System.out.println("");
- for (int i = 0; i < larik.length; i++) {
- System.out.printf("%-10s", larik[i].getNim());
- System.out.printf("%-20s", larik[i].getNama());
- System.out.println("");
- }
- }
- //@Override
- // public int compareTo(Object o) {
- // if (nim == ((Mahasiswa) o).nim) {
- // return 0;
- // } else if (nim < ((Mahasiswa) o).nim) {
- // return -1;
- // } else {
- // return 1;
- // }
- // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement