Last Updated on 14 years by Mas Herdi
Kegunaan program ini masih sama seperti program pengolah array yang pernah saya buat sebelumnya.
Program ini mempunyai paradigma berorientasi objek, as always. Dan sekarang user dapat menginputkan elemen pada array menggunakan keyboard, dimana pada program sebelumnya elemen di dalam array di-assignment langsung dari program.
Keseluruhan program terdiri dari tiga file yaitu :
- File ArrayTwo.java
Primitive Array/Objek dasar - File ArrayTwoTestDrive.java
Berisi metode-metode untuk mengolah array. Antara lain :- membuat array baru
- menambahkan elemen baru pada array, elemen tersebut otomatis akan ditambahkan di akhir array
- menghapus n elemen terakhir dari array
- mengurutkan array
- mencari sebuah elemen tertentu pada array
- mencari elemen terbesar
- mencari elemen terkecil
- menampilkan seluruh elemen dari array
- File menu.java
berisi daftar menu dari operasi-operasi yang bisa dilakukan
Kemudian, saya telah memperbaiki pengecekan kondisi array di sini, seperti memperkirakan kapan array menjadi kosong dan memperkirakan kapan array menjadi penuh, semua sudah diantisipasi dan ditanggulangi dengan baik.
Ini adalah UML diagram-nya :
Source code
- ArrayTwo.java (Primitif array)
class ArrayTwo { private int a[]; private int ptrElmt = 0; private int n = 10; public void createEmptyArray() { a = new int[n]; } public void addElement(int e) { a[ptrElmt] = e; ptrElmt ++; } public void delElement(int d) { int batas; for(batas = d; batas <= 0; batas --); { a[ptrElmt - batas] = 0; } if(ptrElmt == batas) { ptrElmt = 0; } else { ptrElmt = ptrElmt - batas; } } public void displayArray() { for(ptrElmt = 0; ptrElmt <= n-1 && a[ptrElmt] != 0; ptrElmt ++) { System.out.print(+a[ptrElmt]+ " "); } } public void sortArray() { int b,c,d; d = ptrElmt; for(b = 1; b <= d-1 && a[b] != 0; b++) for(c = d-1; c >=b && a[c] != 0; c--) { if(a[c-1] > a[c]) { int temp = a[c-1]; a[c-1] = a[c]; a[c] = temp; } } } public int searchElement(int q) { Boolean found = false; int i; for(i = 0; i <= n-1 && a[i] != 0; i++) { if(a[i] == q) { found = true; break; } else { found = false; } } if(found == true) { return i; } else { return 9999; } } public int maxElement() { int max = a[0]; for(int i = 1; i < n && a[i] != 0; i ++) { if(a[i] >= max) max = a[i]; } return max; } public int minElement() { int min = a[0]; for(int i = 1; i < n-1 && a[i] != 0; i ++) { if(a[i] < min) min = a[i]; } return min; } public int getPosition() { return ptrElmt; } public int getLastElement() { return a[ptrElmt]; } }
- ArrayTwoTestDrive.java
import java.util.Scanner; class ArrayTwoTestDrive { private static Scanner s = new Scanner(System.in); private static Scanner v = new Scanner(System.in); private static ArrayTwo A = new ArrayTwo(); private static String input; public static int checkArray() { return A.getPosition(); } public static void createArray() { A.createEmptyArray(); System.out.println("Sebuah array baru telah dibuat"); System.out.println("Tekan enter untuk melanjutkan"); input = s.nextLine(); } public static void addElement() { int x; int pos = checkArray(); if(pos < 10) { System.out.print("Masukkan elemen yang ingin ditambahkan : "); x = s.nextInt(); A.addElement(x); System.out.println("Elemen " +x+" telah ditambahkan"); input = v.nextLine(); } else if(pos>=10) { System.out.println("Maaf array sudah penuh juragan"); input = v.nextLine(); } } public static void deleteElement() { int n; int pos = checkArray(); if(pos <= 0) { System.out.println("Array kosong tidak ada yang bisa dihapus"); input = v.nextLine(); } else if(pos > 0) { System.out.print("Masukkan jumlah elemen yang ingin dihapus : "); n = s.nextInt(); A.delElement(n); System.out.println("Sebanyak "+n+" elemen terakhir dari Array telah dihapus"); //Sentinel untuk pengecekan System.out.println(+checkArray()); input = v.nextLine(); } } public static void displayElement() { int pos = checkArray(); //Sentinel untuk pengecekan System.out.println(+checkArray()); if(pos <= 0) { System.out.println("Array Kosong, tidak ada yang bisa ditampilkan"); input = v.nextLine(); } else if(pos > 0) { System.out.println("Isi dari Array adalah"); A.displayArray(); input = v.nextLine(); } } public static void sortingArray() { int pos = checkArray(); if(pos > 0) { A.sortArray(); System.out.println("Pengurutan array berhasil"); input = s.nextLine(); } else { System.out.println("Array kosong, tidak ada yang bisa di-sort"); input = v.nextLine(); } } public static void searchElement() { int x; System.out.println("Masukkan elemen yang ingin dicari"); x = s.nextInt(); if(A.searchElement(x) == 9999) { System.out.println("Data tidak ketemu atau Array kosong"); input = v.nextLine(); } else { System.out.println("Posisi "+x+" ada di " + A.searchElement(x)+ "n"); input = v.nextLine(); } } public static void maxElement() { int pos = checkArray(); if(pos > 0) { System.out.println("ELemen MAX = " + A.maxElement()+"t"); input = s.nextLine(); } else if(pos <= 0) { System.out.println("Array Kosong"); input = v.nextLine(); } } public static void minElement() { int pos = checkArray(); if(pos > 0) { System.out.println("Elemen MIN = " + A.minElement()+"t"); input = s.nextLine(); } else if(pos <= 0) { System.out.println("Array Kosong"); input = v.nextLine(); } } }
- menu.java
import java.util.Scanner; class menu { public static void main(String[] ArrayOne_HafizhHerdiNaufal_113090100) { ArrayTwoTestDrive test = new ArrayTwoTestDrive(); int pil=9; Scanner s = new Scanner(System.in); while (pil != 0) { System.out.println("n Pengolahan Array"); System.out.println("Menu"); System.out.println("[1] Create Array baru dengan 10 elemen"); System.out.println("[2] Tambah Elemen Array"); System.out.println("[3] Delete n elemen terakhir"); System.out.println("[4] Sorting Array"); System.out.println("[5] Mencari elemen i di dalam array"); System.out.println("[6] Display elemen dalam Array"); System.out.println("[7] Display elemen terbesar"); System.out.println("[8] Display elemen terkecil"); System.out.println("[0] Keluar"); System.out.println("Warning:pilihan satu akan membuat array baru dan menghapus array yang sudah ada"); System.out.print("Masukkan pilihan anda : "); pil = s.nextInt(); switch(pil) { case 1 : test.createArray(); break; case 2 : test.addElement(); break; case 3 : test.deleteElement(); break; case 4 : test.sortingArray(); break; case 5 : test.searchElement(); break; case 6 : test.displayElement(); break; case 7 : test.maxElement();break; case 8 : test.minElement();break; case 0 :break; } } } }
Screenshot program :
Pada saat menjalankan program untuk pertama kali, pilihlah opsi pertama pada menu, yaitu
[1] Create Array baru dengan sepuluh elemen
. Hal ini sangatlah penting! Karena jika array tidak dibuat, maka tidak ada objek array yang bisa kita olah.Sebenarnya, banyak yang mau dibahas, seperti masalah pengurutan dan lain-lain. Tapi sayangnya saya malas menulisnya. 😀 Enjoy!