This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Judul

keterangan

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

blogger upn

Kamis, 17 Mei 2012

SORTING pada Java

Apa sih sorting itu? Awalnya saya juga binggung maksud dari sorting atau pengurutan. Setelah browsing-browsing dan dapat materi diperkuliahan akhirnya saya tau apa yang dimaksud dengan sorting itu....
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 :
  1. Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
  2. Jika pada posisi pos ditemukan data yang terkecil, maka tukarkan data diposisi pos dengan data di posisi i jika k.
  3. 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.

Contoh program menu Sorting
public static void main (String []riris){
    int menu=0;
    do{
    try{
    menu=Integer.parseInt(JOptionPane.showInputDialog("Pilih Menu :"+ "\n1.Bubble Sort"+"\n2.Selection Sort"+"\n3.Insertion Sort"+"\n4.Exit"));
    switch(menu){
        case 1:
        int n= Integer.parseInt(JOptionPane.showInputDialog("Banyaknya data?"));
        int data []  = new int [n];
        System.out.println("Sorting menggunakan Bubble Sort");
        System.out.println("Data sebelum diurutkan :");
        for(int a=0; a<n; a++){
        data[a]=Integer.parseInt(JOptionPane.showInputDialog("Data ke-" + (a+1)));
        System.out.println("Data ke-" +a + "=" + data [a] );
        }

        int temp;

        for (int i=1;i<n;i++){
        for(int j=n-1; j>=i; j--){
        if (data[j]<data[j-1]){

        temp=data[j];

        data[j]=data[j-1];

        data[j-1]=temp;

        }

        }

        }


        System.out.println("Data yang sudah diurutkan: ");
        for (int i=0;i<data.length;i++)
        System.out.println("Data ke-"+i+ "=" +data [i]);
        System.out.println("------------------------------");break;

        case 2:
        int m= Integer.parseInt(JOptionPane.showInputDialog("Banyaknya data?"));
        int nilai []= new int [m];
        int index,large;
        System.out.println("Sorting menggunakan Selection Sort");
        System.out.println("Data Sebelum Diurutkan");
        for(int a=0; a<m; a++){
            nilai [a]=Integer.parseInt(JOptionPane.showInputDialog("Data ke-"+(a+1)));
            System.out.println("Data ke-"+a+"="+nilai[a]);
        }
        for (int i=m-1; i>0; i--){
        large=nilai[0];
        index=0;
         for (int j=1; j<=i; j++){
             if (nilai [j]>large){
                 large=nilai [j];
                 index=j;
             }
        }
        nilai[index]=nilai [i];
        nilai[i]=large;
        }
        System.out.println("Data yang sudah diurutkan : ");
        for (int i=0;i<m;i++)
        System.out.println(nilai[i]+ " ");
        System.out.println("------------------------------");break;

        case 3:
        int l= Integer.parseInt(JOptionPane.showInputDialog("Banyaknya data?"));
        int nilai2 []=new int [l];
        int y;
        System.out.println("Sorting menggunakan Insertion Sort");
        System.out.println("Data Sebelum Diurutkan");
        for(int a=0; a<l; a++){
        nilai2[a]=Integer.parseInt(JOptionPane.showInputDialog("Data ke-" + (a+1)));
        System.out.println("Data ke-" +a + "=" + nilai2 [a] );
        } System.out.println("Data Yang Sudah Diurutkan");
        for (int j=1; j<l; j++){
        y=nilai2[j];
        for (int i=j-1; i>=0 && y<nilai2[i]; i--){
           nilai2 [i+1]=nilai2 [i];
           nilai2 [i]=y;
            }
        for (int i=0; i<l; i++)

              System.out.print(nilai2[i]+ " ");
              System.out.println("");
          }
        System.out.println("Arigato Gozaimasu :)");break;

          case 4:
        System.exit(0); break ;

   default: JOptionPane.showMessageDialog(null, "pilihan antara 1-3"); break;
}
}catch(Exception e)
{
JOptionPane.showMessageDialog(null,"MASUKAN ANGKA", "anda salah", JOptionPane.ERROR_MESSAGE);
    }
}while (menu!=4);

}
}

Selamat Mencoba :)

Rabu, 25 April 2012

PERCABANGAN PADA JAVA

Apa sih yang dimaksud Pengkondisian atau Percabangan
·         Pengkontrol alur program yang berdasarkan kondisi boolean (true & False) yang dijadikan patokan.
·         Pengkontrol alur program dengan pengkondisian terdapat dua macam cara yaitu dengan menggunakan if – else atau dengan menggunakan switch – break.
Percabangan
·         Percabangan dengan If
merupakan perintah yang paling sederhana. If dipakai jika menginginkan suatu pernyataan itu, dilakukan dengan syarat tertentu yang bernilai benar. Sintax dari if adalah :
             If  (ekspresi_boolean)  {
             Pernyataan;
             }
             Pernyataan 1 akan dilakukan kalau ekspresi_boolean bernilai true.
·         Percabangan dengan if – else
Digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan lain yang dengan kondisi false. Dengan kata lain merupakan percabangan untuk memilih salah satu dari dua kemungkinan. Sintax dari if – else adalah :
If  (ekspresi_boolean) {
Pernyataan1;
} else {
Pernyataan2;
}
·         Percabangan else-if
 dipakai untuk memberikan kondisi tertentu pada bagian else. Sintaks dari
else-if adalah sebagai berikut:
if (ekspresi_boolean1) {
Pernyataan1;
} else if (ekspresi_boolean2) {
Pernyataan2;
}
Ketika ekspresi_boolean bernilai false, maka alur program akan menuju ke bagian else.
Selanjutnya Pernyataan2 diatas akan dikerjakan kalau ekspresi_boolean2 bernilai true.

·         Percabangan switch
dipakai pada saat kita ingin memberikan kondisi dengan beberapa syarat
yang identik yang masing-masing mempunyai pernyataan yang berbeda-beda. Pada Java, nilai yang dilewatkan pada switch harus bertipe int, short, byte atau char. Sintaks dari switch adalah sebagai berikut:

switch (ekspresi) {
case nilai1: Pernyataan1;
break;
case nilai2: Pernyataan2;
break;
default: Pernyataan3;
}
Ketika ekspresi bernilai nilai1, maka alur program akan mengeksekusi Pernyataan1. Selanjutnya
break menyebabkan alur program keluar dari daerah switch. Kalau ekspresi bernilai nilai2, maka
alur program akan mengeksekusi Pernyataan2. Apabila ekspresi mempunya nilai yang tidak sama
dengan nilai1 dan nilai2, maka alur program akan menuju ke bagian default dan kemudian mengeksekusi Pernyataan3.

Contoh soal
1. Buatlah program dengan menggunakan branching dengan inputan umur anda dan outputnya anda.
     1 – 16         Tampilkan “anak-anak”
     17 -25         Tampilkan “Remaja”
     26 – 45       Tampilkan “Dewasa”
     >=45           Tampilkan “Tua”
 2. membuat sebuah program untuk menyeleksi kode bulan. Bila user menginputkan angka yang merepresentasikan bullan yang dimaksud (yakni 1s/d 12), maka output akan menampilakn tulisan huruf dari bulan tersebut (januari s/d desember). Dan bila user menginputkan angka selain yang dimaksud, maka output akan menampilakan pernyataan bahwa user telah salah menginputkan data.

Pembahasan:
 Source Code 1.

 public static void main (String[] args) {

    int umur = Integer.parseInt(JOptionPane.showInputDialog("MASUKAN UMUR?")) ;

    if (umur <=16){JOptionPane.showMessageDialog(null,"ANAK-ANAK");

    } else if  (umur <=25) {JOptionPane.showMessageDialog(null,"REMAJA");

    } else if (umur <=45) {JOptionPane.showMessageDialog(null,"DEWASA");

    } else {JOptionPane.showMessageDialog(null,"TUA");
   
                           }

}

}

 SourceCode 2.
public static void main (String[] args){
int bulan;
bulan = Integer.parseInt(JOptionPane.showInputDialog("MASUKKAN BULAN?"));
if (bulan == 1){JOptionPane.showMessageDialog(null,"JANUARI");
    } if (bulan == 2){JOptionPane.showMessageDialog(null,"FEBRUARI");
    } if (bulan == 3){JOptionPane.showMessageDialog(null,"MARET");
    } if (bulan == 4){JOptionPane.showMessageDialog(null,"APRIL");
    } if (bulan == 5){JOptionPane.showMessageDialog(null,"MEI");
    } if (bulan == 6){JOptionPane.showMessageDialog(null,"JUNI");
    } if (bulan == 7){JOptionPane.showMessageDialog(null,"JULI");
    } if (bulan == 8){JOptionPane.showMessageDialog(null,"AGUSTUS");
    } if (bulan == 9){JOptionPane.showMessageDialog(null,"SEPTEMBER");
    } if (bulan == 10){JOptionPane.showMessageDialog(null,"OKTOBER");
    } if (bulan == 11){JOptionPane.showMessageDialog(null,"NOVEMBER");
    } if (bulan == 12){JOptionPane.showMessageDialog(null,"DESEMBER");
    } if (bulan<1 |bulan>12)JOptionPane.showMessageDialog(null, "ANDA SALAH");
}
}







 Output
1.
misalnya masukkan umur 15
dan hasil akhirnya masuk kategori anak-anak

2.

masukkan bulan misalnya 6


misalnya memasukkan bulan 13  

ada salah karena memasukkan bulan lebih dari 12

selamat mencoba :)

Contoh program java sederhana "MENAMPILKAN NAMA DENGAN IMPUTAN USER"

 "MENAMPILKAN NAMA DENGAN IMPUTAN USER"


public class nama {

    public static void main (String[] args) {
    String nama;
    nama = (JOptionPane.showInputDialog(null,"nama"));

    JOptionPane.showMessageDialog(null," hello "+nama);


Output

selamat mencoba :)