Showing posts with label Algoritma Sorting. Show all posts
Showing posts with label Algoritma Sorting. Show all posts

Saturday, 29 September 2012

Algoritma Sorting Nama Absen

Berikut program implementasi Algoritma Sotring nama, yang akan bekerja dengan algoritma sebagai berikut :

  • Membaca input dari keyboard untuk index;
  • Program akan meminta inputan nama sesuai dengan index yang kita masukkan sebelumnya;
  • Semua data yang telah diinput akan disorting;
  • Program akan menampilkan hasil sortingnya;
  • Program akan menampilkan jumlah siswa yang kita input;
  • Program akan menampilkan Nama absen siswa teratas;
  • Program akan menampilkan Nama absen siswa terbawah.

Berikut kode program yang harus ditulis


Sort_Nama.java

package sort_nama;

//import package Bufferreader dan InputStreamReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

/**
 *
 * @author nadin
 */
public class Sort_Nama {
public static void main(String[] args) throws Exception
            
    {
        BufferedReader inp = new BufferedReader(new InputStreamReader(System.in));
        //berfungsi untuk menginstansiasi class BufferedReader menjadi objek kata
        System.out.print("Jumlah nama yang akan diinput : ");
        int idx = Integer.parseInt(inp.readLine());
        //membaca input dari keyboard

        String [] data = new String[idx]; //instansiasi, mendeklarasikan data bertype String, dan itu merupakan array.
        //panjang arraynya yaitu adalah idx, dimana idx merupakan nilai yang telah kita input sebelumnya
        String temp; //mendeklarasikan variabel temp bertype String
        Scanner input = new Scanner(System.in);

        for(int i=0;i<idx;i++) //pengulangan untuk memasukkan nama sebanyak idx
        {
            System.out.print("Nama " +(i+1)+" adalah: ");
            data[i]=input.next(); //membaca input dari keyboard
        }

        for(int x=1;x<idx;x++) //mengulang selama nilai i lebih kecil dari idx
        { 
            for(int y=0;y<x;y++)
            { 
                if(data[y].compareTo(data[y+1])>0) 
                { 
                    temp=data[y]; //menginisialisasi temp (temporary data), nilainya yaitu sama dengan data[y]
                    data[y]=data[y+1]; //insisialisasi bahwa data pada index y nilainya akan menjadi data pada index y+1
                    data[y+1]=temp; //inisilasiasi bahwa data berindex y+1 nilainya akan menjadi nilai variabel temp
                } 
            } 
        }
            System.out.println("");
            System.out.println("Urutan Absen :");

        for(int i=0;i<idx;i++) //diulang selama i lebih kecil dari nilai idx
        {
            System.out.println((i+1)+". "+ data[i]); //menampilkan nomor urut dan urutan input yang telah disorting
        }
        
        System.out.println("\nJumlah Siswa : " + idx);
        System.out.println("Absen teratas : " + data[0]); //menampilkan absen teratas
        System.out.println("Absen terbawah : " + data[idx-1]); //menampilkan absen terbawah
    }
}

  
Output dari program :


Download source code disini.

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.