Anda di halaman 1dari 19

Pertemuan 3

Pemrograman Procedural
T. Informatika, PT_3 1
Pemrograman Procedural
Perancangan Top-down
Menggunakan Fungsi
Pemrograman Terstruktur?
Pemrograman terstruktur, atau yang
disebut juga pemrograman modular,
menyelesaikan persoalan pemrograman
dengan merancang modul-modul
(prosedur-prosedur).
T. Informatika, PT_3 2
(prosedur-prosedur).
Metode perancangan yang biasa
digunakan dalam pemrograman terstruktur
adalah perancangan secara top-down.
Perancangan Top-down dan
Structure Chart
Perancangan top-down adalah suatu metode
perancangan algoritme yang dimulai dengan
memecah masalah utama menjadi beberapa
submasalah, dan jika perlu memecah lagi setiap
submasalah menjadi beberapa sub-submasalah,
T. Informatika, PT_3 3
submasalah menjadi beberapa sub-submasalah,
dan seterusnya.
Structure chart adalah cara pendokumentasian
yang menunjukkan hubungan antara sub-
submasalah dari masalah secara keseluruhan
Contoh
Masalah :
Ingin menggambar
gambar orang
seperti disamping
T. Informatika, PT_3 4
Analisis :
Dibutuhkan 4 komponen untuk menggambar
orang, yaitu lingkaran (1), garis mendatar (1),
garis berpotongan(2)
Design/Perancangan top-down :
Algoritme :
1. Gambar lingkaran
2. Gambar segitiga
2.1. Gambar garis berpotongan
2.2. Gambar garis mendatar
3. Gambar garis berpotongan
Structure Chart :
T. Informatika, PT_3 5
Structure Chart :
Masalah Utama
Submasalah
Sub-submasalah
Gambar Orang
Gambar Lingkaran Gambar Segitiga Gambar Garis Berpotongan
Gambar Garis Berpotongan Gambar Garis Mendatar
Design Top-down vs Fungsi
Hasil dari design top-down selanjutnya
diimplementasikan dalam program bahasa
C berupa fungsi-fungsi.
T. Informatika, PT_3 6
C berupa fungsi-fungsi.
Umumnya, satu fungsi untuk setiap satu
sub masalah.
Contoh program
#include <stdio.h>
void draw_circle(void);
void draw_intersect(void);
void draw_base(void);
void draw_triangle(void);
int main(void)
{
draw_circle();
void draw_intersect(void)
{
printf( /\\ \n);
printf( / \\ \n);
printf( / \\ \n);
}
void draw_base(void)
{
T. Informatika, PT_3 7
draw_circle();
draw_triangle();
draw_intersect();
return(0);
}
void draw_circle(void)
{
printf( * \n);
printf(* *\n);
printf( * *\n);
}
{
printf( _____ \n);
}
void draw_triangle(void)
{
draw_intersect();
draw_base();
}
Lebih jauh mengenai fungsi
Sebelum bisa direfer, suatu fungsi harus dideklarasikan terlebih
dahulu dengan cara menyisipkan function prototype sebelum main
function.
Function prototype memberitahu compiler mengenai:
tipe data dari fungsi
nama fungsi
T. Informatika, PT_3 8
nama fungsi
argumen yang diperlukan fungsi
Contoh :
#include <stdio.h> #include <stdio.h>
void draw_circle(void); void draw_circle(void);
void draw_intersect(void); void draw_intersect(void);
void draw_base(void); void draw_base(void);
void draw_triangle(void); void draw_triangle(void);
int main(void) int main(void)
:
Selain menuliskan Function prototype, programer juga harus
menuliskan Function definition, yang berisi spesifikasi mengenai
operasi dari fungsi.
Bentuk umum dari Function definition:
Tipe_fungsi Nama_fungsi (daftar format parameter)
{
Deklarasi variabel lokal
Executable statements
T. Informatika, PT_3 9
}
Contoh:
void draw_circle(void) void draw_circle(void)
{{
printf( * printf( * \\n); n);
printf(* * printf(* *\\n); n);
printf( * * printf( * *\\n); n);
}}
Argumen input adalah argumen yang digunakan
untuk memberi informasi kepada fungsi.
Argumen output adalah argumen yang
digunakan untuk mengembalikan hasil dari
pemanggilan fungsi.
Jumlah argumen pada saat pemanggilan fungsi
harus sama dengan jumlah parameter dalam
T. Informatika, PT_3 10
harus sama dengan jumlah parameter dalam
function prototype.
Argumen pertama dikatikan dengan parameter
pertama, argumen kedua dikaitkan dengan
parameter kedua, dan seterusnya.
Tipe data dari argumen dan parameter harus
sama.
Berdasarkan jumlah argumen dan tipe
fungsi, terdapat bermacam-macam fungsi
sebagi berikut:
Fungsi tanpa hasil dan tanpa argumen
Fungsi tanpa hasil dengan satu argumen
input
T. Informatika, PT_3 11
input
Fungsi satu hasil dengan satu argumen input
Fungsi satu hasil dengan dua argumen input
dll
Berdasarkan jumlah argumen dan tipe
fungsi, terdapat bermacam-macam fungsi
sebagi berikut:
Fungsi tanpa hasil dan tanpa argumen
Fungsi tanpa hasil dengan satu argumen
input
void draw_circle(void) void draw_circle(void)
T. Informatika, PT_3 12
input
Fungsi satu hasil dengan satu argumen input
Fungsi satu hasil dengan dua argumen input
dll
void draw_circle(void) void draw_circle(void)
{{
printf( * printf( * \\n); n);
printf(* * printf(* *\\n); n);
printf( * * printf( * *\\n); n);
}}
::
::
draw_circle(); draw_circle();
::
Berdasarkan jumlah argumen dan tipe
fungsi, terdapat bermacam-macam fungsi
sebagi berikut:
Fungsi tanpa hasil dan tanpa argumen
Fungsi tanpa hasil dengan satu argumen
input
void kotak_berangka(double angka) void kotak_berangka(double angka)
T. Informatika, PT_3 13
input
Fungsi satu hasil dengan satu argumen input
Fungsi satu hasil dengan dua argumen input
dll
void kotak_berangka(double angka) void kotak_berangka(double angka)
{{
printf(********** printf(**********\\n); n);
printf(* * printf(* *\\n); n);
printf(* %6.2f * printf(* %6.2f *\\n, n,
angka); angka);
printf(* * printf(* *\\n); n);
printf(********** printf(**********\\n); n);
}}
::
::
kotak_berangka(135.68); kotak_berangka(135.68);
Berdasarkan jumlah argumen dan tipe
fungsi, terdapat bermacam-macam fungsi
sebagi berikut:
Fungsi tanpa hasil dan tanpa argumen
Fungsi tanpa hasil dengan satu argumen
input
double hitung_keliling(double r) double hitung_keliling(double r)
{{
return(2.0 * 3.14 * r) return(2.0 * 3.14 * r)
}}
::
::
jejari= 10.0; jejari= 10.0;
keliling= hitung_keliling(jejari); keliling= hitung_keliling(jejari);
T. Informatika, PT_3 14
input
Fungsi satu hasil dengan satu argumen input
Fungsi satu hasil dengan dua argumen input
dll
Berdasarkan jumlah argumen dan tipe
fungsi, terdapat bermacam-macam fungsi
sebagi berikut:
Fungsi tanpa hasil dan tanpa argumen
Fungsi tanpa hasil dengan satu argumen
input
double scaling(double x, int n) double scaling(double x, int n)
{{
double faktor_skala; double faktor_skala;
faktor_skala = faktor_skala =
pow(10,n); pow(10,n);
return(x * faktor_skala); return(x * faktor_skala);
}}
::
::
T. Informatika, PT_3 15
input
Fungsi satu hasil dengan satu argumen input
Fungsi satu hasil dengan dua argumen input
dll
::
s=scaling(2.5,2); s=scaling(2.5,2);
::
Keuntungan pengimplementasian fungsi
(untuk setiap satu sub masalah) :
Procedural abstraction
Teknik pemrograman dimana main function-nya
T. Informatika, PT_3 16
Teknik pemrograman dimana main function-nya
terdiri dari serangkaian pemanggilan fungsi dan
setiap fungsi diimplementasikan secara terpisah.
Reuse of function subprograms
Pustaka fungsi
Selain programer
bisa menuliskan
fungsinya sendiri,
programer juga
bisa memanggil
Contoh fungsi yang terdapat dalam
pustaka math.h
double ceil(double x) double cos(double x)
double exp(double x) double fabs(double x)
T. Informatika, PT_3 17
bisa memanggil
fungsi yang sudah
disediakan oleh C.
Fungsi-fungsi
tersebut tersimpan
dalam pustaka.
double floor(double x) double log(double x)
double log10(double x) double pow(double x,
double y)
double sin(double x) double sqrt(double x)
1. Tulis fungsi untuk menghitung akar
persamaan kuadrat berikut:
2. Perhatikan segitiga berikut :
cos _ 2 ???
0
2 2 2
2
bc c b
c bx ax


0
2
c bx ax
b
c
???

T. Informatika, PT_3 18
Seandainya b, c dan diketahui, maka
panjang sisi ??? bisa dihitung dengan rumus :
Tulis fungsi untuk menghitung sisi ???.
cos _ 2 ??? bc c b
c
cos _ 2 ???
2 2 2
bc c b
Referensi
Bab 3, Top Down with Functions,
Problem Solving and Program Design in
C, Jeri R. Hanly dan Elliot B. Koffman,
Addison Wesley, 2002
T. Informatika, PT_3 19
Addison Wesley, 2002

Anda mungkin juga menyukai