Method Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle
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
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
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).
Deklarasi Method Modifier return value namamethod (parameter/argumen) { Block Statement public static void main (String[] args) { //statement-statement
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
Contoh public static void main (String[] args) { //statement-statement
Fungsi yang tidak mengembalikan nilai modifier void namamethod [parameter/argumen] { // Block Statement private static void InputData() {
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);
Program Hitung Volume Kubus dengan Fungsi import java.util.scanner; public class VolumeKubus { private static int volume; Variabel global public static void main(string args[]) { int rusuk; rusuk = inputsisi(); volume = volumekubus(rusuk); cetakhasil(); Penyederhanaan struktur program
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);
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(); Penyederhanaan int volume = volumekubus(rusuk); struktur program cetakhasil(volume);
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);
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));
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
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
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);
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)
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
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 (herman.class@gmail.com) File Laporan (doc) + screenshot Format judul email & nama file doc: SIF-nim-tugas5
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
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
FUNGSI REKURSIF
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.
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!
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!
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));
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;
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
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
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));
Fraktal
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).
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)