Senin, 28 September 2009

mengubah program

Kita mulai dengan program RataRata yang kita bahasa pada bagian tentang while dan do ... while.
Perhatikan bahwa di dalam program tersebut kita harus menulis berulang-ulang untuk mendapatkan input data dari user. Sekarang kita akan pisahkan kode untuk mengambil input dari user dalam kelas yang dinamakan KonsolInput.
Pertama-tama buat project baru di Eclipse yang dinamakan RataRata2. Caranya "File -> New -> Java Project" kemudian masukkan RataRata2.
Kemudian buat kelas baru yang dinamakan KonsolInput. "File -> New -> Class", masukkan package ratarata2 dan Name.
Kita akan membuat subrutin statik yang dinamakan ambilDouble() yang tugasnya memberi pertanyaan kepada user, mengambil input dari user dan mengubah input dari user menjadi bilangan real (tipe data double).
Kita bisa definisikan subrutin ini dengan "public" dan "static" adalah sifat subrutin ini, "double" merupakan tipe data keluarannya karena kita ingin subrutin ini mengembalikan input bertipe double sehingga siap untuk digunakan. "ambilDouble" adalah nama subrutin ini, dan "String pertanyaan" adalah parameternya yaitu berupa pertanyaan yang diberikan kepada user pada saat data akan diambil.
Apa yang harus dilakukan sekarang? Kita ambil perintah untuk mengambil data dari RataRata yaitu :
Ingat bahwa parameter "String pertanyaan" adalah pertanyaan yang akan kita ajukan kepada user, sehingga baris Kita akan kembalikan "bilangan" kepada si pemanggil, sehingga di akhir subrutin kita beri perintah yang berarti kembalikan bilangan kepada si pemanggil fungsi ini.
Jangan lupa juga untuk menambahkan import java.io.*; di awal kelas karena BufferedReader adalah anggota dari paket ini. Sekarang subrutin ambilDouble() menjadi seperti ini package ratarata2;

import java.io.*;

public class KonsolInput {

public static double ambilDouble(String pertanyaan) {
String strbilangan = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double bilangan;

System.out.print(pertanyaan);
try {
strbilangan = br.readLine();
} catch (IOException ioe) {
System.out.println("Kesalahan IO, program berhenti");
System.exit(1);
}

bilangan = Double.parseDouble(strbilangan);
return bilangan;
}

Dengan menggunakan subrutin yang baru kita buat, kita modifikasi program RataRata menjadi RataRata2 sebagai berikut :

package ratarata2;

public class RataRata2 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double jumlah = 0;
double bilangan = 0;
int n = 0;

bilangan = KonsolInput.ambilDouble("Masukkan bilangan pertama : ");

while (bilangan != 0) {
jumlah += bilangan; // sama dengan : jumlah = jumlah + bilangan
n++; // sama dengan : n = n+1

bilangan = KonsolInput.ambilDouble("Masukkan bilangan berikutnya (atau 0 untuk mengakhiri) : ");
}

// hitung rata-rata
double ratarata = jumlah/n;

// cetak hasilnya ke layar
if (n == 0) {
System.out.println("Data kosong, rata-rata tidak bisa dihitung");
} else {
System.out.println("Anda memasukkan " + n + " data");
System.out.println("Rata-rata bilangan yang dimasukkan adalah " + ratarata);
}
}
}

Perhatikan beberapa perubahan di dalam program ini. Pertama, kita hapus perintah-perintah untuk mengambil input dari user karena sudah kita implementasikan pada subrutin ambilDouble() di kelas KonsolInput.

Di kelas RataRata2, kita panggil subrutin ambilDouble() dengan perintah

bilangan = KonsolInput.ambilDouble("Masukkan bilangan pertama : ");

dan

bilangan = KonsolInput.ambilDouble("Masukkan bilangan berikutnya (atau 0 untuk mengakhiri) : ");

di mana parameternya adalah pertanyaan yang diberikan kepada user sebelum memasukkan data.

Hasil keluarannya sama dengan pada kelas RataRata

Program di atas dapat diunduh dalam bentuk zip file atau melalui gudang SVN di alamat : http://belajarjava.googlecode.com/svn/trunk/RataRata2
Sisipan Ukuran
Sisipan Ukuran
RataRata2-src.zip 1.64 KB
‹Subrutin Statik dan Variabel Statik ke atas Contoh Program Subrutin dan Variabel Statik›

* Kirim komentar
* Share/Save

Tidak ada komentar:

Posting Komentar