Anda di halaman 1dari 31

Pertemuan VII

METHODS
Pada umumnya, suatu class akan mengandung
methods
Method dalam Java merupakan suatu rangkaian
pernyataan (statements) yang dikelompokkan
bersama untuk melaksanakan suatu operasi.
Methods adalah subroutine yang memanipulasi
data yang didefinisikan class dan menyediakan
akses ke data
Pada banyak kasus, bagian-bagian dari program
akan berinteraksi dengan class melalui methods

SKEMA METHODS SECARA UMUM

Java Source
Code

class

Method lain

Return void
method

Return value
method

Method main

Method yang
lain dipanggil
di main

LEBIH JAUH TENTANG METHODS

Methods berisi satu atau beberapa


statement

Dalam pemrograman java yang


baik, sebuah methods akan
melakukan hanya satu tugas

Setiap methods memiliki nama


yang digunakan untuk
memanggilnya

Penamaan: Gunakan nama apa


saja, jangan gunakan Javas
keyword

Ingat bahwa main() sudah


direserved untuk methods yang
akan memulai eksekusi program

Bentuk umum method:


ret-type name( parameter-list ) {
// body of method
}
ret-type adalah tipe data yang dikembalikan oleh method. Jika
method tidak mengembalikan nilai, maka return type nya
adalah void.
name adalah nama method
parameter list adalah tipe data dan identifier yang dipisahkan
oleh tanda koma
Parameter adalah variabel yang menerima nilai dari argumen
melalui method ketika method dipanggil, jika tidak memiliki
parameter maka parameter list akan kosong

Methods juga dikenal dengan


sebutan Procedures atau Functions:
Procedures: They don't return
any value.
Functions: They return value.

Dalam void method, kita bisa


mengakhiri method dengan segera
menggunakan return;

Ketika return dieksekusi, kontrol


program akan kembali pada
pemanggil, melompati sisa baris
kode di dalam method

PEMANGGILAN METHOD

Untuk menggunakan method, method perlu


dipanggil.
Terdapat dua cara:
Method mengembalikan nilai (return-value)
Method tidak mengembalikan nilai (return-void)
Proses pemanggilan method cukup sederhana.
Ketika suatu method dipanggil, maka kontrol
program diberikan kepada method tersebut,
kemudian method tersebut akan mengembalikan
kontrol program ke method yang memanggilnya jika:
Ketika mencapai akhir method }
Ketika mencapai statement return
Hati hati ketika menggunakan multiple return,
karena terlalu banyak exit points akan merusak
struktur kode program. Method yang baik akan
memiliki exit point yang didefinisikan dengan jelas

RETURN-VOID
Suatu method yang tidak mengembalikan nilai
(return-void) bisa juga dianggap sebagai suatu
statement.
Method dengan return-void tidak mengembalikan
suatu nilai sebagai hasil eksekusinya.
Contoh :
System.out.println("This is SPARTAAAAAA!");

RETURN-VOID
void myMeth()
{
int i;
for(i=0; i<10; i++)
{
if(i == 5) return; // stop at 5
System.out.println();
}
}

RETURN-VOID
Return statement bisa dibuat multiple dalam method

void myMeth()
{
// ...
if(done) return;
// ...
if(error) return;
}

public class Cobastatic {


public static void main(String[] args) {
//static method memanggil static method lain dalam class yg sama
inicontohMethodStatic();
//method static juga bisa dipanggil dari nama classnya
Cobastatic.inicontohMethodStatic();
}

MAIN METHOD

public static void inicontohMethodStatic()


{
System.out.println("Memanggil method inicontohmethodstatic");
}
}

METHOD YANG DIPANGGIL

CONTOH :

public class ExampleVoid {


public static void main(String[] args) {
methodRankPoints(255.7);
}
public static void methodRankPoints(double points) {
if (points >= 202.5) {
System.out.println("Rank:A1");
}
else if (points >= 122.4) {
System.out.println("Rank:A2");
}
else {
System.out.println("Rank:A3");
}
}
}

RETURN-VALUE
Sebagian besar method akan mengembalikan nilai
Kemampuan untuk mengembalikan nilai
merupakan keunggulan dari method
return value bisa mengandung hasil penghitungan
atau hanya mengindikasikan true-false (status
code)
Bentuk umum: return value;

RETURN-VALUE
Contoh return value:
fungsi sqrt untuk mendapatkan nilai akar kuadrat
class Hypot {
public static void main(String args[]) {
double x, y, z;
x = 3;
y = 4;
z = Math.sqrt(x*x + y*y);
System.out.println("Hypotenuse is " +z);
}
}

Nilai yang dilewatkan melalui method


MENGGUNAKA
atau diumpankan disebut argumen
N PARAMETER
Di dalam method, variabel yang
menerima argumen disebut
parameter
Parameter dideklarasikan di dalam
tanda () yang mengikuti nama
method
Parameter ada dalam scope method
Terdapat 2 cara:
Passing parameter by value
Passing parameter by reference

Contoh:

public class ParmDemo3 {


// return true if x is even
static boolean isEven() {
int x=8;
if((x%2) == 0) return true;
else return false;
}

8 is even.

public static void main(String args[]) {


if(isEven()) System.out.println(8 is even.");
}
}

CONTOH:

public class ParmDemo2 {


// return true if x is even
static boolean isEven(int x) {

10 is even.
8 is even.

if((x%2) == 0) return true;


else return false;
}
public static void main(String args[]) {
if(isEven(10)) System.out.println("10 is even.");
if(isEven(9)) System.out.println("9 is even.");
if(isEven(8)) System.out.println("8 is even.");
}
}

PARAMETER
Method dapat memiliki lebih dari satu
parameter
Deklarasikan setiap parameter
dipisahkan dengan tanda koma

class Factor2 {
CONTOH:

static boolean isFactor(int a, int b) {


if( (b % a) == 0) return true;

Melewatkan
argumen ke
isFactor

Method
memiliki dua
parameter

else return false;


}
public static void main(String args[]) {
if(isFactor(2, 20)) System.out.println("2 is
factor");
if(isFactor(3, 20)) System.out.println("this won't
be displayed");
}
}

public class Vehiclenew {


// Display the range.
static void range(int fuelcap1,int mpg1) {
System.out.println("Range is " + fuelcap1 * mpg1);
}
public static void main(String args[]) {
int passengers=7; // number of passengers
int fuelcap=16; // fuel capacity in gallons
int mpg=21; // fuel consumption in miles per gallon
System.out.print("Minivan can carry " + passengers +
". ");
range(fuelcap,mpg); // display range of minivan
}
}

CONTOH

CONTOH
public class ExampleMinNumber{
public static void main(String[] args) {
int a = 11;
int b = 6;
int c = minFunction(a, b);
System.out.println("Minimum Value = " + c);
}
/* returns the minimum of two numbers */
public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2) min = n2;
else min = n1; return min;
}
}

CONTOH

public class swappingExample {


public static void main(String[] args) {
int a = 30; int b = 45;
System.out.println("Before swapping, a = " + a + " and b = " + b);
// Invoke the swap method
swapFunction(a, b);
System.out.println("\nNow, Before and After swapping values will be
same here:");
System.out.println("After swapping, a = " + a + " and b is " + b);
}
public static void swapFunction(int a, int b) {
System.out.println("Before swapping(Inside), a = " + a + " b = " + b);
// Swap n1 with n2
int c = a; a = b; b = c;
System.out.println("After swapping(Inside), a = " + a + " b = " + b);
}
}

CONTOH
Using command-line arguments
public class CommandLine {
public static void main(String args[]) {
for(int i=0; i<args.length; i++){
System.out.println("args[" + i + "]: " + args[i]);
}
}
}

Compile dan running program di atas dengan perintah:


java CommandLine this is a command line 200 -100

Latihan 1
Menentukan Bilangan Ganjil/Genap
Proses input bilangan oleh user
Kemudian ditampilkan hasilnya

Latihan 2
Menghitung luas dan keliling
lingkaran
Proses input jari-jari lingkaran
oleh user
Kemudian ditampilkan hasilnya
Masukkan jari-jari lingkaran: 14
Keliling lingkaran dengan jari-jari 14 = 87.92
Luasnya adalah = 615.44

Latihan 3
Menentukan Bilangan Terbesar
dari Dua Inputan User
Memasukkan input: dua buah
bilangan
Output: Bilangan terbesar dari
dua bilangan tersebut.
Perhatikan jika dua bilangan yang
diinputkan sama besar

Latihan 4
Menghitung lama investasi
Memasukkan input: nilai
sekarang, nilai masa depan, dan
suku bunga
Output adalah lama waktu
investasi (tahun)
Gunakan struktur pengulangan
for dan break.

ALPRO 2011, Nucke WKP, M.Sc

Output
Nilai sekarang (Rp)? 2000
Nilai masa depan (Rp)? 4000
Tingkat suku bunga (%per tahun)?10

Ilustrasi

Tahun
ke1
2
Lama investasi: 8 tahun
3
*******************************
4
Nilai sekarang (Rp)? 2000
5
Nilai masa depan (Rp)? 4000
6
Tingkat suku bunga (%per tahun)?0.1
7
8
Lama investasi lebih dari 100 tahun
9
10
ALPRO 2011, Nucke WKP, M.Sc

Nilai
investasi
2000
2200
2420
2662
2928.2
3221.02
3543.122
3897.434
4287.178
4715.895

Latihan 5
Menentukan Faktorial
Proses input bilangan yang akan
difaktorialkan oleh user
Kemudian ditampilkan hasilnya
Gunakan struktur for
Masukkan angka yang akan difaktorialkan: 3
3! = 6

ALPRO 2011, Nucke WKP, M.Sc

Latihan 6
Mengecek bilangan prima
Bilangan diinput oleh user
Kemudian dicek apakah
merupakan bilangan prima atau
bukan
Gunakan struktur loop for dan
break
Masukkan bilangan: 3
Bilangan 3 adalah bilangan prima
Masukkan bilangan: 4
Bilangan 4 bukan bilangan prima
ALPRO 2011, Nucke WKP, M.Sc

Latihan 7
Menentukan FPB dari dua buah
bilangan
Proses input dua buah bilangan
oleh user
Kemudian ditampilkan FPB-nya
Gunakan struktur while
Masukkan bilangan pertama: 100
Masukkan bilangan pertama: 80
FPB dari 100 dan 80 adalah 20

ALPRO 2011, Nucke WKP, M.Sc