Saturday, 29 September 2012

Program Implementasi Algoritma Sorting (Insertion Sort)

Berikut merupakan program implementasi dari ALGORITMA SORTING - Insertion Sort yang akan bekerja dengan algoritma :

  • Membaca input dari keyboard;
  • Memberikan pilihan Y atau T, jika user menginputkan Y, maka akan kembali membaca input, jika yang diinputkan adalah T, maka membaca input dari keyboard akan berhenti;
  • Semua bilangan yang diinput akan disorting;
  • Bilangan yang dimasukkan akan diseleksi bilangan terkecilnya, dan ditampilkan;
  • Bilangan yang dimasukkan akan diseleksi bilangan terbesarnya, dan ditampilkan;
  • Dari semua bilangan yang telah diinputkan, dihitung rata-ratanya, dan ditampilkan

Program ini memanfaatkan satu package (dalam Project ini, package bernama studikasus_algo) dan dua buah class (dalam Project ini, class masing-masing bernama StudiKasus_Algo.java dan Select.java)

Berikut souce code yang harus ditulis dari program tersebut;


StudiKasus_Algo.java

package studikasus_algo; //Studi kasus 22 September 2012 INSERTION SORT

import java.util.Scanner; //import untuk input dari keyboard

/**
 *
 * @author nadin
 */
public class StudiKasus_Algo {
    
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int input[] = new int[100], index = 0;
        //deklarasi 
        String ulang; //berfungsi untuk menanyakan pada user, 
        
        for (int i = 0; i < input.length; i++) {
            
            System.out.print("Masukkan angka ke "+(i+1)+" : ");
            input[i] = in.nextInt();
            //membaca input dari keyboard, dan dimasukkan dalam array input
            
            System.out.print("     (?) Masukkan lagi?(Y/T)");
            ulang = in.next();
            if (ulang.equals("Y")) {
                //for akan diteruskan jika yang diinput adalah Y
                continue;}
              if (ulang.equals("T")){
                  //jika yang diinput adalah T, maka akan keluar dari looping
                  break;
            }}
        
        input = Select.insertionsort(input); //memanggil method untuk insertion sorting
        
        System.out.println("\nBILANGAN TERKECIL\t: " + input[index]);
        int u = 99;
        for(u=99; input[u]==0; u--)
        //pengulan ini berfungsi untuk menjumlahkan seluruh nilai yang ada pada array input[]
        {
            continue; //meneruskan pada seleksi for berikutnya
        }
        System.out.println("BILANGAN TERBESAR\t: "+input[u]);
        
        double ave = 0; //menginisialisasi ave (rata-rata) dengan nilai 0, type double
        
        for (int i=0; input[i]!=0; i++) 
        {
            if(input[i] != 0){
            ave = ave + input[i]; // 
            index++;}
        }
       ave = ave / index; //menghitung ave dengan cara membagi nilai pada variabel ave dengan 
       System.out.println("Rata-Rata\t\t: " + ave); //menampilkan nilai variabel ave 
    }
}



Select.java

package studikasus_algo;

/**
 *
 * @author nadin
 */
public class Select {

    public static int[] insertionsort(int[] data) {
        for (int i = 0; i < data.length && data[i] != 0; i++) {
            int j = i, tmp = data[i];
            while ((j > 0) && (data[j - 1] > tmp)) {
                data[j] = data[j - 1];
                j--;
            }
            data[j] = tmp;
        }
        return data;
    }
}


Output dari Program :

Download source code disini.

2 comments:

  1. akan lebih bagus kalo sebelum masukin baris kode nya teh, jelasin dulu apa itu sorting, terus sorting yang dipakai apa dan apa maksudnya.. :D

    ReplyDelete