Java : Program Pengolah Array Numerik (Improved)


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 :

    1. membuat array baru
    2. menambahkan elemen baru pada array, elemen tersebut otomatis akan ditambahkan di akhir array
    3. menghapus n elemen terakhir dari array
    4. mengurutkan array
    5. mencari sebuah elemen tertentu pada array
    6. mencari elemen terbesar
    7. mencari elemen terkecil
    8. 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 :

UML_diagram_array

UML Diagram

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 :

Array Program

Screenshot Program Pengolah Array


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!

One thought on “Java : Program Pengolah Array Numerik (Improved)

  1. Pingback: ArrayTor – Array Simulator Version 1.0.1 | The TWOH's Engineering

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s