desain top down

19
Pertemuan 3 Pertemuan 3 Desain TOP DOWN Desain TOP DOWN T. Informatika, PT_3 1

Upload: dimara-hakim

Post on 17-Jun-2015

3.644 views

Category:

Technology


25 download

TRANSCRIPT

Page 1: Desain Top Down

Pertemuan 3Pertemuan 3Desain TOP DOWNDesain TOP DOWN

T. Informatika, PT_3 1

Page 2: Desain Top Down

Pemrograman Pemrograman Terstruktur?Terstruktur?Pemrograman terstruktur, atau

yang disebut juga pemrograman modular, menyelesaikan persoalan pemrograman dengan merancang modul-modul (prosedur-prosedur).

Metode perancangan yang biasa digunakan dalam pemrograman terstruktur adalah perancangan secara top-down.

T. Informatika, PT_3 2

Page 3: Desain Top Down

Perancangan Top-down dan Perancangan Top-down dan Structure ChartStructure ChartPerancangan top-down adalah suatu

metode perancangan algoritma yang dimulai dengan memecah masalah utama menjadi beberapa submasalah, dan jika perlu memecah lagi setiap submasalah menjadi beberapa sub-submasalah, dan seterusnya.

Structure chart adalah cara pendokumentasian yang menunjukkan hubungan antara sub-submasalah dari masalah secara keseluruhan

T. Informatika, PT_3 3

Page 4: Desain Top Down

ContohContohMasalah :

Ingin menggambar gambar orang seperti disamping

Analisis :Dibutuhkan 4 komponen untuk menggambar orang, yaitu lingkaran (1), garis mendatar (1), garis berpotongan(2)

T. Informatika, PT_3 4

Page 5: Desain Top Down

Design/Perancangan top-down :Algoritma :

1. Gambar lingkaran2. Gambar segitiga

2.1. Gambar garis berpotongan2.2. Gambar garis mendatar

3. Gambar garis berpotongan Structure Chart :

Masalah Utama

Submasalah

Sub-submasalah

T. Informatika, PT_3 5

Gambar Orang

Gambar Lingkaran Gambar Segitiga Gambar Garis Berpotongan

Gambar Garis Berpotongan Gambar Garis Mendatar

Page 6: Desain Top Down

Design Top-down vs Design Top-down vs FungsiFungsi

Hasil dari design top-down selanjutnya diimplementasikan dalam program bahasa C berupa fungsi-fungsi.

Umumnya, satu fungsi untuk setiap satu sub masalah.

T. Informatika, PT_3 6

Page 7: Desain Top Down

Contoh programContoh 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();draw_triangle();draw_intersect();return(0);

}void draw_circle(void){

printf(“ * \n”);printf(“* *\n”);printf(“ * *\n”);

}

void draw_intersect(void){

printf(“ /\\ \n”);printf(“ / \\ \n”);printf(“ / \\ \n”);

}void draw_base(void){

printf(“ _____ \n”);}void draw_triangle(void){

draw_intersect();draw_base();

}

T. Informatika, PT_3 7

Page 8: Desain Top Down

Lebih jauh mengenai Lebih jauh mengenai fungsifungsi 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◦ argumen yang diperlukan fungsi

Contoh :

T. Informatika, PT_3 8

#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) :

Page 9: Desain Top Down

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 lokalExecutable statements

}Contoh:

T. Informatika, PT_3 9

void draw_circle(void)void draw_circle(void){{

printf(“ * \n”);printf(“ * \n”);printf(“* *\n”);printf(“* *\n”);printf(“ * *\n”);printf(“ * *\n”);

}}

Page 10: Desain Top Down

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 ‘function prototype’.

Argumen pertama dikatikan dengan parameter pertama, argumen kedua dikaitkan dengan parameter kedua, dan seterusnya.

Tipe data dari argumen dan parameter harus sama.

T. Informatika, PT_3 10

Page 11: Desain Top Down

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◦Fungsi satu hasil dengan satu argumen

input◦Fungsi satu hasil dengan dua argumen

input ◦dll

T. Informatika, PT_3 11

Page 12: Desain Top Down

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◦Fungsi satu hasil dengan satu argumen

input◦Fungsi satu hasil dengan dua argumen

input ◦dll

T. Informatika, PT_3 12

void draw_circle(void)void draw_circle(void){{

printf(“ * \n”);printf(“ * \n”);printf(“* *\n”);printf(“* *\n”);printf(“ * *\n”);printf(“ * *\n”);

}}::::draw_circle();draw_circle();::

Page 13: Desain Top Down

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◦Fungsi satu hasil dengan satu argumen

input◦Fungsi satu hasil dengan dua argumen

input ◦dll

T. Informatika, PT_3 13

void kotak_berangka(double void kotak_berangka(double angka)angka){{

printf(“**********\n”);printf(“**********\n”);printf(“* *\n”);printf(“* *\n”);printf(“* %6.2f *\n”, printf(“* %6.2f *\n”, angka);angka);printf(“* *\n”);printf(“* *\n”);printf(“**********\n”);printf(“**********\n”);

}}::::kotak_berangka(135.68);kotak_berangka(135.68);

Page 14: Desain Top Down

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◦Fungsi satu hasil dengan satu argumen

input◦Fungsi satu hasil dengan dua argumen

input ◦dll

T. Informatika, PT_3 14

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);

Page 15: Desain Top Down

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◦Fungsi satu hasil dengan satu argumen

input◦Fungsi satu hasil dengan dua argumen

input ◦dll

T. Informatika, PT_3 15

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 * return(x * faktor_skala);faktor_skala);

}}::::s=scaling(2.5,2);s=scaling(2.5,2);::

Page 16: Desain Top Down

Keuntungan pengimplementasian fungsi (untuk setiap satu sub masalah) :◦Procedural abstraction

Teknik pemrograman dimana ‘main function’-nya terdiri dari serangkaian pemanggilan fungsi dan setiap fungsi diimplementasikan secara terpisah.

◦Reuse of function subprograms

T. Informatika, PT_3 16

Page 17: Desain Top Down

Pustaka fungsiPustaka fungsi

Selain programer bisa menuliskan fungsinya sendiri, programer juga bisa memanggil fungsi yang sudah disediakan oleh C. Fungsi-fungsi tersebut tersimpan dalam pustaka.

Contoh fungsi yang terdapat dalam pustaka math.h

double ceil(double x) double cos(double x)

double exp(double x) double fabs(double x)

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)

T. Informatika, PT_3 17

Page 18: Desain Top Down

TUGAS (kumpulkan pada pertemuan berikutnya) :

menghitung akar persamaan kuadrat berikut:

Tentukan :1. Algoritmanya2. Structure chart 3. Implementasikan dalam program

02 cbxax

T. Informatika, PT_3 18

Page 19: Desain Top Down

ReferensiReferensiBab 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