You are on page 1of 10

PROGRAM MODULAR

NAMA : AMANDA RYANDO TAUFIK

NIM : 16063001

PROGRAM STUDI : PENDIDIKAN TEKNIK ELEKTRO

MATA KULIAH : APLIKASI DAN PEMPROGRAMAN KOMPUTER

DOSEN PEMBIMBING:

Dr. Hansi Effendi, S.T, M.Kom

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2018
1
A. Pengantar pemprograman modular
Modular programming adalah paradigma pemprograman yag pertama
kali diperkenalkan oleh information dan sytem insitute, Inc. Pada the national
symposium on modular programming pada 1968. Salah satu tokoh terkenal dari
modular programming adalah Larry Constantine.
Pemprograman modular merupakan teknik pemprograman dimana program
yang biasanya cukup besar dibagi bagi menjadi beberapa bagian yang lebih kecil
sehingga kompleksitas program menjadi berkurang, masalah yang kompleks dapat
lebih mudah diselesaikan, dan akhirnya perlu deinisialisasi, maka program tersebut
sebaiknya dibagi menjadi 3 bagian yang lebih spesifik sesuai fungsi masing masing.

B. PEMPROGRAMAN MODULAR DALAM C


Didalam bahasa C, modul modul yang berisi bagian program yg bersifat
spesifik dapat dituangkan kedalam suatu fungsi. Fungsi adalah bagian dari program
yang memiliki nama tertentu, yang digunakan dari bagian program yang
menggunakan fungsi tersebut.

a. Keuntungan meggunakan fungsi:


Dapat melakukan pendekatan top down dan divide and sonquer: program yang
besar dapat dipisah menjadi program program berukuran kecil.
a) Kode program menjadi lebih pendek mudah dibaca dan dipahami.
b) Dapat dikerjakan oleh beberapa orang dengan koordinasi yang mudah.
c) Mudah untuk meemukan kesalahan karena alur logikanya jelas
sementara kesalahan dapat dilokalisasi dalam suatu modul tertentu.
d) Modufikasi program dapat dilakukan pada suatu modul tertentu tanpa
mengganggu program keseluruhan.
e) Fungsi fungsi menjadikan program mempunyai struktur yang jelas.
Dengan memisahkan langkah langkah detail kesatu atau lebih fungsi,
maka fungsi utama akan menjadi lebih pendek, jelas,dan mudah
dimengerti. Hal seperti ini menunjukan suatu struktur program yang
baik.
f) Fungsi fungsi yang dapat digunakan untuk menghindari penulisan yang
sama yang ditulis secara berulang ulang. Langkah langkah program
yang sama dan sering digunakan berulangulang ddi program dapat
ditulis sekali saja secara terpisah dalam bentuk fumgsi. Selanjutnya
bagian program yang membutuhkan langkah langkah ini tidak perlu
selalu dituliskan lagi, tetapi cukup dengan memanggilnya.

b. Sifat-sifat modul/ fungsi yang baik:


a) Nilai fain-in tinggi. Artinya, semakin sering suatu modul dipanggil
oleh pengguna, semakin tinggi nilai fan-in nya.
b) Fan-out rendah. Artinya, semakin spesifik fungsi suatu modul maka
akan semakin rendah nilai fan-outnya.

2
c) Self-contained tinggi. Artinya, kemampuan untuk memenuhi
kebutuhannnya sendiri

c. Dalam membuat fungsi, yang perlu diperhatikan adalah:


a) Data yang diprlukan sebagai input.
b) Informasi apa yang harus diberikan oleh fungsi pemanggilnya.
c) Algoritma apa yang harus digunakan untuk mengolah data sehingga
menjadi informasi

d. Kategori function dalam C:


a) Standard Library function, yaitu fungsi-fungsi yang telah disediakan
oleh C dalam file header atau library-nya. Misalnya: system (“cls”),
printf(), getch(). Untuk fungsi ini kita harus mendeklarasikan terlebih
dahulu library yang akan digunakan, yaitu dengan menggunakan
preprosesor direktif: #include <conio.h>
b) Programmer-Defined function, adalah fungsi yang dibuat oleh
programmer sendiri. Fungsi ini memiliki nama tertentu yang unik
dalam program, letaknya terpisah dari program utama. Dan bisa
dijadikan include-kan untuk penggunanya.

C. STRUKTUR FUNGSI PADA BAHASA C


Deklarasi fungsi (function prototype/ declaration) terdiri atas judul fungsi dan
tipe data yang akan dikembalikan (dapat berupa tipe data tertentu atau bersifat void)
tanpa adanya kode implementasi fungsi tersebut.

a. Bentuk Umum Function Prototype

tipe_ data/ void nama_ fungsi ([arguman 1, argument 2, …]) ;

Hal-hal yang harus diperhatikan dalam pembuatan function prototype:

1. Deklarasi fungsi diakhiri dengan titik koma.


2. Tipe_data dapat berupa segala tipe data yang dikenal C, namun tipe data
dapat juga tidak ada dan diganti dengan void, yang berarti fungsi tersebut
tidak mengembalikan nilai apa pun.
3. Namun fungsi adalah nama yang unik.
4. Argumen dapat ada atau tidak (opsional), digunakan untukmenerima
parameter-parameter dalam fungsi. Antara argument dipisahkan oleh tanda
koma.
5. Tubuh fungsi atau definisi fungsi (function definition) yang terdiri atas
function prototype yang disertai kode implementasi dari fungsi tersebut,
berisi statement yang akan melakukan tugas yang diberikan oleh fungsi
tersebut.

3
Deklarasi fungsi harus ditulis di atas sebelum void main() dan tidak berisi
kode sama sekali,hanya berupa judul fungsi.

Contoh:

# i n c l u d e < s t d i o . h >
# i n c l u d e < c o n i o . h >

double Absolut (double X); / *deklarasi fungsi Absolut */

i n t m a i n ( )
{
f l o a t N i l a i ;
N i l a i = - 5 4 3 . 2 1 ;
pri nt f (" %7 .2f n i l ai m u t l aknya adal a h
% 7 . 2 f \ n " , N i l a i , A b s o l u t ( N i l a i ) ) ;
g e t c h ( ) ;
}
/ *-----Fungsi untuk memutlakkan nilai negatif-----* /
double Absolut(double X) / * definisi fungsi * /
{
if (X,0) X = -X;
return (X);
}

pada contoh program ini terlihat bahwa bagian program yang menggunakan
fungsi absolute () adalah sebagai berikut:

Printf (“%7,2f nilai mutlaknya adala h


%7,2fn” Nilai, Absolut (Nilai ));

Jika bagian dari program yang menggunakan fungsi diletakkan


sebelum definisi dari fungsi maka deklarasi fungsi diperlukan. Akan tetapi jika
bagian dari program yang menggunakan fungsi terletak setelah definisi dari
fungsi maka deklarasi dari fungsi dapat tidak dituliskan.

Contoh:

Pada contoh ini fungsi absolut () didefinisikan terlebih dahulu sebelum fungsi
ini digunakan, sehingga deklarasi dari fungsi tidak diperlukan lagi.

# i n c l u d e < s t d i o . h >
# i n c l u d e < c o n i o . h >

/ *----- Fungsi untuk memutlakan nilai negative ------ */


double Absolut (double X) */definisi fungsi */
{
if (x<0) X= -X;

4
return (X);

i n t m a i n ( )
{
float Nilai ;
Nilai = -543.21 ;
printf ("%7.2f nilai mutlaknya adalah% 7. 2f \n",
N i l a i , A b s o l u t ( N i l a i ) ) ;
getch ();
}

Walaupun untuk contoh seperti ini deklarasi fungsi tidak diperlukan, namun
untuk praktik pembuatan program yang baik sebaiknya tetap dituliskan.

b. Bentuk Umum Function Definition:

tipe_data/void nama-fungsi ([arguman 1, arguman 2,..] )


/ / f u n c t i o n p r o t o t y p e
{
//bagian ini merupakantubuh fungsi.
[variabel_lokal;]

[statement_1;]
[statement_2;]
...
[statement_3;]
[return (variabel)];
}

Hal-hal yang harus diperhatikan dalam pembuatan function definition:

1. Tubuh fungsi dapat berisi segala perintah yang dikenal oleh bahasa C.
Pada dasarnya pendefinisian tubuh fungsi adalah sama dengan membuat
program seperti biasa.
2. Return adalah keyword pengembalian nilai dari fungsi ke luar fungsi.
Return adalah wajib jika fungsi tersebutmengembalikan nilai berupa tipe data
tertentu, tetapi tidak wajib jika fungsi tersebut bersifat void.

5
D. FUNGSI DAN PROSEDUR
Dalam Pascal dikenal istiiah procedure dan function, dalam Basic dikenal sub
dan fungcion sedangkan dalam C, C#, PHP dan keturunan C lainnya hanya di kenal
istilah function . Prosedur/sub dalam Pascal/Basic adalah suatu kumpulan program
yang mengerjakan suatu tugas tertentu yang tidak mengembalikan nilai kembalian
prosedur tersebut. Fungsi dalam C adalah kumpulan program yang mengerjakan suatu
tugas tertentu yang bisa mengembalikan nilai atau tidak mengembalikan nilai (sama
dengan prosedur pada Pascal/sub di Basic). Di dalam C, ada 2 jenls fungsr, yaitu:

1. Fungsi yang tidak mengembalikan nilai (void) Ciri-ciri fungsi yang tidak
mengembalikan nilai adalah:
a) Fungsi yang void sering disebut juga prosedur.
b) Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai
keluaran yang didapat dari hasil proses fungsi tersebut.
c) Ciri: tidak adanya keyword return.
d) Ciri: tidak adanya tipe data di dalam deklarasi fungsi.
e) Ciri: menggunakan keyword void.
f) Tidak dapat Iangsung ditampilkan hasilnya.
g) Tidak memiliki nilai kembalian fungsi.

Contoh: system(“cls"), printf()

Contoh program fungsi void adalah:


void tampikan_jml (int a,int b)(

int jml;

jml = a + b;

printf(“ud“%d”, jml);

keyword void Juga dlgunakan jika suatu fungsi tidak mengandung parameter apa
pun. Contoh penggunaan parameter vold adala berikut:

void print-error(void){

printf (“error : unexpected error


occurred !");

6
2. Fungsl yang mengembahkan nilai (non-void)

Ciri-ciri fungsi yang mengembalikan nilai adalah:

a) Fungsi non-void disebut luga fungsi.


b) Disebut non-void karena mengembalikan nilai kembalian yang berasal
dari keluaran hasil proses fungsi tersebut.
c) Ciri ada keyword return.
d) Ciri ada tipe data yang mengawali deklarasi fungsi.
e) Ciri tidak ada keyword void.
f) Memlliki nilai kembalian.
g) Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data
tertentu sehingga dapat langsung ditampilkan hasilnya.

Contoh: sin(), getch()

Contoh program fungsi non-void adalah:

int jumlah(int a,int b){


i n t j m l ;
j m l = a + b ;
r e t u r n j m l ;
{

E. FUNGSI MAIN
Fungsi main merupakan fungsi yang spesial pada bahasa C. Setiap program
bahasa C pasti memiliki fungsi main. Sebuah program yang paling sederhana dalam
C, agar dapat dieksekusi (run) harus minimal harus memiliki 1 buab fungsi, yaitu
fungsi main(). Tanpa fungsi main, program C dapat dikompilasi tetapi tidak dapat
dieksekusi (harus dengan flag parameter -c, iika di UNIX). Pada saat program C
dijalankan, kompiler C akan mencari fungsi main() dan melaksanakan instruksi-
lnstruksi yang ada di sana.
fungsi main() sering dideklarasikan dalam 2 bentuk, yaitu:
1 int main{)
2 void main()

a. int main()

int main() berarti di dalam fungsi main tersebut harus terdapat keyword return
di bagian akhir dan mengembalikan nilai bertipe data int. Mengapa hasil return juga
harus bertipe int? Jawabnya, karena tipe data yang mendahului fungsi mainl) di atas
dideklarasikan dengan int. Jika sebuah program C dieksekusi maka status eksekusi
programnya akan dikembalikan. lika terminated successfully maka akan
dikembaiikan status 0. Sedangkan jika terminated unsuccessfully maka akan

7
dikembalikan nilai status tidak 0. Fungsi tersebut biasa digunakan pada lingkungan
UNIX.

b. void main()

void main{) berarti fungsi yang void dan tidak mengembalikan nilai status
program sehingga nilai status program tidak dapat diketahui. Biasanya dipakai pada
program C di lingkungan sistem operasi Windows.

F. FUNGSI REKURSIF
Fungsi rekursif adalah fungsi yang berisi dirinya sendiri atau fungsi yang
mendefinisikan dirinya sendiri, kadang kala sering disebut sebagai fungsi yang
memanggil dirinya sendiri. Fungsi rekursif merupakan fungsi matematis yang
berulang dan memiliki pola yang terstruktur, namun biasanya fungsi ini perlu
diperhatikan agar fungsi ini dapat berhenti dan tidak menghabiskan memori. Fungsi
rekursif merupakan fungsi yang harus digunakan secara hati-hati karena fungsi ini
dapat bersifat unlimited loop sehingga menyebabkan program hang up.
Beberapa ciri khas fungsi rekursif adalah sebagai berikut:
1 Kode program lebih singkat dan ada beberapa kasus yang memang lebih
mudah bila menggunakan fungsi rekursif.
2 Memakan memori yang lebih besar karena setiap kali bagian dirinya dipanggil
maka dibutuhkan sejumlah ruang memori tambahan.
3 Mengorbankan efisiensi dan kecepatan.

Bentuk umum fungsi rekursif:

return_data_type function_name(parameter_list) {
. . .
f u n c t i o n _ n a m e ( . . . )
. . .
}

8
Faktorial

5 ! = 5 x 4 x 3 x 2 x 1

4 ! = 4 x 3 x 2 x 1

B e r a r t i 5 ! = 5 x 4 !

Penyelesaian dengan metode iteratif:

Salah satu cara untuk menghitung adalah dengan menggunakan loop, yang
mengalikan masing-masing bilangan dengan hasil yang diperoleh sebelumnya.
Penyelesaian dengan cara ini dinamakan iteratif, yang mana secara umum dapat di
definisikan sebagai
berikut
n! = (n)(n-1)(n-2) ... (1)

Penyelesaian bidang iteratif :

# i n c l u d e < s t d i o . h >
I n t f a c t _ i t ( i n t n )
{
I n t i , f a k ;
/*********************************************************** * Menghitung sebu
************************************************************
t e m p = 1 ;
f o r ( i = 1 ; i < = n ; i + + )
f a k = f a k * i ;
r e t u r n ( f a k ) ;
}

I n t m a i n ( )
I n t f a c ;
Printf ( “masukan berapa faktorial : “ ) ;
s c a n f ( “ % d ” , & f a c ) ;
print f ( “Hasil faktorial dari adalah : %d \n”,
f a c t _ i t ( f a c ) ;
}

9
Penyelesaian dengan metode rekursif:

Cara lain untuk menyelesaikan permasalahan di atas adalah dengan cara


rekursi, dimana n! Adalah hasil dari n dengan(n-1). Penyelesaian (n-1)! Adalah sama
dengan n!, sehingga (n-1)! adalah n-1 dikalikan dengan (n-2)!, dan (n-2) dikalikan
dengan (n-3)! Dan seterusnya sampai dengan n=1, yang mana kita menghentikan
perhitungan n!

n! = 1 jika n = 0 dan 1
n! = n*(n-1)!
0! =1
1! =1*(1-1)!
=1*0!
= 1 * 1
= 1
2! = 2*(2-1)!
= 2 * 1
= 2
3! = 3*(3-1)!
= 3 * 2 !
= 6

DAFTAR PUSTAKA

Rachmat C, Antonius.2010.Algoritma dan Pemrograman dengan Bahasa


C.Yogyakarta: Andi Yogyakarta

10

You might also like