Minggu, 28 April 2013

Pengertian Method Non Void dan Contoh Programnya di Java

Assalamu'alaikum Warahmatullahi Wabarakaatuh...

Zazuli's Blog -  Hai sahabat pembaca, pada posting kali ini saya akan membahas salah satu materi dalam permograman java, yaitu method, atau didalam bahasa pemrograman terstruktur seperti di C/C++, Pascal dll, dikenal dengan fungsi atau prosedur.

Di dalam java ada dua tipe method yaitu:
  1. Method Void
  2. Methode Non Void
Method void adalah method yang tidak mengembalikan nilai, method void jika dalam bahasa pemrograman terstruktur sama halnya dengan Prosedur. dan Method Non Void adalah method yang mengembalikan nilai, atau cara kerjanya sama dengan Fungsi jika dalam bahasa pemrograman terstruktur.

Nah kali ini saya hanya akan membahas pengertian dari method Non Void saja beserta contohnya saja, untuk method void saya akan membahasnya pada postingan saya selanjutnya, itupun kalau sempat ^^.

Oke saya mulai dari pengertian method itu sendiri. Method adalah subprogram yang dihubungkan pada definisi class tertentu. Setiap subprogram memilki tugas sendiri.

Dan pengertian Method Non Void  adalah method yang mengembalikan nilai. Untuk mengembalikan suatu nilai tertentu maka di dalam method harus terdapat statemen "return" yang diikuti dengan nilai yang akan dikembalikan. Cara kerja method nonvoid sama seperti fungsi (function)
.

Pendeklarasian/pendefinisian method:

  1. Deklarasi method disebut “judul method” (header method)
  2. Badan method berada di dalam blok kurung kurawal.



Cara penulisan :

Headermethod {
       Badan method
}
Badan_Method terdiri dari :
  1. Deklarasi-deklarasi
  2. Kalimat-kalimat
Oke langsung saja lihat pada contoh programnya dibawah ini, untuk menyalin source code dibawah ini, silahkan sobat klik "View plains" pada teks area nya, nanti akan muncul layar pop up yang berisi codenya, nah sobat copy dari situ saja..

//Contoh Method Non Void atau Method yang mengembalikan nilai
//Simpan dengan Nama " ContohMethodeNonVoid.java "
import java.util.Scanner;

class ContohMethodeNonVoid {

public static void main(String [] Zazuli) {

double uts, uas, laporan;

//instansiasi objek scanner(objek untuk input nilai)
Scanner scan = new Scanner(System.in);

System.out.print("Masukkan Nilai UTS\t: ");
uts = scan.nextDouble(); //input nilai uts dengan tipe data double

System.out.print("Masukkan Nilai UAS\t: ");
uas = scan.nextDouble(); //input nilai uas dengan tipe data double

System.out.print("Masukkan Nilai Laporan\t: ");
laporan = scan.nextDouble(); //input nilai laporan dengan tipe data double

try {
System.out.printf("\nTotal Nilai Adalah\t: %.2f",hitungtotal(uts,uas,laporan));
} catch (Exception ex) {
System.out.print("\nTotal Nilai Adalah\t: " + hitungtotal(uts,uas,laporan));
}
}

static double hitungtotal(double uts, double uas, double laporan) {
return ((uts*0.2)+(uas*0.4)+(laporan*0.4));
}
}


Simpan dengan nama yg sama dengan nama kelasnya. dan lakukan kompilasi lalu jalankan programnya, maka outputnya akan seperti berikut ini :

Pada Program diatas, data Inputan akan disimpan pada masing2 variabel nilai dan akan di proses, ketika pemanggilan method berlangsung, nilai akan dilewatkan pada method hitungtotal() . Method hitungtotal() akan mengembalikan nilai bertipe double sehingga hasilnya langsung dapat ditampilkan menggunakan println() seperti pada baris 24 atau baris 26. Paham kan ? ^^.

Oke perlu sobat ingat saat sobat mendefinisikan method non void, seperti:

  • Tipe data yang dikembalikan oleh method harus kompatibel atau cocok dengan tipe kembalian yang didefinisikan pada saat pembuatan method. 
  • Bila sobat ingin menyimpan nilai kembalian dari method kedalam sebuah variabel, maka tipe data daru variabel terserbut harus kompatibel /cocok atau sama dengan tipe kembalian yang didefinisikan.
  • method yang bertipe statis hanya dapat memanggil method yang bersifat statis
  • method statis hanya dapat mengakses data-data yang bersifast statis
  • method statis tidak dapat diacu melalui referensi this maupun super.
Diatas tadi programnya masih sangat sederhana, jika sobat ingin program yang bisa menyimpan beberapa data sekaligus, tidak hanya satu data silahkan coba source code dibawah ini.

class program {

public static void main(String []Aziz) {

int jml, i;
int u = 1;

System.out.print("\nMasukkan Jumlah Mahasiswa : ");
jml = Integer.parseInt(System.console().readLine());

String [] mhs = new String [jml];
double [] uas = new double [jml];
double [] uts = new double [jml];
double [] lap = new double [jml];

System.out.println("\nProses Memasukkan Data");


for ( i = 0; i < jml; i++) {
System.out.print("\nMasukkan Nama Mahasiswa ke-"+(i+1) +"\t\t: ");
mhs [i] = System.console().readLine();



int t = 1;
while(t > 0) {
try {
System.out.print("Masukkan Nilai UTS "+mhs [i]+" \t\t: ");
uts [i] = Double.parseDouble(System.console().readLine());
t = 0;
} catch (Exception ex) {
System.out.print("Masukkan Nilai UTS Yang Benar! Mohon Diulangi\n");
t = 1;
}
}



int t1 = 1;
while(t1 > 0) {
try {
System.out.print("Masukkan Nilai UAS "+mhs [i]+" \t\t: ");
uas [i] = Double.parseDouble(System.console().readLine());
t1 = 0;
} catch (Exception ex) {
System.out.print("Masukkan Nilai UAS Yang Benar! Mohon Diulangi\n");
t1 = 1;
}
}



int t2 = 1;
while(t2 > 0) {
try {
System.out.print("Masukkan Nilai Laporan "+mhs [i]+" \t\t: ");
lap [i] = Double.parseDouble(System.console().readLine());
t2 = 0;
} catch (Exception ex) {
System.out.print("Masukkan Nilai laporan Yang Benar! Mohon Diulangi\n");
t2 = 1;
}
}

}

System.out.println("\nProses Menampilkan Data");

for ( i = 0; i < jml; i++) {
System.out.println("\n\nNama Mahasiswa\t\t: " + mhs[i]);
System.out.println("Nilai UTS nya\t\t: "+ uts[i]);
System.out.println("Nilai UAS nya\t\t: "+ uas[i]);
System.out.println("Nilai Laporan nya\t: "+ lap[i]);
try {
//menampilkan hasil hanya 2 angka dibelakang koma
System.out.printf("Total Nilai nya\t\t: %.2f",hitungtotal( uts[i], uas[i], lap[i]));
} catch (Exception ex) {
//jika menampilkan 2 angka terjadi error, maka akan ditampilkan semuanya
System.out.println("Total Nilai nya\t\t: "+ hitungtotal( uts[i], uas[i], lap[i]));
}

}
System.out.println(); //membuat baris baru

}
//deklarasi method non void
static double hitungtotal(double uts, double uas, double lap) {
return ((uts*0.2)+(uas*0.4)+(lap*0.4));
}
}


lanjut disini Monggo disave dengan nama "program.java" silahkan lakukan kompilasi dan jalankan program nya,. 

oya, kira2 ouputnya seperti berikut ini,. ^^ saya memasukkan jumlah mahasiswa sebanyak 2 unit, (orang maksudnya), dan mengisikan masing masing nilai uts, uas, dan laporan, 


contoh method non void di java
oke saya jelasin sedikit program diatas, sebisa saya dan setahu saya kalo ada yang salah mohon dibenahin.

  • Baris 8 ~ 9 input banyaknya mahasiswa
  • Baris 11 ~ 14 merupakan deklarasi array
  • Baris 19 perulangan brooo, mosok ra ngerti ^^. Selama ini memenuhi kondisi/ syaratnya  perulangan maka akan terus diulang dan dijalankan apa yang ada di dalam blok perulangan ini.
  • Baris 20 ~ 21 input nama mahasiswa
  • Baris 25 ~ 35 merupakan perulangan while dan akan terus diulang sampai kondisi tidak terpenuhi, dan didalam perulangan ini ada fungsi Try Catch gunanya untuk exception-handling atau penjebakan eksepsi, ini untuk menangani adanya kesalahan pada saat program sedang berjalan atau runtime error. Kenapa saya buat ini?, seorang programmer yang baik, pastinya sudah mengantisipasi setiap kesalahan / error yang ada pada program (istilahnya no program's perfect haha), agar meminimalisir bug dan munculnya pesan error pada saat program sedang berjalan. Lho memang program diatas ada errornya ya? tentu masbro,. program diatas tentu ada errornya. tadinya saya membuat program ini tanpa adanya fungsi try catch, ketika saya memasukkan data nilai berupa nilai sembarang ketik, semua karakter saya ketikkan entah angka atau huruf, dan ketika saya enter muncul pesan error. Kenapa bisa? ya,,, karena tidak sesuai permintaan dari programnya, kan disuruh memasukkan nilai , jika yang dimasukkan selain karakter angka, maka itu akan dianggap string. nah setelah saya buatkan try catch maka, error dapat ditangani, ketika user memasukkan sembarang karakter maka program akan meminta untuk  memasukkan data nilai dengan benar, kira2 begitulah penjelasan singkatnya, capek bos ngetik trus. o ya ampir kelalen pada baris ini digunakan untuk input nilai uts
  • Baris 39 ~ 49 sama masbro dengan baris 25  ~ 35, hanya saja ini untuk memasukkan nilai uas
  • Baris 53 ~ 63 sama dengan yang sebelumnya, hanya saja ini proses input nilai laporan.
  • Baris 69 itu perulangan yang sudah diketahui batasnya bos
  • Baris 70 ~ 73 baris ini utk menampilkan nama, nilai uas, uts, dan laporan dari tiap2 mahasiswa.
  • Baris 74 ~ 81 penjebakan eksepsi lagi ini bos. kalo yang ini digunakan untuk mengantisipasi terjadinya error pada saat menjalankan perintah yang ada pada blok try
  • Baris 76 digunakan untuk menampilkan hasil nilai total, nanti outputnya akan dibatasi hanya mengambil 2 angka dibelakang koma, jika tidak dibatasi nanti akan banyak sekali angka dibelakang koma, karena tipe datanya menggunakan tipe double. Perintah untuk menapilkan hasilnya ini sama seperti pada C/C++, yaitu menggunakan printf(). Karena khawatir terjadinya error pada saat dijalankan, maka saya masukkan pada blok try, jika benar benar terjadi error maka yang akan dieksekusi adalah pada blok catch. ^^.
  • Baris 79 jika pada blok try terjadi error, maka pada baris ini akan dieksekusi.
  • Baris 87 ~ 89 merupakan method yang akan mencari nilai total dari data yang diinputkan, nah ini merupakan inti dari postingan ini, haha. pada baris 76 atau 79 terdapat pemanggilan method ini yaitu pada saat menampilkan nilai total nya. Nilai yang pada saat pemanggilan itu dibawa dan dilewatkan melalui parameter yang ada, lalu di proses pada method hitungtotal(double uts, double uas, double lap)dan hasilnya dikembalikan untuk selanjutnya ditampilkan. yahh kira kira begitulah.
Demikianlah tadi sekilas pengertian method non void versi saya, yang ada didalam java, posting selanjutnya saya akan membahas method yang satunya lagi yaitu method void.

mohon maaf jika da kesalahan kata, jika ada yang error tolong laporkan.

Happy Coding

Tidak ada komentar:

Posting Komentar