Posted by : okta Sunday, 14 May 2017

BAB  I
PENDAHULUAN
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang aktif. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam penelusuran data. Dalam artian sorting digunakan untuk mengurutkan sesuatu ( misalnya : kata, buku telepon , dll ). Sorting yang kita terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya lebih mudah. Pada umumnya terdapat dua jenis pengurutan :
– Ascending (Naik).
– Descending (Turun).
Contoh :
Data : Array [1..6] of Byte = (22, 10, 15, 3, 8, 2);
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara/metode.
Macam-macam sorting yaitu :
1. Bubble Sorting
            merupakan salah satu jenis sorting. Bubble sort ada metode sorting termudah. Diberikan nama “bubble” karena konsep dari algoritmanya diibaratkan seperti gelembung air untuk elemen struktur data yang seharusnya pada posisi awal. Bubble sort mengurut data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Dimana cara kerjanya adalah dengan berulang-ulang melakukan proses looping ( perulangan) terhadap elemen-elemen struktur data yang belum diurutkan. Nilai dari masing-masing elemen akan dibandingkan selama proses looping tersebut .jika selama proses looping tersebut ditemukan ada urutannya tidak sesuai dengan permintaan, maka akan dilakukan proses penukaran (swap). Secara tidak langsung, algoritma dari program ini seolah-olah menggeser satu demi satu elemen dari kanan ke kiri atau dari kiri ke kanan tergantung pada jenis pengurutannya. Jenis pengurutan sorting ada 2 yaitu asscending dan descending. Dimana asscending itu mengurut data dari kecil ke besar dan descending itu mengurut data dari besar ke kecil. Jika semua elemen sudah diperiksa oleh fungsi bubble sort, dan tidak ada pertukaran lagi atau semua nilai sudah sesuai, maka saat itu program bubble sort akan berhenti bekerja. Pola Bubble sort yaitu bertukar dengan data sebelahnya.
2. Insertion Sort
            Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang telah diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan. Pola dari Insertion Sort menggurutkan n atau 2 elemen dari terdepan dst.
3. Selection sort
            Merupakan Kombinasi antara sorting dan searching. Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1. Selama proses, perbandingan dan pengubahan, hanya dilakukan pada indeks permbandingnya saja, pertukaran data secara fisik terjadi pada akhir proses.sesuai dengan itu maka algoritma pengurutan data secara Selection adalah sebagai berikut :
Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
Jika pada posisi pos ditemukan data yang terkecil, maka tukarkan data diposisi pos dengan data di posisi i jika k.
Ulangi langkah 1
4. Marge Sort
            Pengurutan algoritma Merge Sort membuat pengurutan dengan membagi 2 dan menggabungkannya. Metoda ini cukup efisien untuk diterapkan. Sama dengan Quick Sort, algoritma Merge Sort adalah dasar pembagian dan penyelesaiannya. Pertama urutan atau elemen data awal diurutkan dengan membaginya menjadi 2 bagian (Devide). Setengahnya diurutkan dengan bebas (Conquer). Kemudian 2 bagian itu digabungkan dengan cara diurut sesuai dengan urutan (Combine).
1. Devide, yakni memilih masalah menjadi sub-masalah.
2. Conquer, yakni menyelesaikan sub-masalah tersebut secara rekursi.
3. Kombinasi/Penggabungan, menggabungkan solusi dari sub-masalah
5. Quick Sort
            Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknyadaftar yang diurutkan, dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Algoritma merge ini disesuaikan untuk mesin drive tape. Penggunaannya dalam akses memori acak besar yang terkait telah menurun, karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.






BAB II
PEMBAHASAN
·         Desain
Pertama pembuatan aplikasi Pendataan Mahasiswa berbasis Java dengan membuka aplikasi Netbean IDE versi 8.0.2 :

Gambar 2.1 Membuka aplikasi Netbean IDE 8.0.2

Gambar 2.2 Membuat Project Baru
Untuk Membuat Project baru pada saat Netbean dijalankan maka Klik  folder dngan tanda tambah lalu pilih categori dengan FILE JAVA lalu pilih project dengan nama JAVA APLICATION lalu pilih Next maka lanjut kebagian seanjutnya

Gambar 2.3 Penamaan pada file project
            Lalu Pada Project Name diganti dengan nama tugas

Gambar 2.4 Pergantian nama pada file project
            Maka setelah dirubah Project Namenya maka klik Tombol Finish maka akanmuncul langkah selanjutnya



Gambar 2.5 Membuat JFrame baru
            Pada project File tugas - > Source pakages - > tugas maka klik kanan pada mouse / mousepad anda lalu pilih new -> Jframe From lalu ada tampilan seperti diatas untuk menapilkan sebuah from baru.

Gambar 2.6 Penamaan Pada JFrame From
            Ubah nama New JFrame dengan file data lalu klik finish maka file data ditambahkan pada file tugas di samping.


Gambar 2.7 Desain Frame
            Maka akan dialihkan pada tampian diatas maka siap kita untuk mendesain sebuah frame pada Netbean terlebih dahulu

Gambar 2.8 Desain Tombol pada Frame
            Untuk tombol atau fungsi digunakannya yaitu:
1.      JBottom           (6 fungsi)
2.      JLabel              (2 fungsi)
3.      JTextField        (1 fungsi)
4.      Tabel               (1 fungsi)
Maka siap Kita Desai sesuka hati kita bagai mana desai yang kita inginkan.
·         Kodingan
·         Memasukan Pendataan Mahasiswa

Gambar 2.9 Source code inputan data Mahasiswa

package tugas;//penamaan pada project yang dibuat
import java.util.ArrayList;//library pada programing java
import javax.swing.JOptionPane; ;//library pada programing java
import javax.swing.table.DefaultTableModel; ;//library pada programing java

public class data extends javax.swing.JFrame {//class data di pangil ke JOption
private static ArrayList<ArrayList<String>> dataMahasiswa = new ArrayList<ArrayList<String>>();// Pemanggilan program tipe Array List
private final DefaultTableModel tabel1;//Variabel tabel1
  
    public data() {//source code data mahasiswa
        initComponents();//pemanilan komponen source
        this.setLocationRelativeTo(null);
        tabel1 = new DefaultTableModel();//buat insialisasi tabel1
        TableShow.setModel(tabel1);//Menampilkan data dari penamaan tabel1
        tabel1.addColumn("Nomor");//Membuat column Nomor pada Tabel atas
        tabel1.addColumn("NPM");// Membuat column NPM pada Tabel atas
        tabel1.addColumn("Nama");// Membuat column Nama pada Tabel atas

    }

   public void masukan(){//Source code Masukan Data Mahasiswa
       ArrayList<String> data_masukan = new ArrayList<String>();//Pemanilan Array List
       String NPM = JOptionPane.showInputDialog(null,"Silahkan Masukan Data NPM");//Penampilkan JOption NPM Mahasiswa
       String Nama = JOptionPane.showInputDialog(null,"Silahkan Masukan Data Nama");//Penampilkan JOption Nama Mahasiswa
       data_masukan.add(NPM);//Menambah data NPM yang dimasukan
       data_masukan.add(Nama);// Menambah data Nama yang dimasukan
       dataMahasiswa.add(data_masukan);// Menambah data  yang telah dimasukan
      
   }
·         Penjelasan dari Source kode


Gambar 2.10 Memasukan fungsi pada tombol memasukan data

Selanjutnya kita memasukan Fungsi dari tombol data agar tombol tersebut membaca code dari data dan masukan.




·         Menampilkan data yang dimasukan kedalam Tabel

Gambar 2.11 Menampilkan data pada tabel
private void tabel(){//source code tabel
       tabel1.getDataVector().removeAllElements();//memangil data yang masuk pada penamaan tabel1
       tabel1.fireTableDataChanged();//Bahawa tabel bisa di hapuskan
       ArrayList<String> data_tabel = new ArrayList<String>();//pemangilan ArrayList degan nama data_tabel
       for(int a=0; a<dataMahasiswa.size();a++){//perulangan apabila nilai data mulai dari 0 maka a++ bertambah terus menerus datanya
           data_tabel=dataMahasiswa.get(a);//mengambil data mahasiswa ke data_tabel
           String[]b = new String[3];//Menyimpan 3 data Nomor,NPM,Nama
           b[0]=String.valueOf(a+1);//Nomor mendata mulai dari nomor 1
           b[1]=data_tabel.get(0);//Mengambil data dari data_tabel
           b[2]=data_tabel.get(1);//Mengambil data dari data_tabel
           tabel1.addRow(b);//menambah data rowspand atau baris

       }
   }
·         Penjelasan dari Source kode

Gambar 2.12 memngil fungsi tabel
            Memasukan kodingan tabel(); pada kodingan agar data yang dimasukan dapat disimpan pada tabel yang kita isi pada tombol memasukkan data Mahasiswa.

Gambar 2.13 Source code Ascending
private void ascending () {//Source code Ascending
       for (int a=0;a<dataMahasiswa.size()-1;a++){//perulangan data mahasiswa yang masuk
           ArrayList<String>data=new ArrayList<>();//memangil nama data
           ArrayList<String>data1=new ArrayList<>();//memangil nama data1
           ArrayList<String>data2=new ArrayList<>();//memangil nama data2
           data=dataMahasiswa.get(a);//mengambil data pertama
           int K = a;//memasukan variabel
           for(int b=a+1;b<dataMahasiswa.size();b++){//melakukan perulangan variable b
               data1=dataMahasiswa.get(b);// mengambil variable b
               int akhirNpm = Integer.parseInt(data.get(0).substring(3));//memasukan variable NPM
               int akhirNpm2 = Integer.parseInt(data1.get(0).substring(3));//memasukan variable Npm ke 2
               if(akhirNpm2<akhirNpm){//jika nilai Npm kurang dari maka urutkan dari NPM
                   K = b;//memangil variable b
                   }
           }
           data2 = dataMahasiswa.get(K);//Memangil data 2 dan membaca variable K
           dataMahasiswa.set(a,data2);//membaca data2 kedua dan variale a
           dataMahasiswa.set(K,data);//membaca data dan membaca variable K
       }
       tabel();//mengembalikan fungsi dari tabel sebelumnya
   }
·         Penjelasan Source Code

Gambar 2.14 memangil fungsi Ascending
            Pemanggilan data fungsi Ascending pada pada tombol ascending yang
terdapat pada desai.

Gambar 2.15 Source Code Descending
private void descending(){//Source code desceding
       for(int a=0; a<dataMahasiswa.size()-1;a++){//perulangan data yang telah diinputkan
       ArrayList<String>data1=new ArrayList<String>();//Membuat penamaan data1
       ArrayList<String>data2=new ArrayList<String>();//Membuat penamaan data2
       ArrayList<String>data3=new ArrayList<String>();//Membuat penamaan data3
       data1=dataMahasiswa.get(a);//data1 mengambil data variable a
       int K = a;//variable data K
       for(int b=a+1; b<dataMahasiswa.size();b++){//perulangan data menambah nilai variable mulai dari 1
           data2=dataMahasiswa.get(b);//mengembil data2 variabel b
           int akhirNpm = Integer.parseInt(data1.get(0).substring(6));//mengambil data Npm pada data tabel Npm 1
           int akhirNpm2 = Integer.parseInt(data2.get(0).substring(6));// mengambil data Npm pada data tabel Npm 2
           if(akhirNpm2>akhirNpm){//jika npm2 lebih besar maka npm yang nilai kecil akan di urutkan
               K = b;//memangil variable K
           }
       }
       data3=dataMahasiswa.get(K);//memangil variable K
       dataMahasiswa.set(a, data3);//menyimpan variable a dan data 3
       dataMahasiswa.set(K,data1);//menyimpan variable K dan data 1
      
    }
   }
·         Penjelasan source code

Gambar 2.16 Fungsi pemanggilan descending
         Pemanggilan fungsi tombol dari descending ke source code yang telah
dibuat pada coddingan diatas.


Gambar 2.15 Source code Mengubah data
private void ubah(){//Source code Ubah data
           String ganti = JOptionPane.showInputDialog(null,"Data Nomor Berapa Yang Ingin Andah Ubah");//memasukan data dengan data nomor yangdiinginkan
           int nomor = Integer.parseInt(ganti);//memasukan data nomor dengan memasukan integer nomor
           String NPMbaru = JOptionPane.showInputDialog(null,"Silahkan Masukan Data NPM Baru");//menampilkan JOption memasukan NPM Mahasiswa
           String Namabaru = JOptionPane.showInputDialog(null,"Silahkan Masukan Data Nama Baru");//Menampilkan JOption memasukan Nama Mahasiswa
           ArrayList<String>data_ubah= new ArrayList<>();//Nama Array List dengan data_ubah
           data_ubah.add(NPMbaru);//Menambah data ubah dengan NPM baru
           data_ubah.add(Namabaru);//Menambah data ubah dengan Nama baru
           dataMahasiswa.set(nomor-1,data_ubah);//mengurang tabel nomor -1 dengan data_ubah yang masuk
           tabel();//mengembalikan fungsi tabel
          
       }
·         Penjelasan source code


Gambar 2.16 memasukan fungsi tombol ubah
Memasukan fungsi ubah dengan ubah(); dan tabel(); untuk mengaktifkan fungsi dari source code yang telah di buat sebelumnya.



BAB III
PENUTUP
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Kita ambil contoh pada aplikasi perbankan. Aplikasi tersebut mampu menampilkan daftar account yang aktif. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam penelusuran data. Dalam artian sorting digunakan untuk mengurutkan sesuatu ( misalnya : kata, buku telepon , dll ). Sorting yang kita terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya lebih mudah. Pada umumnya terdapat dua jenis pengurutan :
– Ascending (Naik).
– Descending (Turun).

Pada program yang kami buat, kami menginputkan data mahasiswa beserta npm lalu nantinya data yang ada dapat  di urutkan dengan cara ascending dan descending. Demikianlah program yang kami buat. Apabila ada salah kata penulis mohon maaf. Diharapkan pembaca dapat mengerti program yang kami buat. Semoga bisa bermanfaat bagi siapa saja yang membacanya.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

Translate

Total Pageviews

About Me

Followers


website counter

sedang online

muhamad oktariandi. Powered by Blogger.

- Copyright © 18riandiweb -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -