Monday, April 14, 2014

Pencarian (Searching)

0 comments
PENCARIAN (SEARCHING)
Pencarian(searhing) merupakan proses yang sangat penting dalam pengolahan data. Proses pencarian adalah menemukan nilai(data) tertentu didalam sekumpulan data yang bertipe sama.Sebuah algoritma pencarian dijelaskan secara luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi beberapa kemungkinan solusi. Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah Kata kunci dan dengan  langkah-langkah tertentu akan mencari rekaman dengan kata kunci tersebut.  Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari ditemukan atau tidak ditemukan.
Macam-macam Algoritma (Searching)
1.       Pencarian sekuensial (Sequential searching)
Pengertian :
Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian beruntun adalah proses yang membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.

2.       Pencarian Biner (binary search)
Pengertian :

Terdapat metode pencarian pada data terurut yang paling efficient, yaitu metode pencarian bagi dua atau pencarian biner (binary search). Metode ini digunakan untuk kebutuhan pencarian dengan waktu yang cepat. Prinsip pencarian dengan membagi data atas dua bagian mendasari metode ini. Data yang disimpan di dalam larik harus sudah terurut. data terurut yang paling efficient, yaitu metode pencarian bagidua atau pencarian biner (binary search).

Berikut contoh program pencarian (search)  dengan metode Pencarian Sekuensial atau berurutan.
Berikut hasilnya : 

Continue reading →
Thursday, April 10, 2014

Rekursif

0 comments
REKURSIF
Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri. Fungsi yang seperti ini disebut fungsi rekursif ( recursive function ). Dalam sebuah fungsi rekursif pemanggilan dapat terjadi berulang kali. Karena ada proses yang berulang-ulang maka harus ada suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah berhenti sampai memori yang digunakan tidak dapat menampung lagi. Pemecahan masalah dengan pendekatan rekursif dapat dilakukan jika masalah tersebut dapat didefinisikan secara rekursif, yaitu masalah dapat diuraikan menjadi masalah sejenis yang lebih sederhana.

Kelebihan Dan Kelemahan Rekursif
Kelebihan Perulangan Rekursif :
·       Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar.
·         Dapat melakukan perulangan dengan batasan fungsi.
Kekurangan Perulangan Rekursif:
·         Tidak bisa melakukan nested loop atau looping bersarang.
·         Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
·         Trace error sulit.
·     Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalanya akan menyebabkan stack tak cukup lagi (Stack Overrun).
·         Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.

CONTOH REKURSIF
Contoh dari persoalan yang biasanya kita tidak terpikir mengunakan metode rekursif yaitu Faktorial. Menghitung 4! dengan menerapkan konsep rekursi dua fase dasar dari sebuah proses rekursi: fase awal dan fase balik. Dalam fase awal, masing-masing proses  memanggil dirinya sendiri. Fase awal ini berhenti ketika pemanggilan telah mencapai kondisi terminal. Sebuah kondisi teminate adalah kondisi dimana sebuah fungsi rekursi kembali dari pemanggilan, artinya fungsi tersebut sudah tidak memanggil dirinya sendiri dan kembali pada sebuah nilai. Sebagai contoh, dalam penghitungan faktorial dari n, kondisi terminal adalah n = 1, n = 0. Untuk setiap fungsi rekursi, minimal harus ada satu kondisi terminal. Setelah fase awal selesai, kemudian proses melanjutkan pada fase balik, dimana fungsi sebelumnya akan dikunjungi lagi dalam fase balik ini. Fase ini berlanjut sampai pemanggilan awal, hingga secara lengkap proses telah berjalan.

Proses Komputasi Secara Rekursif dari 4!
F(4)=4x F(3) fase awal
F(3)=3x F(2) .
F(2)=2x F(1) .
F(1)=1 kondisi terminal
F(2)=(2)x(1) fase balik
F(3)=(3)x(2) .
F(4)=(4)x (6) 24 Rekursi lengkap.

Contoh lain pada program pengulangan berikut :
hasilnya adalah :
Kesimpulan :
Rekursif adalah suatu proses bisa memanggil dirinya sendiri, sehingga dengan cirinya tersebut rekursif salah satu konsep yang penting untuk dikuasai. Hal ini dikarenakan fungsi ini memiliki sangat banyak implementasi, yang dalam hal ini adalah implementasi dalam algoritma. Fungsi rekursif memiliki kelebihan dan kelemahan. Secara umum fungsi rekursif memiliki algoritma yang lebih mudah dipahami dan dibuat tetapi membutuhkan penggunaan memoriyang besar.
Continue reading →