[JAVA] Pengurut Nilai Secara Descending

Diposting oleh Taufik Suryaman Senin, 05 September 2011



Kali ini saya akan posting tentang Program Java yang berfungsi untuk mengurutkan nilai secara descending (dari nilai terbesar ke nilai terendah).
Saya menggunakan Arraylist untuk menyimpan nilai yang diinput oleh user dan mengurutkannya dengan prosedur yang ada di Comparator.








Saya membuat 2 versi program ini. Versi pertama menggunakan BufferedReader dan versi yang satunya lagi menggunakan JOptionPane.

Berikut ini merupakan script dari program tersebut.

Versi BufferedReader
/*
 * Program "Pengurut Nilai secara Descending"
 * Program ini akan mengurutkan nilai dari nilai yang diinputkan user secara descending (dari yang terbesar).
 *
 * Pertama user akan diminta untuk memasukan banyaknya bilangan yang akan diproses.
 * Setelah itu user akan memasukan nilai-nilai dari bilangan tersebut. 
 * lalu program akan menampilkan nilai yang telah diurutkan secara descending.
 *
 * File ini (sortDescBR) dibuat oleh:
 * Nama    : Taufik Suryaman
 * Kelas   : XII - L
 * Sekolah : SMKN 4 BANDUNG
 * REKAYASA PERANGKAT LUNAK
*/
import java.io.*;				// Mengimport semua method dari java.io
import java.util.*; 			// Mengimport semua method dari java.util

public class sortDescBR
{
	public static ArrayList nilai = new ArrayList(); // Membuat objek Arraylist dengan nama nilai.

	public static void main( String[] args ) throws IOException
	{
		
		InputStreamReader isr = new InputStreamReader(System.in); // Membuat objek InputStreamReader bernama isr.
		BufferedReader dataIn = new BufferedReader(isr); // Membuat objek BufferedReader dengan nama dataIn.
		sortDescBR Lib = new sortDescBR(); // Membuat objek sortDescJOP dengan nama Lib.
		int jumlah_input = 0; // Menginisialisasikan variabel jumlah_input dengan nilai 0
		// Variabel ini digunakan sebagai batasan dari array nilai
		System.out.print("Jumlah input : "); // Untuk menampilkan pesan di command line.
		String temp = dataIn.readLine(); /* Inisialisasi variabel temp untuk menyimpan hasil inputan user */
		try
		{
			jumlah_input = Integer.parseInt(temp); // Konversi temp ke integer disimpan dalam variabel jumlah_input
		}catch( NumberFormatException nfe ) //Ketika terjadi eksepsi
		{
			System.out.println("Error!"); // Untuk menampilkan pesan di command line.
		}
		String[] input_nilai = new String[jumlah_input]; // Variabel sementara untuk menampung inputan user

		for( int i=0; i<jumlah_input; i++ )
		{
			System.out.print("Bilangan ke-" + (i+1) + ": "); // Untuk menampilkan pesan di command line.
			input_nilai[i] = dataIn.readLine(); /* Mendapatkan hasil input dari user dan disimpan dalam array
												   input_nilai */
			try
			{
				nilai.add(Integer.parseInt(input_nilai[i])); /* menambah elemen nilai dengan hasil dari konversi 
																variabel input_nilai ke integer. */
			}catch( NumberFormatException nfe ) // Ketika terjadi eksepsi
			{
				System.out.println("Error!"); // Untuk menampilkan pesan di command line.
				nilai.add(0); // Menambah elemen nilai dengan nilai 0
			}
		}
		Lib.show(); // Memanggil method show
	}
	
	void show()
	{
		System.out.println("Outputnya : "); // Untuk menampilkan pesan di command line.
		Comparator comparator = Collections.reverseOrder(); /* untuk mendapatkan comparator yang mengurutkan 
		secara terbalik menggunakan method static Comparator reverseOrder() di kelas Collections */
		Collections.sort(nilai,comparator); // Mengurutkan arraylist secara descending menggunakan comparator.
		Object nilaiDesc[] = nilai.toArray();
		
		for( int i=0; i<nilaiDesc.length; i++ )
		{
			System.out.print(nilaiDesc[i] + " ");
		}
	}
	
}
Versi JOptionPane
/*
 * Program "Pengurut Nilai secara Descending"
 * Program ini akan mengurutkan nilai dari nilai yang diinputkan user secara descending (dari yang terbesar).
 *
 * Pertama user akan diminta untuk memasukan banyaknya bilangan yang akan diproses.
 * Setelah itu user akan memasukan nilai-nilai dari bilangan tersebut. 
 * lalu program akan menampilkan semua nilai yang diinputkan user.
 * Lalu program akan mengurutkan nilai yang diinputkan user tersebut.
 * lalu program akan menampilkan nilai yang telah diurutkan secara descending.
 *
 * File ini (sortDescJOP) dibuat oleh:
 * Nama    : Taufik Suryaman
 * Kelas   : XII - L
 * Sekolah : SMKN 4 BANDUNG
 * REKAYASA PERANGKAT LUNAK
*/
import java.io.*;				// Mengimport semua method dari java.io
import java.util.*; 			// Mengimport semua method dari java.util
import javax.swing.JOptionPane; // Untuk menggunakan JOptionPane harus mengimport ini terlebih dahulu

public class sortDescJOP
{
	public static ArrayList nilai = new ArrayList(); // Membuat objek Arraylist dengan nama nilai.

	public static void main( String[] args ) throws IOException
	{
		
		InputStreamReader isr = new InputStreamReader(System.in); // Membuat objek InputStreamReader bernama isr.
		sortDescJOP Lib = new sortDescJOP(); // Membuat objek sortDescJOP dengan nama Lib.
		int jumlah_input = 0; // Menginisialisasikan variabel jumlah_input dengan nilai 0
		// Variabel ini digunakan sebagai batasan dari array nilai
		String temp = JOptionPane.showInputDialog("Jumlah input : "); /* Inisialisasi variabel temp untuk menyimpan
																		 hasil inputan user */
		try
		{
			jumlah_input = Integer.parseInt(temp); // Konversi temp ke integer disimpan dalam variabel jumlah_input
		}catch( NumberFormatException nfe ) //Ketika terjadi eksepsi
		{
			JOptionPane.showMessageDialog(null, "Error!"); // Untuk menampilkan pesan dialog.
		}
		String[] input_nilai = new String[jumlah_input]; // Variabel sementara untuk menampung inputan user

		for( int i=0; i<jumlah_input; i++ )
		{
			input_nilai[i] = JOptionPane.showInputDialog("Bilangan ke-" + (i+1));
			// Menyimpan inputan user ke array input_nilai
			try
			{
				nilai.add(Integer.parseInt(input_nilai[i])); /* menambah elemen nilai dengan hasil dari konversi 
																variabel input_nilai ke integer. */
			}catch( NumberFormatException nfe ) // Ketika terjadi eksepsi
			{
				JOptionPane.showMessageDialog(null, "Error! Nilai dianggap 0"); // Untuk menampilkan pesan dialog.
				nilai.add(0); // Menambah elemen nilai dengan nilai 0
			}
		}
		Lib.show(); // Memanggil method show
	}
	
	void show()
	{
		String pesan; // Menginisialisasikan variabel pesan bertype string
		pesan = "Nilai sebelum disort secara descending: \n" + nilai; // Mengisi variabel pesan
		Comparator comparator = Collections.reverseOrder(); /* untuk mendapatkan comparator yang mengurutkan 
		secara terbalik menggunakan method static Comparator reverseOrder() di kelas Collections */
		Collections.sort(nilai,comparator); // Mengurutkan arraylist secara descending menggunakan comparator.
		
		pesan = pesan + "\nNilai setelah disort secara descending: \n" + nilai; //Mengisi variabel pesan

		JOptionPane.showMessageDialog(null, pesan); // untuk menampilkan pesan dialog
	}
	
}
Setelah anda men-copy dan menyimpan file tersebut, anda dapat langsung men-compile program tersebut dengan perintah javac sortDescBR (untuk lebih jelasnya klik link ini). Setelah anda men-compile program tersebut anda dapat langsung men-deploynya dengan perintah jar -cvfm sortDescBR.mf sortDescBR.jar sortDescBR.class Pastikan anda sudah membuat file manifest (untuk lebih jelasnya klik link ini).
Berikut ini screenshot dari program tersebut:
Versi BufferedReader
Versi JOptionPane
Anda dapat mendownload source-codenya dibawah ini:
Java Pengurut nilai secara descending.rar 11KB

Anda dapat menggunakan program tersebut dengan syarat:
1. Jangan menghapus credit yang telah dibuat.
2. Jangan mengganti nama (rename) credit yang telah dibuat.

Hargailah jerih payah saya dalam membuat program ini dengan mentaati peraturan diatas!

0 komentar

Posting Komentar

Sponsor Ads

Put your ads here

Site Map

Post by Taufik S.
taufik4.blogspot.com

ようこそ

Post by M. Ridwan T.
watashiwaridwandesu.blogspot.com

Pemrograman JAVA

Kurnia @ BLOG.com
kurniaeliazar.blog.com

Recent Comment