Monday, July 20, 2015

program komputer - Teknik Pemrograman Lanjut


3.1       Tujuan
Modul ini mengenalkan suatu teknik pemrograman yang lebih tinggi. Dalam bagian ini Anda akan mempelajari rekursif dan tipe data abstrak.
Setelah menyelesaikan pelajaran ini, diharapkan Anda dapat:

1.         Memahami dan menggunakan rekursif
2.         Mengetahui perbedaan antara stacks dan queues
2.         Mengimplementasikan suatu implementasi sequensial dari stacks dan queues
3.         Mengimplementasikan suatu implementasi linked dari stacks and queues
4.         Menggunakan Collection classes yang ada


3.2       Rekursif

3.2.1    Apa yang dimaksud dengan Rekursif?

Rekursif adalah teknik pemecahan masalah yang powerful dan dapat digunakan ketika inti dari masalah terjadi berulang kali. Tentu saja, tipe dari masalah ini dapat dipecahkan mengunakan perkataan berulang-ulang (i.e., menggunakan konstruksi looping seperti for, while dan do-while).
Sesungguhnya, iterasi atau perkataan berulang-ulang merupakan peralatan yang lebih efisien jika dibandingkan dengan recursif tetapi recursion menyediakan solusi yang lebih baik untuk suatu masalah. Pada rekursif, method dapat memanggil dirinya sendiri. Data yang berada dalam method tersebut seperti argument disimpan sementara kedalam stack sampai method pemanggilnya diselesaikan.

3.2.2    Rekursif Vs. Iterasi

Untuk pengertian yang lebih baik dari rekursif, mari kita lihat pada bagaimana macam- macam dari teknik iterasi. Dalam teknik-teknik tersebut dapat juga kita lihat penyelesaian sebuah loop yang lebih baik menggunakan rekursif dari pada iterasi.
Menyelesaikan masalah dengan perulangan menggunakan iterasi secara tegas juga digunakan pada struktur kontrol pengulangan. Sementara itu, untuk rekursif, task diulangi dengan memanggil sebuah method pengulangan. Maksud dari hal tersebut adalah untuk menggambarkan sebuah masalah kedalam lingkup yang lebih kecil dari pengulangan itu sendiri. Pertimbangan suatu perhitungan yang faktorial dalam penentuan bilangan bulat. Definisi rekursif dari hal tersebut dapat diuraikan sebagai berikut: factorial(n) = factorial(n-1) * n; factorial(1) = 1. Sebagai contohnya, nilai faktorial dari 2 sama dengan fatorial (1)*2, dimana hasilnya adalah 2. Faktorial dari 3 adalah 6, dimana sama dengan faktorial dari (2)*3. 

Dengan iterasi, proses diakhiri ketika kondisi loop gagal atau salah. Dalam kasus dari penggunaan rekursif, proses yang berakhir dengan kondisi tertentu disebut permasalahan dasar yang telah tercukupi oleh suatu pembatasan kondisi. Permasalahan yang mendasar merupakan kejadian yang paling kecil dari sebuah masalah. Sebagai contohnya, dapat dilihat pada kondisi rekursif pada faktorial, kasus yang mudah adalah ketika inputnya adalah 1. 1 dalam kasus ini merupakan inti dari masalah.
Penggunaan dari iterasi dan rekursif dapat bersama-sama memandu loops jika hal ini tidak digunakan dengan benar.
Keuntungan iterasi dibandingkan recursion adalah performance yang lebih baik. Hal tersebut lebih cepat untuk recursion sejak terbentuknya sebuah parameter pada sebuah method yang disebabkan oleh suatu CPU time. Bagaimanapun juga, rekursif mendorong practice software engineering yang lebih baik, sebab teknik ini biasanya dihasilkan pada kode yang singkat yang lebih mudah untuk dimengerti dan juga mempromosikan reuseability pada suatu solusi yang telah diterapkan.
Memilih antara iterasi dan rekursif merupakan masalah dari menjaga keseimbangan antara baiknya sebuah performance dan baiknya software engineering.

3.2.3    Factorials: Contoh

Listing program berikut ini menunjukkan bagaimana menghitung faktorial menggunakan teknik iterasi.
class Factoriallter {
static int factorial(int n) { int result = 1; for (int i = n; i > 1; i--)     {
result *= i;
}
return result;
}
public static void main(String args[]) { int n = Integer.parseInt(args[0]); System.out.println(factorial(n));
}
}


Download File Lengkap Di SINI
Baca juga Review Konsep Dasar dalam Java
Post a Comment