Showing posts with label Insertion Sort. Show all posts
Showing posts with label Insertion Sort. Show all posts

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.