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.
akan lebih bagus kalo sebelum masukin baris kode nya teh, jelasin dulu apa itu sorting, terus sorting yang dipakai apa dan apa maksudnya.. :D
ReplyDeleteBaik Pa Guru, terima kasih :)
Delete