MODUL XII, Algoritma Pemrograman I

METODEDENGAN PARAMETER
A.   DASAR TEORI
Method adalah kerja atau fungsi yangdapat dilakukan oleh obyek. Fungsi juga dapat berpengaruh pada obyek itusendiri maupun pada obyek lainnya. Obyek atau class dapat memanggil method yangdimiliki obyek atau class yang lainnya. Method juga dapat membagi programdengan berbagai masalah ke dalam beberapa sub-masalah yang dapat diselesaikansecara modular, sehingga program dapat lebih diatur.
Rounded Rectangle: Sintaks deklarasi Method:[modifier] [returntype] indentifier(){Statement (s) ;}

            Pemanggilanmethod disebut juga dengan method invoke. Intinya method dipanggil dandijalankan berdasarkan parameternya jika ada. Setiap kali method dipanggil,terdapat memori di dalam computer yang dipakai untuk menyimpan variable dandata sementara.
Terdapat dua parameter yaitu :
·        Parameter formal adalah parameter yang tertulisdalam definisi method.
·        Para meter actual adalah parameter yang beradapada inputan langsung pada saat penggunaan method tersebut.
Parameter bisa lebih dari satu dengandipisahkan tanda koma, yang perlu diperhatikan dalam pemanggilan method adalahjumlah, urutan, dan tipe parameter actual harus sama dengan jumlah urutan dantipe parameter actual.
PASSING BY VALUE
Method dengan memasukkan tipe data primitive, dijalankandengan prinsip passing parameters by values. Method hanya mengolah nilai(value) dari parameter saja dan tidak akan mengubah nilai akhir parametertersebut. Akhirnya, nilai variable yang dimasukkan sebagai input pada methodtidak akan berubah meskipun diproses oleh method. Ingat, method dengan masukandata primitive tidak akan pernah merubah nilai input pada input-nya. Dengankata lain nilai variable dengan tipe data primitive yang menjadi parametermethod  tidak pernah dapat diubah olehmethod.
PASSING BY REFERENCE
Ketika sebuah passing by reference terjadi, alamat memoripada sebuah variable dilewatkan pada saat pemanggilan method. Ini tidak sepertipassing by value, method dapat memodifikasi variable asli dengan menggunakanalamat memori tersebut, meskipun berbeda nama variable yang digunakan dalammethod dengan variable aslinya, kedua variable ini menunjukan lokas dari datayang sama. 
B.   PEMBAHASAN
Program 1 :
import java.util.Scanner;
public class MethodParameter {
   private int i;
public int total(int bilangan){
    inthasil =0;
    for(i=0;i<=bilangan;i++)
       hasil +=i;
   return hasil;
    }
public static void main (String[] args){
   Scanner data=new Scanner (System.in);
   MethodParameter coba=new MethodParameter();
    inta;
   System.out.print(“Masukkan bilangan: “);
   a=data.nextInt();
System.out.println(“Hasilderet jumlah “+coba.total(a));
}
}
Hasil output program :
Pembahasan :
Padaprogram di atas terdiri dari method total(intbilangan)yang memiliki parameter bilangandengan tipe bilangan integer. Classdi atas memiliki variable bilangandengan tipe data integer dan akan diubah ke variable i yang bersifat private. Di dalam method total()memiliki variable local hasil yang mempunyai nilai awal 0. Variable i akan dioperasikan melalui perulangan for (i=0;i<=bilangan;i++). Yangkemudian hasil dari perulangan akan ditambahkan oleh hasil berikutnya secaraterus-menerus hasil +=i;.Kemudian  hasil dari perulangan akandikembalikan oleh return kemethod total(). Di dalam class Method terdapat method MethodParameter(). Di dalam isi darimethod Method terdapat namaobyek coba yang berguna untukmenginput variable bilanganmelalui keyboard coba.bilangan=data.nextInt();.Akan tetapi sebelum panginputan nilai, method MethodParameter()harus diberi variable int a;yang mempunyai tipe data sama dengan method total(intbilangan) yang berfungsi untuk pemasukkan nilai ke method MethodParameter(). Kemudian hasil yang diinput darikeyboard akan dikembalikan ke variable bilanganyang berada di dalam class. Kemudian hasil dari perulangan yang dikembalikanoleh return ke method total() akan ditampilkan di System.out.println(“Hasil deret jumlah”+coba.total(a));.
Program 2 :
public class FungsiSoal {
public int mumets(int a, int b, int c){
System.out.println(“Awalmethod a= “+a+” b= “+b+” c= “+c);
   b=a+c;
   a=b+c;
   c=a+b;
System.out.println(“Akhirmethod a= “+a+” b= “+b+” c= “+c);
   return (a+b+c);
}
public static void main (String[] args){
FungsiSoal Fungsi=new FungsiSoal();
int a, b, c;
a=10; b=15; c=20;
System.out.println(“Satu”+Fungsi.mumets(c,b,a));
System.out.println(“Main a=”+a+” b= “+b+” c= “+c);
System.out.println(“Dua”+Fungsi.mumets(b,c,a));
System.out.println(“Main a=”+a+” b= “+b+” c= “+c);
System.out.println(“Tiga”+Fungsi.mumets(a,c,b));
System.out.println(“Main a=”+a+” b= “+b+” c= “+c);
}
}
Hasil output program :
Pembahasan :
Program di atas terdiri dari method mumets(inta, int b, int c) dengan parameter yang bertipe data integer dan method FungsiSoal(). Di dalam method mumets(int a, int b, int c) terdapatstatement yang berfungsi untuk menampilkan nilai dari variabel int a, b, c; yang berasal dari method FungsiSoal(). Kemudian terdapatoperasi penjuamlahan b=a+c; a=b+c; c=a+b;.Hasil dari operasi tersebut akan ditampilkan berdasarkan urutan yang telahditentukan dan sesuai dengan operator yang dituliskan System.out.println(“Akhir method a= “+a+” b=”+b+” c= “+c);. Hasil dari statement di atas akandijumlahkan dan hasilnya akan di kembalikan pada method mumets(int a, int b, int c) melalui return (a+b+c);. Kemudian di dalammethod FungsiSoal(). Terdapatvariable int a, b, c; yangmempunyai nilai awal a=10; b=15; c=20;dan nantinya akan dikembalikan pada method mumets(inta, int b, int c).  Kemudian nilaiawal variable tersebut akan di ubah lagi urutan penempatanya pada statement System.out.println (“Satu”+Fungsi.mumets(c,b,a)); System.out.println (“Dua”+Fungsi.mumets(b,c,a)); System.out.println (“Main a= “+a+”b= “+b+” c= “+c);, tetapi urutan variable yang asli akanditampilkan pada statement System.out.println(“Maina= “+a+” b= “+b+” c= “+c);.
C.   TUGAS
1.      Buatsebuah method yang digunakan untuk menghasilkan nilai paling kecil dari 3bilangan yang dimasukkan sebagai parameter.
Program :
importjava.util.Scanner;
publicclass FungsiBanding {
publicint banding(int a, int b, int c){
intbesar, kecil = 0;
if((a<b)&&(a<c))
    kecil =a;
elseif ((b<a)&&(b<c))
    kecil=b;
elseif ((c<b)&&(c<b))
    kecil=c;
returnkecil;
}
publicstatic void main (String [] args){
Scannerdata=new Scanner (System.in);
FungsiBandingbilangan = new FungsiBanding();
inta, b, c;
System.out.print(“Masukkanbilangan: “);
a=data.nextInt();
System.out.print(“Masukkanbilangan: “);
b=data.nextInt();
System.out.print(“Masukkanbilangan: “);
c=data.nextInt();
System.out.println(“Bilanganterkecilnya adalah “+bilangan.banding(a,b,c));
}
}
Hasil outputprogram :
2.      Tugasdari dosen pengampu.
Tidak ada tugasdari dosen pangampu.
D.   KESIMPULAN
Method dapat membagi program denganberbagai masalah ke dalam beberapa sub-masalah yang dapat diselesaikan secaramodular, sehingga program dapat lebih diatur. Parameter bisa lebih dari satudengan dipisahkan tanda koma, yang perlu diperhatikan dalam pemanggilan methodadalah jumlah, urutan, dan tipe parameter actual harus sama dengan jumlahurutan dan tipe parameter actual.
E.    LISTING
Terlampir.
Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s