MODUL XII, Algoritma Pemrograman I

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

            Pemanggilan method disebut juga dengan method invoke. Intinya method dipanggil dan dijalankan berdasarkan parameternya jika ada. Setiap kali method dipanggil, terdapat memori di dalam computer yang dipakai untuk menyimpan variable dan data sementara.
Terdapat dua parameter yaitu :
·         Parameter formal adalah parameter yang tertulis dalam definisi method.
·         Para meter actual adalah parameter yang berada pada inputan langsung pada saat penggunaan method tersebut.
Parameter bisa lebih dari satu dengan dipisahkan tanda koma, yang perlu diperhatikan dalam pemanggilan method adalah jumlah, urutan, dan tipe parameter actual harus sama dengan jumlah urutan dan tipe parameter actual.
PASSING BY VALUE
Method dengan memasukkan tipe data primitive, dijalankan dengan prinsip passing parameters by values. Method hanya mengolah nilai (value) dari parameter saja dan tidak akan mengubah nilai akhir parameter tersebut. Akhirnya, nilai variable yang dimasukkan sebagai input pada method tidak akan berubah meskipun diproses oleh method. Ingat, method dengan masukan data primitive tidak akan pernah merubah nilai input pada input-nya. Dengan kata lain nilai variable dengan tipe data primitive yang menjadi parameter method  tidak pernah dapat diubah oleh method.
PASSING BY REFERENCE
Ketika sebuah passing by reference terjadi, alamat memori pada sebuah variable dilewatkan pada saat pemanggilan method. Ini tidak seperti passing by value, method dapat memodifikasi variable asli dengan menggunakan alamat memori tersebut, meskipun berbeda nama variable yang digunakan dalam method dengan variable aslinya, kedua variable ini menunjukan lokas dari data yang sama. 
B.   PEMBAHASAN
Program 1 :
import java.util.Scanner;
public class MethodParameter {
    private int i;
public int total(int bilangan){
    int hasil =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();
    int a;
    System.out.print(“Masukkan bilangan: “);
    a=data.nextInt();
System.out.println(“Hasil deret jumlah “+coba.total(a));
}
}
Hasil output program :
Pembahasan :
Pada program di atas terdiri dari method total(int bilangan)yang memiliki parameter bilangandengan tipe bilangan integer. Class di 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++). Yang kemudian hasil dari perulangan akan ditambahkan oleh hasil berikutnya secara terus-menerus hasil +=i;. Kemudian  hasil dari perulangan akan dikembalikan oleh return ke method total(). Di dalam class Method terdapat method MethodParameter(). Di dalam isi dari method Method terdapat nama obyek coba yang berguna untuk menginput 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(int bilangan) yang berfungsi untuk pemasukkan nilai ke method MethodParameter(). Kemudian hasil yang diinput dari keyboard akan dikembalikan ke variable bilanganyang berada di dalam class. Kemudian hasil dari perulangan yang dikembalikan oleh 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(“Awal method a= “+a+” b= “+b+” c= “+c);
    b=a+c;
    a=b+c;
    c=a+b;
System.out.println(“Akhir method 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(int a, int b, int c) dengan parameter yang bertipe data integer dan method FungsiSoal(). Di dalam method mumets(int a, int b, int c) terdapat statement yang berfungsi untuk menampilkan nilai dari variabel int a, b, c; yang berasal dari method FungsiSoal(). Kemudian terdapat operasi penjuamlahan b=a+c; a=b+c; c=a+b;. Hasil dari operasi tersebut akan ditampilkan berdasarkan urutan yang telah ditentukan dan sesuai dengan operator yang dituliskan System.out.println(“Akhir method a= “+a+” b= “+b+” c= “+c);. Hasil dari statement di atas akan dijumlahkan dan hasilnya akan di kembalikan pada method mumets(int a, int b, int c) melalui return (a+b+c);. Kemudian di dalam method FungsiSoal(). Terdapat variable int a, b, c; yang mempunyai nilai awal a=10; b=15; c=20;dan nantinya akan dikembalikan pada method mumets(int a, int b, int c).  Kemudian nilai awal 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 akan ditampilkan pada statement System.out.println(“Main a= “+a+” b= “+b+” c= “+c);.
C.   TUGAS
1.      Buat sebuah method yang digunakan untuk menghasilkan nilai paling kecil dari 3 bilangan yang dimasukkan sebagai parameter.
Program :
import java.util.Scanner;
public class FungsiBanding {
public int banding(int a, int b, int c){
int besar, kecil = 0;
if ((a<b)&&(a<c))
    kecil =a;
else if ((b<a)&&(b<c))
    kecil=b;
else if ((c<b)&&(c<b))
    kecil=c;
return kecil;
}
public static void main (String [] args){
Scanner data=new Scanner (System.in);
FungsiBanding bilangan = new FungsiBanding();
int a, b, c;
System.out.print(“Masukkan bilangan: “);
a=data.nextInt();
System.out.print(“Masukkan bilangan: “);
b=data.nextInt();
System.out.print(“Masukkan bilangan: “);
c=data.nextInt();
System.out.println(“Bilangan terkecilnya adalah “+bilangan.banding(a,b,c));
}
}
Hasil output program :
2.      Tugas dari dosen pengampu.
Tidak ada tugas dari dosen pangampu.
D.   KESIMPULAN
Method dapat membagi program dengan berbagai masalah ke dalam beberapa sub-masalah yang dapat diselesaikan secara modular, sehingga program dapat lebih diatur. Parameter bisa lebih dari satu dengan dipisahkan tanda koma, yang perlu diperhatikan dalam pemanggilan method adalah jumlah, urutan, dan tipe parameter actual harus sama dengan jumlah urutan 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