Minggu, 26 Agustus 2012

A LGORITMA DAN P EMROGRAMAN 5


MODULAR P ROGRAMMING
 adalah suatu teknik pemrograman di mana
program yang biasanya cukup besar dibagi-bagi
menjadi beberapa bagian program yang lebih
kecil .
 Keuntungan:
 Program lebih pendek
 Mudah dibaca dan dimengerti
 Mudah didokumentasi
M ODULAR P ROGRAMMING
PADA BAHASA C

 Bahasa C sangat mendukung modular programming
 Sejak awal bahasa C sudah membagi
programprogramnya menjadi modul-modul
(bagianbagian)
 Modul pada bahasa C dikenal dengan nama fungsi
(function)
 Bahasa C terdiri dari fungsi-fungsi, baik yang langsung
dideklarasikan dalam program ataupun dipisah di dalam
header file
 Fungsi yang selalu ada pada program C adalah fungsi
main
F UNCTION
 Fungsi/function adalah suatu kumpulan
instruksi/perintah/program yang dikelompokkan
menjadi satu
 letaknya terpisah dari program yang
menggunakan fungsi tersebut
 memiliki nama tertentu yang unik, dan digunakan
untuk mengerjakan suatu tujuan tertentu
 Dalam bahasa pemrograman lain fungsi dapat
disebut sebagai subrutin (basic, VB) atau
procedure (pascal, Delphi)
K EUNTUNGAN F UNCTION
 Dapat melakukan pendekatan top-down dan divide-and-conquer:
 Top-down: penelusuran program mudah
 Divide-and-conquer: program besar dapat dipisah menjadi
program-program kecil
 Kode program menjadi lebih pendek, mudah dibaca, dan
mudah dipahami
 Program dapat dikerjakan oleh beberapa orang sehingga
program cepat selesai dengan koordinasi yang mudah
 Mudah dalam mencari kesalahan-kesalahan karena alur logika
jelas dan sederhana Kesalahan dapat dilokalisasi dalam suatu
modul tertentu saja
K EUNTUNGAN F UNCTION
 Modifikasi program dapat dilakukan pada suatu modul
tertentu saja tanpa mengganggu program keseluruhan
 Fungsi – fungsi menjadikan program mempunyai struktur
yang jelas
 Dengan memisahkan langkah – langkah detail ke satu
atau lebih fungsi – fungsi, maka fungsi utama (main)
akan menjadi lebih pendek, jelas dan mudah dimengerti
 Mempermudah dokumentasi.
 Reusability: Suatu fungsi dapat digunakan kembali oleh
program atau fungsi lain
K ATEGORI FUNGSI DALAM C
 Standard Library Function
 Yaitu fungsi-fungsi yang telah disediakan oleh C
dalam file-file header atau library nya, Misalnya:
clrscr(), printf(), getch().
 Untuk function ini kita harus mendeklarasikan
terlebih dahulu library yang akan digunakan, yaitu
dengan menggunakan preprosesor direktif.
Misalnya: #include
K ATEGORI FUNGSI DALAM C
 Programmer-Defined Function .
 Adalah function yang dibuat oleh programmer
sendiri.
 Function ini memiliki nama tertentu yang unik
dalam program, letaknya terpisah dari program
utama,dan bisa dijadikan satu ke dalam suatu
library buatan programmer itu sendiri yang
kemudian juga di-include-kan jika ingin
menggunakannya.
P ERANCANGAN F UNGSI
 Dalam membuat fungsi, perlu diperhatikan:
 Data yang diperlukan sebagai inputan
 Informasi apa yang harus diberikan oleh fungsi
yang dibuat ke pemanggilnya
 Algoritma apa yang harus digunakan untuk
mengolah data menjadi informasi
S TRUKTUR F UNCTION
 Deklarasi Function
 Definition Function
D EKLARASI F UNCTION Terdiri dari:
 Judul fungsi
 Tipe data yang akan dikembalikan/void
 Tidak ada kode implementasi function tersebut
 Bentuk Umum
tipedata namafunction(arg1, arg2,arg3,...);
D EKLARASI F UNCTION
 Deklarasi fungsi diakhiri dengan titik koma
 Tipe_data dapat berupa segala tipe data yang
dikenal C atau dapat digantikan dengan void yang
berarti fungsi tersebut tidak mengembalikan nilai
apapun
 Nama fungsi adalah nama yang unik
 Argumen dapat ada atau tidak (opsional), antar
argumen-argumen dipisahkan dengan
menggunakan tanda koma
D EKLARASI F UNCTION
 Suatu fungsi perlu dideklarasikan sebelum
digunakan
 Untuk alasan dokumentasi program yang baik,
sebaiknya semua fungsi yang digunakan
dideklarasikan terlebih dahulu
 Deklarasi fungsi ditulis sebelum fungsi tersebut
digunakan
D EKLARASI F UNCTION
 Karena prinsip kerja program C sekuensial, maka
 Jika bagian dari program yang menggunakan
fungsi diletakkan sebelum definisi dari fungsi,
maka deklarasi dari fungsi diperlukan.
 Akan tetapi jika bagian dari program yang
menggunakan fungsi terletak setelah definisi dari
fungsi, maka deklarasi dari fungsi dapat tidak
dituliskan
D EFINITION F UNCTION
 Terdiri dari :
 function prototype yang disertai dengan kode
implementasi dari function tersebut, yang
berisikan statemen/instruksi yang akan
melakukan tugas sesuai dengan tujuan dibuatnya
fungsi tersebut
D EFINITION F UNCTION
 Tubuh fungsi dapat berisi segala perintah yang
dikenal oleh C, pada dasarnya tubuh fungsi sama
dengan membuat program seperti biasa
 Return bersifat opsional, adalah keyword
pengembalian nilai dari fungsi ke luar fungsi,
return wajib jika fungsi tersebut mengembalikan
nilai berupa tipe data tertentu, sedangkan return
tidak wajib jika fungsi tersebut bersifat void

T ERIMA K ASIH

A LGORITMA DAN P EMROGRAMAN 7


R EKURSIF
 Dalam dunia pemrograman, rekursi
diimplementasikan dalam sebuah fungsi yang
memanggil dirinya sendiri.
 Contoh fungsi rekursif misalnya adalah fungsi pangkat,
faktorial, dan barisan fibonacci.
 Dalam fungsi pangkat x
y
, kita tahu bahwa semua
bilangan selain 0, jika dipangkatkan dengan 0 nilainya
sama dengan 1.
 Jika x dipangkatkan dengan y, dengan y lebih dari 0,
maka hasilnya sama dengan x dikalikan dengan x
dipangkatkan y – 1.
 x
y
= 1, jika y = 0
 x
y
= x * x
(y-1)
, jika y > 0
 Untuk x = 10 dan y = 0, hasil dari xy adalah 1.
Untuk x = 10 dan y = 3 hasilnya dapat
digambarkan sebagai berikut:

P ERBANDINGAN R EKURSIF
DAN I TERATIF

Rekursif Iteratif
Kode program biasanya lebih
ringkas dan mudah
dipahami
Kode program lebih panjang,
untuk beberapa
kasus solusi iteratif lebih sulit
diterapkan
Membutuhkan alokasi memori
yang besar
Relatif lebih kecil alokasi
memorinya
Tidak cocok ketika kinerja
tinggi diperlukan, karena
terjadi overhead pemanggilan
fungsi dalam jumlah
yang relatif besar
Cocok diterapkan ketika kinerja
aplikasi harus
diterapkan (hanya ada satu kali
pemanggilan
fungsi)
A RRAY
 Selama ini kita menggunakan satu variabel untuk
menyimpan 1 buah nilai dengan tipe data tertentu.
 int a1, a2, a3, a4, a5;
 Deklarasi variabel diatas digunakan untuk
menyimpan 5 data integer dimana masing-masing
variabel diberi nama a1, a2, a3, a4, dan a5.
 Di dalam C dan pemrograman yang lain, terdapat
suatu fasilitas untuk menyimpan data-data yang
bertipe data sama dengan suatu nama tertentu =
ARRAY/LARIK
 Array adalah suatu tipe data terstuktur yang
berupa sejumlah data sejenis (bertipe data sama)
yang jumlahnya tetap dan diberi suatu nama
tertentu.
 Array dapat berupa array 1 dimensi, 2 dimensi,
bahkan ndimensi.
 Elemen-elemen array bertipe data sama tapi bisa
bernilai sama atau berbeda-beda.
G AMBARAN A RRAY
0 4 9 1 3
0 1 2 3 4 index
value
Elemen-elemen array dapat diakses oleh program menggunakan
suatu indeks tertentu.
Pengaksesan elemen array dapat dilakukan berurutan atau
random berdasarkan indeks tertentu secara langsung.
Pengisian dan pengambilan nilai pada indeks tertentu dapat
dilakukan dengan mengeset nilai atau menampilkan nilai
pada indeks yang dimaksud.
D EKLARASI A RRAY
 tipe_data nama_array [ukuran];
 int bilangan[5];
 char nama[20];
 Tipe data sejenis
 Ada indeks yang teratur dan berurutan
 Bersifat statis, harus diketahui ukurannya terlebih
dahulu
 Contoh :
 Int bilangan[5];
 Char nama[10];
 Int umur[2] = {17, 35};
 Int bilangan[5]  berarti akan memesan tempat di
memori komputer sebanyak 5 tempat dengan indeks dari
0-4, dimana semua elemen bertipe integer semuanya.
 Char nama[10]  berarti akan memesan tempat di
memori komputer sebanyak 10 tempat dengan indeks
dari 0-9, dimana semua elemen bertipe karakter
semuanya.
 Int umur[2] = {17, 35}  berarti akan memesan tempat
di memori komputer sebanyak 2 tempat dengan indeks
dari 0-1, dimana semua elemen bertipe integer
semuanya. Kedua elemen tsb sekaligus diisi (inisialisasi)
yaitu pada umur[0] bernilai 17 dan umur[1] bernilai 35

T ERIMA K ASIH