You are on page 1of 14

Pembuatan Program Statistika Sederhana

 Sebelum Kita membuat program Statistika , ada hal-hal yang perlu Anda ketahui yaitu sebagai berikut: Populasi Populasi adalah Totalitas semua nilai yang mungkin, hasil menghitung atau pengukuran, kuantitatif maupun kualitatif mengenai karakteristik tertentu dari semua anggota kumpulan yang lengkap dan jelas ingin dipelajari sifat-sifatnya Sampel Sampel adalah sebagaian yang diambil dari suatu populasi Statistik Statistik adalah kumpulan data bilangan maupun non bilangan yang disusun dalam table atau diagram yang menggambarkan suatu persoalan Statistika Statistika adalah ilmu yang mempelajari bagaimana merencanakan, mengumpulkan,menganalisis,menginterpretasi,dan mempresentasikan data Data diskrit Data diskrit adalah data yang hanya mempunyai sejumlah terbatas nilai-nilai. Data kontinyu Data kontinyu adalah data yang sifatnya sinambung atau kontinyu, nilainya bisa berupa pecahan. Data kuantitatif Data kuantitatif adalah serangkaian observasi atau pengajaran yang dapat dinyatakan dengan angka – angka Statistik deskriptif Statistik deskriptif adalah metoda yang berhubungan dengan pengumpulan dan pengolahan data sehingga dapat memberikan informasi yang berguna berdasarkan keadaan yang umum. Statistik induktif Statistik induktif adalah metoda yang berhubungan dengan analisa sub set (bagian) dari data yang dipergunakan untuk meramalkan atau mengambil kesimpulan tentang set atau pengambilan kesimpulan umum berdasarkan keadaan yang khusus.

 

     

Dan kegunaan ukuran-ukuran dalam Statistika:  Modus Modus untuk menyatakan fenomena yang paling banyak terjadi atau paling banyak terdapat.  Rata-rata(mean) Rata-rata(mean)untuk mencari hasil penjumlahan nilai-nilai anggota sebuah kelompok (∑Xn) dibagi jumlah anggota kelompok tersebut  Median Nilai tengah data setelah disusun menurut urutan nilainya. Jika n ganjil, maka nilai median Me merupakan data paling tengah setelah data disusun menurut urutan nilainya. Sedangkan untuk n genap, nilai median sama dengan rata-rata hitung dua data tengah.  Kuartil Jika sekumpulan data dibagi menjadi empat bagian yang sama banyak, sesudah disusun menurut urutan nilainya, maka bilangan pembaginya  Desil Desil untuk mencari nilai-nilai pengamatan yang membagi data menjadi 8 bagian yang sama.  Persentil

JMenuItem(). import javax.io. jMenuBar2 = new javax.JMenu(). jLabel1 = new javax.swing. import java. initComponents().swing.JMenuItem().io. jMenuItem3 = new javax.n=0.swing. private float sum=0. import java. private int[] frekwensi= new int[50].Persentil untuk nilai-nilai pengamatan yang membagi data menjadi 100 bagian yang sama. jCheckBoxMenuItem1=new javax.swing.FileInputStream. import java. import java. nKelas. private float dataMin. jMenu3 = new javax. Setelah Anda mengetahui beberapa hal yang telah disebutkan di atas maka berikut listing program Java Statistika : package tugas.JTextArea().swing. private float[][] kelasInterval= new float[50][50].io.IOException.JMenuBar().io. jTextArea1 = new javax.JMenu(). jButton1 = new javax.swing.JMenuItem().JLabel(). jSeparator1 = new javax.JScrollPane().JCheckBoxMenuItem().ComponentOrientation.JMenuItem().swing. jMenu1 = new javax.BufferedReader.swing. jPopupMenu1 = new javax.File.  Rentang Rentang untuk mencari nilai maksimum dan minimum pada data tidak berkelompok.JMenu().swing. jMenuItem4 = new javax.swing.swing.JFrame { private float[] listData= new float[100]. jScrollPane1 = new javax.FileReader.JPopupMenu().swing.*.*.awt. jMenuItem7 = new javax.JPopupMenu. jMenu2 = new javax. jMenuItem5 = new javax.swing.JButton(). dan mencari nilai batas atas kelas terakhir dan batas bawah kelas pertama.Separator().JMenuItem().awt. jMenuItem6 = new javax. pKelas.io. jMenu5 = new javax. private float[] dataSorted= new float[100]. import java.swing. .swing.JMenuBar(). int kMedian=0.swing. } @SuppressWarnings("unchecked") private void initComponents() { jMenuBar1 = new javax.swing.swing. import java.swing. private int[] frekKumulatif= new int[50].JMenu(). dataMax. import java. public Statistika() { super("Statistika & Probabilitas").swing. public class Statistika extends javax.

jMenu5.setText("Edit").awt. jMenuItem3. jMenuItem4.swing.jMenuItem1 = new javax.setText("Mean").event.awt. } }).ActionListener() { public void actionPerformed(java. jMenu4 = new javax.awt. jTextArea1.setText("Modus"). jMenuItem5.ActionEvent evt) { jMenuItem3ActionPerformed(evt).event.EXIT_ON_CLOSE).JMenu().awt. jMenuItem3.setText("Median").event. jMenu1. jMenuItem4.setViewportView(jTextArea1). jMenu5.setText("Distribusi").swing.addActionListener(new java.addActionListener(new java. jMenuItem2 = new javax. jButton1.ActionListener() { public void actionPerformed(java. jMenuItem7.setText("Tampilan Hasil Perhitungan"). jMenuItem8 = new javax.ActionListener() { public void actionPerformed(java. jMenu5. jLabel1.add(jMenu2).event.JMenuItem().addActionListener(new java.ActionEvent evt) { jMenuItem7ActionPerformed(evt).awt.ActionEvent evt) { jButton1ActionPerformed(evt).swing.awt.setColumns(20). jMenu3.addActionListener(new java. jMenu5. jButton1. } }).ActionEvent evt) { jMenuItem4ActionPerformed(evt).setText("Simpangan Baku").add(jMenu1).swing.swing.awt.awt. jTextArea1.event.awt.add(jMenuItem5).event. jMenu5.event. jMenuItem6. } }). jScrollPane1.addActionListener(new java.event. jMenuBar1.setText("Statistika").event.JMenuItem().event.WindowConstants.ActionListener() { public void actionPerformed(java. jMenuItem9 = new javax. jMenu2.ActionListener() { public void actionPerformed(java.JMenuItem().setText("File").JMenuItem().swing.ActionEvent evt) { jMenuItem5ActionPerformed(evt). . setDefaultCloseOperation(javax. } }).add(jMenuItem6).setLabel("Clear Text Area"). jMenuItem5.setText("File").add(jMenuItem3).awt. jMenuItem7. jMenuBar1.setRows(5).add(jMenuItem7).

swing.GroupLayout.GroupLayout(getContentPane()). jMenu4.add(jMenu3).add(jSeparator1).createSequentialGroup() .Alignment.setLayout(layout). jMenuItem9.swing.LEADING) . jMenuItem8.Alignment.add(jMenu4).event.Short.createSequenti alGroup() . jMenuBar2. jMenu3.} }). jMenuItem2. } }).addGroup(layout.LEADING) .awt. jCheckBoxMenuItem1.134. jMenu4. 21.add(jMenuItem4).addPreferredGap(javax.setHorizontalGroup( layout.133.add(jMenuItem9).setText("Histogram"). layout.addContainerGap()) ).addActionListener(new java.setText("Read Numbers").addCo mponent(jLabel1.GroupLayout.swing.event. jMenu3.swing.LEADING). jMenu3.ActionEvent evt) { jMenuItem9ActionPerformed(evt).GroupLayout.PREFERRED_SIZE) .swing.133) . javax. jMenuItem1.GroupLayout.addGap(134. getContentPane(). jMenu5.setText("Exit").DEFAULT_SIZE.MAX_VALUE)) . 380.add(jCheckBoxMenuItem1).addComponent(jLabel1).setSelected(true). jMenu3.ActionEvent evt) { jMenuItem8ActionPerformed(evt). jMenu4.addGroup(l ayout.addContainerGap() .Alignment .createSequentialGroup() .swing.addGap(133.createParallelGroup(javax. javax.awt. layout.addGroup(layout.GroupLayout .createParallelGroup(javax.createParallelGroup(j avax. setJMenuBar(jMenuBar2). } }).swing.addComponent(jScrollPane1.addGroup(layout.ComponentPlacement .addGroup(layout.134) .event.createSequentialGroup() .ActionListener() { public void actionPerformed(java.addContainerGap(). jMenuBar2.javax. jMenuItem9.setText("Input Numbers").addComponent(jButton1))). javax.addActionListener(new java.event.addGroup(layout.add(jMenuItem8).GroupLayout layout=new javax.setText("Edit"). jMenuItem8.ActionListener() { public void actionPerformed(java.createSequentialGroup() .GroupLayout.add(jMenuItem1). jMenu4. jCheckBoxMenuItem1.awt.PREFERRED_SIZE.swing.setVerticalGroup( layout.awt.add(jMenuItem2).setText("Sorting").add(jMenu5).swing.Layo utStyle.

GroupLayout.PREFERRED_SIZE. while(true){ String line= fileReader.exit(-1).txt"). if(!file.ActionEvent { sortData().out.i). merge_sort(0.n-1).wing.193.. i++. if(line==null) break.toString(dataSorted[i])+".awt.isFile()){ System. "). } try{ BufferedReader fileReader= new BufferedReader(new FileReader(file)).append("\n"+Float.javax.addGap(9. } }catch(IOException io){ } } private void jMenuItem8ActionPerformed(java. }else{ jTextArea1.RELATED.addComponent(jScrollPane1. 9).Short.i++) { if(i%10==0){ jTextArea1.11. } private void jMenuItem9ActionPerformed(java.i<=n-1.ActionEvent evt) { jTextArea1.append("\n\nSort: ").readLine(). int i=0.append(Float.GroupLayout.awt. System. for(int i=0.ActionEvent evt) { jTextArea1.toString(dataSorted[i])+".event. File file= new File("D:\\Kuliah\\Ada.awt. }// </editor-fold> private void jButton1ActionPerformed(java.setText("Data :").exists() && !file.swing .addComponent(jButton1).append("\n").setText(null).javax. } evt) .println("File tidak ditemukan").event. 9. ").addContainerGap()) ).event. } } jTextArea1. saveData(line. pack().PREFERRED_SIZE) . jTextArea1.MAX_VALUE) .

jTextArea1.j++){ if(listData[j]<=(kelasAwal+pKelas)& listData[j]>=(kelasAwal)){ kelasInterval[i][j]= listData[j].length.append("\n"+"Mean\t= "+Float.append("\nBanyak Kelas\t= "+nKelas). index=0.i<frekwensi. float x= (float)(Math.event. }else{ sum+=listData[i]. for(int j=0.awt.ActionEvent { for(int i=0.append("\nPanjang Kelas\t= "+pKelas+"\n\n").awt.i<nKelas. log50= "+x).log((float)(n))). "). max= "+dataMax+"\n"). n++. } } private void jMenuItem7ActionPerformed(java.print("min= "+dataMin+".out. count++.out.event. jTextArea1. jTextArea1. } } frekwensi[i]=count.i++){ int count=0.event.length.println("n= "+n+". for(int i=0.i++){ if(listData[i]==0){ break.append("\t ("+frekwensi[i]+")\n").i++){ if(maxFrek<frekwensi[i]){ maxFrek=frekwensi[i]. System.awt.602).append(kelasInterval[i][j]+". jTextArea1.j<n. System. jTextArea1.private void jMenuItem5ActionPerformed(java. jTextArea1.ActionEvent { dataMax= dataSorted[((int)(n))-1].append("Kelas "+(i+1)+"\t= "+kelasAwal+" "+(kelasAwal+pKelas)+"\t: "). kelasAwal+=pKelas. nKelas=(float) (1+3. } } jTextArea1. i<listData.3*1. evt) evt) - evt) .append("\nRentang\t= "+(dataMax-dataMin)).ActionEvent { int maxFrek=frekwensi[0]. } private void jMenuItem4ActionPerformed(java.i.toString(sum/n)). dataMin= dataSorted[0]. pKelas= (dataMax-dataMin)/nKelas. float kelasAwal= listData[0]. index=i. for(i=1.

append("\nMedian\t= "+(batasBawah+p*(((n/2)-frekKumulatif[kMedian1])/frekwensi[kMedian]))). float p=(batasAtas-batasBawah)+1. float batasAtas= getBatasAtas(kMedian). } private void jMenuItem3ActionPerformed(java. i<listData. float batasAtas= getBatasAtas(index). //drung isok nggoleki jTextArea1. }else{ jTextArea1.append("\n"+line+" ").length. } } for(int j=0.parseFloat(line).} } float batasBawah= getBatasBAwah(index). if(i%10==0){ jTextArea1. }else{ sum+=listData[i]. } } private void sortData(){ for(int i=0. } } float batasBawah=getBatasBAwah(kMedian).ActionEvent evt) { int nModus= (int)(n/2).awt. n++.length.i++){ if(listData[i]==0){ break. int i){ float data= Float.event.length.append(line+" "). float b1= frekwensi[index]-frekwensi[index-1]. listData[i]= data.j<frekwensi. float p=(batasAtas-batasBawah)+1. for(int j=0. jTextArea1.j++){ if(j==0){ frekKumulatif[j]=frekwensi[0].j<frekwensi. }else{ frekKumulatif[j]= frekwensi[j]+frekKumulatif[j-1]. } } .j++){ if(nModus<=frekKumulatif[j]){ kMedian=j. break. float b2= frekwensi[index]-frekwensi[index+1]. } private void saveData(String line.append("\nModus\t= "+ (batasBawah+(p*(b1/(b1+b2))))).

} //merge_cetak(l. r). med).} private void merge_sort(float l. int kiri1=(int)(l).kanan1=(int)(med).r). merge_sort(l. } private void merge(float l. kiri2++. float r){ float med. if(l<r) { med=(l+r)/2.kanan2=(int)(r). } while(kiri1<=kanan1) { dataSorted[i]=listData[kiri1]. while(j<=r) { . kiri1++. while(kiri1<=kanan1 && kiri2<=kanan2) { if(listData[kiri1]<=listData[kiri2]) { dataSorted[i]=listData[kiri1].med. i++. i++.kiri2=(int)(med+1). merge_sort(med+1. } j=(int)l. float r) { int i=(int)(l). } else { dataSorted[i]=listData[kiri2]. kiri1++. merge(l. } while(kiri2<=kanan2) { dataSorted[i]=listData[kiri2]. kiri2++. } i++. float med.j.r).

j++){ if(kelasInterval[index][j]!=0){ if(batasBawah>kelasInterval[index][j]){ batasBawah=kelasInterval[index][j]. private javax. } private float getBatasAtas(int index){ float batasAtas=0. .j<kelasInterval[index].j<kelasInterval[index].length.swing. } } for(int j=0.j++){ if(kelasInterval[index][j]!=0){ batasAtas=kelasInterval[index][j].swing. } // Variables declaration . } }).invokeLater(new Runnable() { public void run() { new Statistika(). } } } return batasAtas. } } for(int j=0.length.EventQueue. j++.j++){ if(kelasInterval[index][j]!=0){ batasBawah=kelasInterval[index][j].JMenu jMenu1.JLabel jLabel1. } } } return batasBawah.do not modify private javax.length.JButton jButton1.awt. for(int j=0.j++){ if(kelasInterval[index][j]!=0){ if(batasAtas<kelasInterval[index][j]){ batasAtas=kelasInterval[index][j].swing.length. private javax.setVisible(true).listData[j]=dataSorted[j]. } } private float getBatasBAwah(int index){ float batasBawah=0. } public static void main(String args[]) { java.swing.JCheckBoxMenuItem jCheckBoxMenuItem1.j<kelasInterval[index]. private javax.j<kelasInterval[index]. for(int j=0.

private javax.swing.JMenuItem jMenuItem7.JMenuBar jMenuBar1.swing. private javax. private javax.JMenu jMenu4.JMenuItem jMenuItem2. private javax.swing.swing.swing. private javax.JMenuItem jMenuItem3.JPopupMenu jPopupMenu1.JMenu jMenu3.JMenuItem jMenuItem1. private javax. private javax.JScrollPane jScrollPane1.JTextArea jTextArea1. private javax.JMenu jMenu5.swing.Separator jSeparator1.swing. private javax.private javax.JPopupMenu. private javax.JMenuItem jMenuItem4. private javax.swing.swing. private javax. private javax.swing.swing.swing.swing. private javax.JMenuItem jMenuItem5. // End of variables declaration } Hasil Tampilan Program Hasil Perhitungan Program . private javax.JMenuItem jMenuItem9.JMenuItem jMenuItem8.swing.swing.swing.swing.swing.JMenuBar jMenuBar2.swing.JMenuItem jMenuItem6.JMenu jMenu2. private javax. private javax. private javax.

Contoh : Data : Array [1. Sorting yang kita terapkan menggunakan tipe data array agar pemahaman serta pengimplementasiannya lebih mudah. 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. Setelah browsing-browsing dan dapat materi diperkuliahan akhirnya saya tau apa yang dimaksud dengan sorting itu…. Aplikasi tersebut mampu menampilkan daftar account yang aktif.Descending (Turun). 2. . Dalam artian sorting digunakan untuk mengurutkan sesuatu ( misalnya : kata. Insertion Sort Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian. 15.6] of Byte = (22. Bubble Sorting merupakan salah satu jenis sorting. 8. dll ). Kita ambil contoh pada aplikasi perbankan. yang belum diurutkan (meja pertama). Pola Bubble sort yaitu bertukar dengan data sebelahnya. 10. Nilai dari masing-masing elemen akan dibandingkan selama proses looping tersebut . Bubble sort ada metode sorting termudah. Jenis pengurutan sorting ada 2 yaitu asscending dan descending. Elemen pertama yang diambil dari bagian array yang belum diurutkan dan kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang telah diurutkan. dan tidak ada pertukaran lagi atau semua nilai sudah sesuai.Ascending (Naik). 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. Bubble sort mengurut data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. 3. dan yang telah diurutkan (meja kedua).jika selama proses looping tersebut ditemukan ada urutannya tidak sesuai dengan permintaan. 2). Secara tidak langsung. maka akan dilakukan proses penukaran (swap). Pola dari Insertion Sort menggurutkan n atau 2 elemen dari terdepan dst.. Hampir seluruh pengguna pada sistem akan memilih tampilan daftar berurutan secara ascending demi kenyamanan dalam penelusuran data. algoritma dari program ini seolah-olah menggeser satu demi satu elemen dari kanan ke kiri atau dari kiri ke kanan tergantung pada jenis pengurutannya. . Pada umumnya terdapat dua jenis pengurutan : . buku telepon . maka saat itu program bubble sort akan berhenti bekerja. Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Macam-macam sorting yaitu : 1. Diberikan nama ―bubble‖ karena konsep dari algoritmanya diibaratkan seperti gelembung air untuk elemen struktur data yang seharusnya pada posisi awal. langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.SORTING PADA JAVA Apa sih sorting itu? Awalnya saya juga binggung maksud dari sorting atau pengurutan. Dimana cara kerjanya adalah dengan berulang-ulang melakukan proses looping ( perulangan) terhadap elemen-elemen struktur data yang belum diurutkan.

switch(menu){ case 1: int n= Integer. Sama dengan Quick Sort. int data [] = new int [n].println(―Sorting menggunakan Bubble Sort‖).Insertion Sort‖+‖\n4. Quick Sort Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat dari terlalu banyaknyadaftar yang diurutkan. Penggunaannya dalam akses memori acak besar yang terkait telah menurun. System.println("Data ke-" +a + "=" + data [a] ). hanya dilakukan pada indeks permbandingnya saja. Metoda ini cukup efisien untuk diterapkan. maka tukarkan data diposisi pos dengan data di posisi i jika k.Bubble Sort‖+‖\n2. Conquer.out. Devide. yakni menyelesaikan sub-masalah tersebut secara rekursi.parseInt(JOptionPane. Setengahnya diurutkan dengan bebas (Conquer). karena banyak aplikasi algoritma merge yang mempunyai alternatif lebih cepat ketika kamu memiliki akses memori acak yang menjaga semua data. System.parseInt(JOptionPane.out. Ulangi langkah 1 4. Hal ini disebabkan algoritma ini membutuhkan setidaknya ruang atau memori dua kali lebih besar karena dilakukan secara rekursif dan memakai dua tabel.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. a<n.out.showInputDialog("Data ke-" + (a+1))). perbandingan dan pengubahan.Selection Sort‖+‖\n3. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1. Selection sort Merupakan Kombinasi antara sorting dan searching. Selama proses. a++){ data[a]=Integer. Kombinasi/Penggabungan. Pertama urutan atau elemen data awal diurutkan dengan membaginya menjadi 2 bagian (Devide). menggabungkan solusi dari sub-masalah 5. 2.println(―Data sebelum diurutkan :‖). pertukaran data secara fisik terjadi pada akhir proses. for(int a=0. System. yakni memilih masalah menjadi sub-masalah. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. algoritma Merge Sort adalah dasar pembagian dan penyelesaiannya.Exit‖)). Kemudian 2 bagian itu digabungkan dengan cara diurut sesuai dengan urutan (Combine). dengan menghasilkan lebih banyak daftar yang diurutkan sebagai output. Contoh program menu Sorting public static void main (String []riris){ int menu=0. 3.showInputDialog(―Pilih Menu :‖+ ―\n1. Metode selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. } . Algoritma merge ini disesuaikan untuk mesin drive tape. Marge Sort Pengurutan algoritma Merge Sort membuat pengurutan dengan membagi 2 dan menggabungkannya. 1.parseInt(JOptionPane.3.showInputDialog(―Banyaknya data?‖)). do{ try{ menu=Integer.

out.parseInt(JOptionPane.showInputDialog("Banyaknya data?")).println("Sorting menggunakan Insertion Sort"). System.println("——————————").println("Data yang sudah diurutkan: "). data[j]=data[j-1].out.println("——————————").i=i. } } nilai[index]=nilai [i].i++) System.out. data[j-1]=temp.i<data. System. for (int i=0. } System.parseInt(JOptionPane.i<m. for (int j=1. for (int i=1.out.println("Data ke-"+i+ "=" +data [i]). jlarge){ large=nilai [j]. case 2: int m= Integer. index=0.out. System.println("Data Sebelum Diurutkan").break. System. j–){ if (data[j]<data[j-1]){ temp=data[j]. . int index. case 3: int l= Integer.break.i++) System. i–){ large=nilai[0]. } } } System. nilai[i]=large.println("Sorting menggunakan Selection Sort"). System. int nilai2 []=new int [l].println(nilai[i]+ " "). for (int i=0. index=j.out.println(―Data yang sudah diurutkan : ―).out. int y.large.int temp. for(int a=0.length.showInputDialog("Banyaknya data?")).out. System.println("Data Sebelum Diurutkan"). a0.out.out. int nilai []= new int [m].

j=0 && y<nilai2[i]. . } } Selamat Mencoba ").out.println(""). System. a++){ nilai2[a]=Integer. default: JOptionPane. for (int j=1.out.println("Data ke-" +a + "=" + nilai2 [a] ). "anda salah".break. break .showInputDialog("Data ke-" + (a+1))).print(nilai2[i]+ " "). } System.out. i++) System. } System.showMessageDialog(null. } }while (menu!=4). "pilihan antara 1-3"). break. i<l.parseInt(JOptionPane.out.println("Data Yang Sudah Diurutkan").out. } for (int i=0.println("Arigato Gozaimasu case 4: System.showMessageDialog(null. i–){ nilai2 [i+1]=nilai2 [i].for(int a=0. JOptionPane.ERROR_MESSAGE). nilai2 [i]=y."MASUKAN ANGKA". System.exit(0). a<l. } }catch(Exception e) { JOptionPane.