Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf ·...

37
Method Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

Transcript of Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf ·...

Page 1: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Method

Pemrograman Dasar

Sistem Informasi PTIIK

Herman Tolle

Page 2: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Definisi

Metode: Sekumpulan baris kode program yang mempunyai fungsi tertentu dan dapat dipanggil dari fungsi utama,

• Dapat dipanggil berulang kali

• dapat memproses data (variabel) yang dikirim dari main function

Page 3: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Manfaat Method / Function

Prosedur

• Menyederhanakan struktur program

• Mempermudah kendali program jika bekerja dengan source code yang panjang

Fungsi

• Mendefiniskan fungsi-fungsi tertentu

Prosedur/Fungsi

• Dapat digunakan secara berulang dalam main program

Page 4: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Tipe Method

• Prosedur:

– sekumpulan proses

– fungsi yang tidak mengembalikan suatu nilai

• Fungsi:

– Sekumpulan proses dan mengembalikan nilai tertentu

• Dalam bahasa Java / C++, semua method disebut sebagai function (fungsi).

Page 5: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Deklarasi Method

Modifier – return value – namaMethod –(parameter/argumen)

{

Block Statement

}

public static void main (String[] args)

{

//statement-statement

}

Page 6: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Keterangan

• Modifier = Hak Akses Terdiri dari public, protected, private

• static dan non static • return value = Nilai balikan jika metode

melakukan suatu kalkulasi dan mempunyai nilai yang disimpan, jika tidak ada return maka menggunakan kata kunci void

• Parameter/Argumen = Variabel yang dilewatkan dari luar metode atau yang digunakan di dalam metode

Page 7: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Contoh

public static void main (String[] args)

{

//statement-statement

}

Page 8: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Fungsi yang tidak mengembalikan nilai

modifier – void – namaMethod – [parameter/argumen]

{

// Block Statement

}

private static void InputData()

{

}

Page 9: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Contoh: Program Menghitung Volume Kubus

class VolumeKubus

public static void main(String args[]) {

Scanner masukan = new Scanner(System.in);

// Input panjang sisi

System.out.print("Masukkan panjang sisi: ");

int sisi = masukan.nextInt();

// hitung volume

int volume = sisi*sisi*sisi;

// cetak hasil

System.out.printf(“Volume Kubus = %d \n“,volume);

}

Page 10: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Program Hitung Volume Kubus dengan Fungsi

import java.util.Scanner;

public class VolumeKubus {

private static int volume;

public static void main(String args[]) {

int rusuk;

rusuk = inputSisi();

volume = volumeKubus(rusuk);

cetakHasil();

}

Variabel global

Penyederhanaan struktur program

Page 11: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

private static int inputSisi() {

Scanner masukan = new Scanner(System.in);

System.out.print("Masukkan panjang sisi: ");

int sisi = masukan.nextInt();

return sisi;

}

private static int volumeKubus(int sisi) {

int hasil = sisi*sisi*sisi;

return hasil;

}

private static void cetakHasil() {

System.out.printf("Volume Kubus = %d \n", volume);

}

}

Page 12: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Program Hitung Volume Kubus dengan Fungsi

import java.util.Scanner;

public class VolumeKubus {

// private static int volume;

public static void main(String args[]) {

int rusuk;

rusuk = inputSisi();

int volume = volumeKubus(rusuk);

cetakHasil(volume);

}

Penyederhanaan struktur program

Page 13: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

private static int inputSisi() {

Scanner masukan = new Scanner(System.in);

System.out.print("Masukkan panjang sisi: ");

int sisi = masukan.nextInt();

return sisi;

}

private static int volumeKubus(int sisi) {

int hasil = sisi*sisi*sisi;

return hasil;

}

private static void cetakHasil(int vol) {

System.out.printf("Volume Kubus = %d \n", vol);

}

}

Page 14: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Memanggil Method • Prosedur Tanpa Parameter: nama_method();

• Prosedur Dengan Parameter nama_method (parameter1,parameter2);

• Fungsi yang ditampung hasilnya volume = volumeKubus(rusuk);

• Output langsung hasil fungsi System.out.println(“Hasil = “+ volumeKubus(rusuk));

System.out.printf(“Hasil = %d“, volumeKubus(rusuk));

Page 15: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Cakupan Variabel

• Variabel Lokal: variabel yang hanya digunakan dalam scope blok program terbatas

• Variabel Global: variabel yang dapat digunakan pada seluruh bagian dari program dalam satu class yang sama

Page 16: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Overloading Function

• Satu nama Fungsi tetapi memiliki beberapa implementasi yang dapat dibuat berdasarkan perbedaan parameter input atau perbedaan tipe data keluaran

• Misalnya: public static int max(int x, int y) { if x>y return x else return y } public static double max(double x, double y) { if x>y return x else return y }

Page 17: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

public class Lingkaran {

public static void main(String []args) {

int r = inputJejari();

double Luas = luasLingkaran(r);

double Luas2 = luasLingkaran(5.5);

cetakLuas(Luas2);

}

private static double luasLingkaran(int r) {

return (3.14*r*r);

}

private static double luasLingkaran(double r) {

return (3.14*r*r);

}

private static int inputJejari() {

Scanner masukan = new Scanner(System.in);

System.out.print("Masukkan Jejari: ");

int jejari = masukan.nextInt();

return jejari;

}

private static void cetakLuas(double luas) {

System.out.print(“Luas Lingkaran = %f“, luas);

}

Page 18: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Mempermudah Kendali Program

• Menggunakan fungsi dan prosedur untuk kendali program berbasis menu

• Ulangi – Input pilih – Jika pilih: – 1. Input Data – 2. Proses Data – 3. Cetak Data – 9. Keluar

• Sampai pilih = 9

do

System.out.print(“Pilih Menu = ”);

pilih = input.nextInt();

switch (pilih)

{

case 1: InputData(); break;

case 2: UrutData(); break;

case 3: CetakData(); break;

case 9: CetakExit(); break;

default:

System.out.println(“Pilihan salah”);

}

while (pilih<>9)

Page 19: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Tugas Kelas D

• Membuat Program dengan Menu: 1. Input Data 2. Urut Data Terkecil (QuickSort) 3. Urut Data Terbesar (BubbleSort) 4. Cetak Data 5. Keluar

• Gunakan function (prosedur) untuk setiap item menu. • Deadline: 1 Desember 2013, dikirim ke email dosen • File Laporan (doc) + screenshot • Format judul email: SID-nim-tugas5

Page 20: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Tugas Kelas F

• Membuat Program dengan Menu: 1. Input Data (array n) 2. Urut Terkecil (QuickSort) 3. Urut Terbesar (BubbleSort) 4. Cetak Data 5. Keluar

• Gunakan function (prosedur) untuk setiap item menu. • Deadline: 9 Desember 2013, dikirim ke email dosen

([email protected]) • File Laporan (doc) + screenshot • Format judul email & nama file doc: SIF-nim-tugas5

Page 21: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Tugas Kelas E

• Membuat Program dengan Menu: 1. Input Data 2. Urut Terkecil (QuickSort) 3. Urut Terbesar (BubbleSort) 4. Cetak Data 5. Keluar

• Gunakan function (prosedur) untuk setiap item menu. • Deadline: 26 November 2013, dikirim ke email dosen • File Laporan (doc) + screenshot • Format judul email: SIE-nim-tugas5

Page 22: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Input Data Array Cetak Data Array

INPUT Tanya Jumlah Data Ulangi Sebanyak Jumlah Data, untuk Tanya data ke-i, baca data ke-i

CETAK Ulangi Sebanyak Jumlah Data, untuk Cetak data ke-i

Page 23: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

FUNGSI REKURSIF

Page 24: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

REKURSIF

• Rekursif merupakan salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

• Dalam dunia pemrograman, rekursif diimplementasikan dalam sebuah fungsi yang memanggil dirinya sendiri dan tergolong dalam dynamic programming.

Page 25: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

FUNGSI REKURSIF

• Metoda rekursif adalah metoda yang memanggil dirinya sendiri.

• Digunakan pada fungsi yang dapat dieksekusi secara iteratif (berulang)

• Metoda ini memanggil dirinya sendiri sehingga dapat melakukan proses berulang-ulang.

• Kasus sederhana yang sering muncul adalah proses berulang-ulang menghitung hasil faktorial.

• 0! = 1; n! = n × (n – 1), n> 0!

Page 26: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

• Faktorial dari 5 adalah 1 x 2 x 3 x 4 x 5.

• Dari proses itu kita ketahui bahwa untuk menghitung factorial 5 manualnya seperti 1 x 2 = 2, lalu hasil 2 ini dikalikan 3 sehingga hasilnya adalah 6, lalu hasil 6 ini dikalikan lagi dengan 4 sehingga hasilnya adalah 36, lalu hasil 36 ini dikalikan dengan 5 sehingga hasilnya adalah 120.

• 0! = 1;

n! = n × (n – 1), n> 0!

Page 27: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Contoh

class faktorialDemo{

public static void main(String args[]){

System.out.println("Hitung Faktorial dengan

Rekursif");

System.out.println("Faktorial dari 4 adalah : "+

fak_rekursif(4));

System.out.println("Hitung Faktorial dengan

Perulangan");

System.out.println("Faktorial dari 4 adalah : "+

fak_perulangan(4));

}

}

Page 28: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

private static int fak_perulangan(int n)

{

int t;

int Hasil;

Hasil = 1;

for(t=1; t<=n; t++)

Hasil *= t;

return Hasil;

}

private static int fak_rekursif(int n)

{

int Hasil;

if(n==1 || n==0) return 1;

Hasil = fak_rekursif(n-1) * n;

return Hasil;

}

Page 29: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci
Page 30: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Case: Deret Fibonaci

Deret : 0 1 1 2 3 5 8 13 21 34 55 89

...

indeks: 0 1 2 3 4 5 6 7 8 9 10 11

• Deret Fibonacci dimulai dengan 0 dan 1, dan hasil penjumlahan dua nilai deret sebelumnya menjadi nilai indeks yang berikut.

• Deret ini dapat didefinisikan rekursif sebagai berikut:

fib(0) = 0;

fib(1) = 1;

fib(index) = fib(index-2) + fib(index-1); utk index >= 2

Page 31: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci
Page 32: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci
Page 33: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Latihan

• Buat algoritma dan kode program fungsi rekursif untuk perhitungan x pangkat y

• Contoh:

– Input : x,y

– Proses: x^y = 1, jika y = 0

– x^y = x * x^(y-1), jika y > 0

Page 34: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

class Pangkat {

public static int pangkatRekursif(int x, int y) {

if (y == 0) {

return 1;

}

else {

return x * pangkatRekursif(x, y - 1);

}

}

public static void main(String[] args)

{

System.out.println("10 dipangkatkan 3 = “ +

pangkatRekursif(10,3));

}

}

Page 35: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

Fraktal

Page 36: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

• FPB (Faktor Persekutuan Terbesar) dalam bahasa inggris dinamakan Greatest Common Divisor (GCD).

• FPB dari dua bilangan adalah bilangan bulat positif terbesar yang membagi habis kedua bilangan. Bilangan yang dibandingkan tersebut berupa bilangan bulat atau integer.

• Dalam definisi tersebut yaitu membagi habis kedua bilangan bulat positif, berarti harus dihitung modulo-nya (sisa hasil bagi dari kedua bilangan).

Page 37: Method - hermantolle.comhermantolle.com/class/wp-content/uploads/2013/09/PD-08-Methods.pdf · Metode: Sekumpulan baris kode program yang ... • File Laporan (doc) ... •Deret Fibonacci

• FPB x dan y memiliki pola sebagai berikut:

• Jika x dibagi y sama dengan 0, maka FPB dari x dan y adalah y

• Jika x dibagi y tidak sama dengan 0, maka y dibagi dengan sisa pembagian x dan y

• Formulanya adalah:

• x % y = 0, FPB x dan y adalah y

• x % y != 0 , maka y dibagi dengan hasil dari (x % y)