pemrograman terstruktur

36
Bahan Kuliah Teori : Pemrograman Pemrograman Terstruktur Terstruktur CopyRight@200 4 Herianto Cover

Upload: meiland-meebo

Post on 12-Jun-2015

5.506 views

Category:

Education


4 download

DESCRIPTION

Pemrograman terstruktur RE-UPLOAD

TRANSCRIPT

Page 1: Pemrograman terstruktur

Bahan Kuliah Teori :

Pemrograman Pemrograman TerstrukturTerstruktur

CopyRight@2004

Herianto

Cover

Page 2: Pemrograman terstruktur

Sistematika MateriSistematika Materi

• Konsep pemrograman secara umum :Konsep pemrograman secara umum :Perkembangan pemrograman komputer

Sejarah bahasa pemrograman Jenis bahasa pemrograman

Perbandingan bahasa pemrograman

• Ide Pemrograman terstruktur : Ide Pemrograman terstruktur : Defenisi, Tujuan, Kriteria

• Metoda dasar pemrograman terstruktur Metoda dasar pemrograman terstruktur GOTOLess : Sekuensial, Selection, Looping

• Perbandingan bahasa pemrograman Perbandingan bahasa pemrograman (Berdasarkan kriteria pemrograman terstruktur)

• Metoda desain pemrograman terstruktur Metoda desain pemrograman terstruktur Modular, TopDown,…

• OOP, Pemrograman berorientasi objekOOP, Pemrograman berorientasi objek(Lebih terstuktur dari ide pemrograman terstruktur ?)

• Struktur pemrograman visualStruktur pemrograman visual

Sistematika Materi

Page 3: Pemrograman terstruktur

Perkembangan (cara) mem-program komputer :Perkembangan (cara) mem-program komputer :

1. Pemrograman dengan mengatur/menyambung titik jumper di rangkaian komputer

2. Pemrograman dengan langsung menulis kode biner ke memory, direpresentasikan melalui kode hexa, kode biner disebut juga bahasa mesin komputer

3. Pemrograman dengan bahasa assembler : Perintah-perintahnya berkaitan langsung dengan struktur internal hardware

4. Pemrograman dengan bahasa tingkat tinggi/menengah : Perintah-perintahnya mirip dengan bahasa manusia/english

Konsep Pemrograman

• Mem-program komputer, secara teknis bertujuan :Mem-program komputer, secara teknis bertujuan : Memasukkan/ menyusun sejumlah instruksi dan data ke memory, yang selanjutnya akan diambil satu persatu oleh CPU/Processor untuk dilaksanakan

Page 4: Pemrograman terstruktur

CPU

Programmer Instruksi A

Instruksi D

Data D

Instruksi B

Data A

Instruksi C

Sejumlah Instruksi dan data

00011100

00000101

00111101

00010010

00101101

……….

……….

……….

……….

……….

0002

0100

0101

……….0001

0102

0103

Susunan instruksi dan data dalam memory

Mov A,05Mov B,12Add A,B

Assembly

A = 05 + 12

High/Medium Level

3C053D122D

Hexa

Tool

Ilustrasi Pemrograman KomputerIlustrasi Pemrograman Komputer

Page 5: Pemrograman terstruktur

Sejarah bahasa PemrogramanSejarah bahasa Pemrograman

Page 6: Pemrograman terstruktur

Generasi dan Jenis Bahasa Generasi dan Jenis Bahasa PemrogramanPemrograman

Generasi bahasa pemrograman:

• Generasi I : machine language

• Generasi II : assembly language : Asssembler

• Generasi III : high-level programming language: C, PASCAL, dsb.

• Generasi IV : 4 GL (fourth-generation language): Prolog, SQL, Visual tool, dsb

Jenis bahasa pemrograman berdasarkan metodanya :

• Pemrograman tidak terstruktur : Basica, Fortran, …

• Pemrograman terstruktur : Pascal, C/C++, …

• Pemrograman berorientasi objek : C++, Java, …

• Pemrograman visual : VB, Delphi, …

Jenis bahasa pemrograman berdasarkan bentuk (corak kode) nya :

• Pemrograman prosedural : Pascal, C, …

• Pemrograman fungsional : Lisp

• Pemrograman deklaratif : Prolog

• Pemrograman berorientasi objek : Java

• Pemrograman prosedural sekaligus berorientasi objek : C++

Jenis bahasa pemrograman berdasarkan tujuan (hasil) :

• Pemrograman stand-alone

• Pemrograman client/server

• Pemrograman web : HTML, Script

• Pemrograman jaringan

Jenis bahasa pemrograman berdasarkan cara penterjemahan :

• Interpreter : Basica, Foxpro, Matlab,…

• Compiler : Turbo Basic, Pascal, C/C++, …

Page 7: Pemrograman terstruktur

Jenis Program Bahasa Terbaik Bahasa Terburuk

Data terstruktur ADA, C /C++, PASCAL Assembler, BASIC

Proyek cepat BASIC PASCAL, ADA, Assembler

Eksekusi cepat Assembler, C BASIC, Intrepreter Language

Kalkulasi matematika FORTRAN  PASCAL

Menggunakan memori dinamis PASCAL, C BASIC

 Lingkungan bermemori terbatas BASIC, Assembler, C FORTRAN

Program real-time ADA, Assembler, C BASIC, FORTRAN

Manipulasi string BASIC, PASCAL C

Program mudah dikelola PASCAL, ADA C, FORTRAN

(Mc. Connell)

Bahasa Rasio

Assembler 1: 1

ADA 1 : 4.5

Quick / Turbo / Basic 1 : 5

C 1 : 2.5

FORTRAN  1 : 3

PASCAL 1 : 3.5

Berdasarkan tujuan tertentu :

Berdasarkan jumlah instruksi dibandingkan dengan assembler

(Mc. Connell)

Perbandingan Bahasa PemrogramanPerbandingan Bahasa Pemrograman(Umum)(Umum)

KriteriaBahasa Pemrograman

Basic Pascal C Foxpro

Berdasarkan kriteria pemrograman terstruktur :

Tabel ini akan dilengkapi selama perkuliahan berlangsung

Page 8: Pemrograman terstruktur

Proses Pembuatan AplikasiProses Pembuatan Aplikasi

Page 9: Pemrograman terstruktur

Contoh Proses Pembuatan Aplikasi (1) :Contoh Proses Pembuatan Aplikasi (1) :

Permasalahan 1 :

Si Upik selalu membeli buah apel untuk dibagikan ke beberapa orang anak yatim Ia kesulitan untuk membagi secara adil berapa buah apel setiap anak mendapatkan jika ia beli N buah. Karena sering ia lakukan, ia membutuhkan aplikasi untuk menghitung kebutuhan tersebut.

Proses pemecahan :

Permasalahan di atas dapat disederhanakan dengan menggambarkan bagaimana dialog di layar komputer yang diharapkan terjadi terhadap aplikasi yang dibutuhkan tersebut :

Contoh dialog yang diharapkan :Aplikasi pembagian buah apel

Ketik jumlah buah apel yang dibeli : … {ENTER}

Ketik jumlah anak yang akan diberi : … {ENTER}

Solusi :

Setiap anak mendapatkan : … buah apel

Dari gambaran tersebut dapat ditentukan bahwa program membutuhkan 2 input dan 1 output.

Misal kedua input yang dibutuhkan disebut A dan N dan output disebut C.

Maka secara matematis hubungan input dan output dapat dimodelkan dengan :

C = A / N

Contoh data :

Jika A = 25 dan N = 5, maka secara manual dapat dihitung :C = 25 / 5C = 5

Urutan perhitungan tersebut (algoritma) jika dilakukan komputer adalah :

-Memasukkan nilai ke A-Memasukkan nilai ke N-Menghitung C = A / N-Mencetak hasil C

Page 10: Pemrograman terstruktur

Contoh Proses Pembuatan Aplikasi (2) :Contoh Proses Pembuatan Aplikasi (2) :

Permasalahan 2 :

Si Buyung kelas 2 SMU. Oleh guru matematik-nya ia sering diminta menghitung soal-soal persamaan kuadrat yang jumlahnya lumayan banyak. Si Buyung memang jago matematik, tapi dia juga sedang mendalami pemrograman komputer. Dia tahu kalau masalah di atas dapat diatasi dengan membuatkan aplikasinya. Proses pemecahan :

Permasalahan di atas juga dapat disederhanakan dengan menggambarkan bagaimana dialog di layar komputer yang diharapkan terhadap aplikasi tersebut :

Contoh dialog yang diharapkan :

Aplikasi menghitung persamaan kuadrat

Masukkan nilai koefisien A : … {ENTER}

Masukkan nilai koefisien B : … {ENTER}

Masukkan nilai koefisien C : … {ENTER}

Penyelesaian :

Solusi merupakan 2 akar real yang berbeda

Solusi 1 (X1) = …

Solusi 2 (X2) = …

Dari dialog tersebut diketahui bahwa program membutuhkan 3 input dan 2 output.

Misal kedua input yang dibutuhkan disebut A, B dan C dan output disebut X1 dan X2.

Maka secara matematis, dengan menggunakan rumus abc yang telah baku, proses mendapat X1 dan X2 dapat dihitung seperti berikut :

X1 = (-b+D)/2A

X2 = (-b-D)/2A

Dimana D = b2 – 4AC

Sebelum menghitung X1 dan X2 perlu diselidiki apakah nilai A=0 atau tidak, sebab pada persamaan kuadrat nilai A tidak boleh 0

Juga harus dihitung terlebih dahulu nilai D, dan diselidiki :

Jika D>0; Penyelesaian (X1 dan X2) merupakan nilai real dan berbeda

Jika D = 0; penyelesaian (X1 dan X2) merupakan nilai real dan sama (X1=X2)

Jika D<0; penyelesaian (X1 dan X2) merupakan nilai imajiner

Page 11: Pemrograman terstruktur

Lanjutan

AWAL :- Memasukkan nilai ke A- Memasukkan nilai ke B- Memasukkan nilai ke C- Selidiki apakah A=0, jika YA melompat ke

AKHIR- Menghitung nilai D = b2 – 4AC- Menyelidiki nilai D,

- Jika D>0 melompat ke REAL_BEDA- Jika D=0 melompat ke REAL_SAMA- JIKA D<0 melompat ke IMAJINER

REAL_BEDA :- X1 = (-b+D)/2A - X2 = (-b-D)/2A- Mencetak hasilnya- Melompat ke AKHIR

REAL_SAMA :- X1 = -b / 2A- X2 = X1- Mencetak hasilnya- Melompat ke AKHIR

IMAJINER :- D = absolute(D)- X1 = -b/2A + D/2A i- X2 = -b/2A - D/2A I- Mencetak hasilnya

AKHIR :- Menanyakan apakah ingin menghitung lagi, jika

YA melompat ke AWAL

Proses pemecahan tersebut urutannya (algoritma) adalah : Pembuatan Kode Program :Pembuatan Kode Program :

Setelah kita dapatkan algoritma dari permasalahan, maka langkah selanjutnya adalah membuat kode programnya

Kode program permasalahan 1

Kode program dari permasalahan 1 di atas bersifat sekuensial murni. Artinya tidak membutuhkan perintah untuk melompat dari satu bagian program ke bagian program lain. Kode program seperti ini sangat mudah untuk membuatnya menggunakan bahasa pemrograman apa pun

Kode Program permasalahan 2

Kode program dari permasalahan 2 tidak lagi bersifat sekuensial murni, karena membutuhkan perintah untuk melompat ke bagian program tertentu. Untuk melompat ke bagian program tertentu dapat menggunakan perintah GOTO atau dapat juga dengan menggunakan metoda metoda PEMROGRAMAN TERSTRUKTURPEMROGRAMAN TERSTRUKTUR

Page 12: Pemrograman terstruktur

Simbol-simbol untuk menggambarkan Flow ChartSimbol-simbol untuk menggambarkan Flow Chart

Digunakan untuk menunjukkan awal dan akhir program

Digunakan untuk memberikan nilai awal (inisial) pada suatu variabel atau counter

Digunakan untuk proses, pengolahan arithmatik, dan pemindahan data

Digunakan untuk mewakili operasi perbandingan logika yang dibutuhkan pada Selection dan Looping

Digunakan untuk proses yang detailnya dijelaskan terpisah, misalkan untuk menyatakan prosedur, atau sub program

Digunakan untuk hubungan arus proses yang terputus masih di halaman yang sama

Digunakan untuk hubungan arus proses yang terputus di halaman yang berbeda

Digunakan untuk menghubungan antar simbol/elemen yang lain dan sekaligus menyatakan arah aliran

Digunakan untuk menyatakan operasi memasukkan data/input dan menampilkan data/output

Page 13: Pemrograman terstruktur

Contoh Flow Chart :Contoh Flow Chart :

Start

Masukkan data jumlah apel ke var AMasukkan data jumlah anak ke var N

C = A / N

Tampilkan : Setiap anak mendapat C apel

end

Start

Masukkan nilai koefisien A ke var AMasukkan nilai koefisien B ke var BMasukkan nilai koefisien C ke var C

A=0

Menanyakan apakah ingin menghitung lagi ? LG

end

D = b2 – 4AC

D>0

D=0

Hitung penyelesaian realDengan akar berbeda

Hitung penyelesaian realDengan akar sama

Hitung penyelesaian Bilangan imajiner

Permasalahan 1 :

Permasalahan 2 :

LG=Ya

Page 14: Pemrograman terstruktur

Ide Pemrograman terstrukturIde Pemrograman terstruktur

Pemrograman yaitu aktivitas membuat program, yaitu menyusun sejumlah perintah yang dikenal komputer

Terstruktur dapat berarti terpola, bentuk yang mengikuti aturan tertentu, juga berarti sesuatu yang sistematis

Pemrograman Terstruktur berarti : ………………………………………………………

………………………………………………………

Orang pertama yang mencetuskan ide pemrograman terstruktur adalah Profesor Edsger W. Dijkstra dari University of Eindhoven, Nederland. Ide utamanya adalah bahwa statemen GOTO sebaiknya tidak digunakan di dalam pemrograman terstruktur, sebab bisa membuat program menjadi ruwet.

Ide ini ditanggapi oleh HD Milis, yang beranggapan bahwa pemrograman terstruktur semestinya tidak hanya dihubungkan dengan tanpa penggunaan GOTO, tetapi yang lebih utama adalah struktur program itulah yang menentukan apakah suatu pemrograman terstruktur atau tidak

Kriteria pemrograman terstruktur :- Struktur programnya; jelas dan tegas - Fasilitas penulisan kode program; jelas dan

tegas - Statemen untuk kebutuhan Selection dan

Looping; lengkap - Fasilitas menyatakan berbagai type data

(struktur data); lengkap dan tegas - Fasilitas pemberian komentar; lengkap - Fasilitas instruksi yang tersedia (operasi

arithmatik/matematik, string, …); lengkap - Fasilitas modular (baik internal maupun

eksternal); lengkap - Fasilitas debugging, mudah dan jelas

Ide pemrograman terstruktur muncul karena jumlah baris program semakin lama semakin besar, tentu saja hal ini terjadi karena diinginkan aplikasi yang lengkap dan lebih berkualitas

Dengan ide pemrograman terstruktur diharapkan dapat membantu manajemen source code (kode program) sehingga program mudah untuk dikelola bagi kepentingan selanjutnya

Tujuan utama pemrograman terstruktur adalah : agar program-program besar menjadi lebih mudah ditelusuri alur logikanya, mudah untuk dimodifikasi (dikembangkan) dan mudah pula untuk ditemukan bagian yang salah ketika program sedang diuji.

Page 15: Pemrograman terstruktur

Filosofis Terstruktur

a b c d

- Mana yang susunannya terstruktur (teratur, …)

- Mana yang lebih mudah anda hafalkan

- Jika akan ditambah satu batang lagi, dimana harus diletakkan agar posisinya dapat dinilai benar

- Jika susunannya dirombak, mana yang lebih mudah untuk disusun kembali

Page 16: Pemrograman terstruktur

Metoda dasar pemrograman terstrukturMetoda dasar pemrograman terstruktur

Ide awal penerapan pemrograman terstruktur yaitu dengan menghindari penggunaan GOTO untuk melompat ke bagian program tertentu

Kegunaan GOTO untuk melompat ke baris program tertentu, secara umum dapat dibagi ke dalam 2 kelompok :

1.Melompat ke bagian bawah program dari posisi program saat ini

2.Melompat ke bagian atas program dari posisi program saat ini

Dengan pemrograman terstruktur;Jika ada kebutuhan melompat ke bagian bawah, dapat digantikan dengan perintah Selection (If, Case, Select, Switch,…)Jika ada kebutuhan melompat ke bagian atas, dapat digantikan dengan perintah Looping (for, While, repeat-until,…)

Prinsip utamanya adalah, program tidak boleh melompat ke atas, kecuali untuk keperluan pengulangan

Untuk itu dalam pemrograman terstruktur hanya dikenal 3 struktur :

1. Sekuensial, yaitu program yang tidak memiliki lompatan. Baris program dijalankan secara normal (lurus) satu per-satu dari atas ke bawah

2. Selection, yaitu program yang memiliki pilihan apakah harus menjalankan baris program sesuai dengan urutannya atau melompati sejumlah baris program tersebut

3. Looping, yaitu program yang juga mengandung pilihan apakah akan mengulangi program yang sudah pernah dijalankan sebelumnya atau tidak

Page 17: Pemrograman terstruktur

Beberapa bentuk logika Beberapa bentuk logika terstruktur dengan flow chartterstruktur dengan flow chart

1. Struktur urut sederhana (Simple sequence)

2. Struktur 1 pilihan dengan IF-THEN

3. Struktur 2 pilihan dengan IF-THEN-ELSE

Page 18: Pemrograman terstruktur

4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF

4b. Struktur banyak pilihan dengan CASE

Lanjutan :

Page 19: Pemrograman terstruktur

5. Struktur perulangan FOR

Lanjutan :

For

6. Struktur perulangan WHILE

7. Struktur perulangan UNTIL

Page 20: Pemrograman terstruktur

Statemen kontrol terstruktur : Statemen kontrol terstruktur : menyembunyikanmenyembunyikan goto goto

Kondisi

Proses 1a

IF-THEN

true

false

Proses 1

Proses 2

Proses1If {kondisi } then Proses1aEnd if

Proses2

Proses1If {kondisi=false } then goto lompat Proses1aLompat:Proses2

Jika kondisi=true, urutan pelaksanaan :

Proses1Proses1aProses2

Jika kondisi=false, urutan pelaksanaan :

Proses1Proses2

Analisa :

Page 21: Pemrograman terstruktur

Lanjutan menyembunykan gotoLanjutan menyembunykan goto

Kondisi

Proses 1b

IF-THEN-ELSE

true

false

Proses 1

Proses 2

Proses1If {kondisi=true } then Proses1b else proses1aend if Proses2

Proses1If {kondisi=true } then goto lompat1 else goto lompat2 Lompat1: Proses1b goto lompat3Lompat2: Proses1aLompat3: Proses2

Jika kondisi=true, urutan pelaksanaan :

Proses1Proses1bProses2

Jika kondisi=false, urutan pelaksanaan :

Proses1Proses1aProses2

Analisa :

Proses 1a

Page 22: Pemrograman terstruktur

Lanjutan menyembunykan gotoLanjutan menyembunykan goto

Kondisi1

Proses 2a

IF-THEN-ELSE-IF

true

false

Proses 1

Proses 2d

Proses1If {kondisi1=true } then Proses2a else if {kondisi2=true } then Proses2b else if {kondisi3=true } then Proses2c else Proses2dend ifProses3

Proses1If {kondisi1=true } then goto lompat1 If {kondisi2=true } then goto lompat2If {kondisi3=true } then goto lompat3Goto lompat4Lompat1: Proses2a goto habis Lompat2: Proses2b goto habis Lompat3: Proses2c goto habis Lompat4: proses2dHabis: proses3

Kondisi2

Kondisi3

Proses 2b

Proses 2c

Proses 3

Proses1Case of varKondisi1: Proses2aKondisi2: Proses2bKondisi3: Proses2celse Proses2dend caseProses3

Page 23: Pemrograman terstruktur

Lanjutan menyembunykan gotoLanjutan menyembunykan goto

Looping : FOR

I=1Ulang : Proses1 Proses2 I=I+1If I<=5 then goto UlangProses3

For I=1 to 5 Proses 1 Proses 2 Next IProses 3

Proses1

Proses2

FOR I=1 to 5

Proses3

Page 24: Pemrograman terstruktur

Lanjutan menyembunykan gotoLanjutan menyembunykan goto

Looping : WHILE

Ulang :If {kondisi=true} then Proses1 Proses2goto UlangProses3

While {kondisi=true} Proses 1 Proses 2 WendProses 3

While {kondisi}

Proses1

Proses2

Proses3

Page 25: Pemrograman terstruktur

Lanjutan menyembunykan gotoLanjutan menyembunykan goto

Looping : UNTIL

Ulang : Proses1 Proses2If {kondisi=true} then goto UlangProses3

do Proses 1 Proses 2 Loop Until {kondisi=true}Proses 3Proses1

Proses1

Until {kondisi}

Proses3

Page 26: Pemrograman terstruktur

Contoh flow chart dengan kontrol lengkap :

C=2

C=C=1

C>12

end

start

Page 27: Pemrograman terstruktur

Contoh flow chart dengan beberapa lompatan tidak terstruktur :

end

start Lompatan tidak terstruktur :

a. Melompat ke bagian yang belum tentu dilewati

b. Melompat keluar dari daerah induknya

Page 28: Pemrograman terstruktur

Struktur Data dan Pemrograman Struktur Data dan Pemrograman terstrukturterstruktur

•Bahasa pemrograman dengan kemampuan meng-ekspresi-kan semua kebutuhan struktur data akan lebih mendukung pencapaian tujuan dari pemrograman terstruktur

•Bahasa pemrograman yang tidak memiliki fasilitas untuk mengungkapkan struktur data tertentu cendrung mengarahkan kode program ke bentuk yang kurang teratur

•Kemampuan struktur data suatu bahasa pemrograman ditentukan oleh kemampuan fasilitas type data yang dimilikinya

•Type data secara umum terdiri dari :

- Type data dasar standar : Integer, real, string, charakter, dan logic

- Type data dasar tidak standar : sub range, enumerate

- Type data majemuk : set, array, record, file

- Type data dinamis : pointer

- Type data pada Basic :

……………………………………………….

……………………………………………….- Type data pada Pascal :

……………………………………………….

……………………………………………….

- Type data pada C :

……………………………………………….

……………………………………………….

- Type data pada Foxpro :

……………………………………………….

……………………………………………….

Page 29: Pemrograman terstruktur

Tabel Perbandingan Bahasa PemrogramanTabel Perbandingan Bahasa Pemrograman (Berdasarkan kriteria pemrograman (Berdasarkan kriteria pemrograman terstruktur)terstruktur)

KriteriaKriteria Sub kriteriaSub kriteriaBahasa PemrogramanBahasa Pemrograman

Basic Pascal C Foxpro

Struktur programnya; jelas dan tegasKelengkapan deklarasi elemen program

Ketegasan susunan deklarasi

Fasilitas penulisan kode program; jelas dan tegas

Kelengkapan simbol untuk penulisan kode

Ketegasan penggunaan simbol (case sensitif – non case sensitif)

Statemen untuk kebutuhan Selection dan Looping; lengkap

IF-THEN

IF-THEN-ELSE

IF-THEN-ELSEIF

CASE

FOR

WHILE

UNTIL

Fasilitas menyatakan berbagai type data

Type dasar (integer, real,char, string, boolean)

Set, enumerate, array, record, file

Pointer

Fasilitas pemberian komentar; lengkap

Komentar 1 baris

Komentar banyak baris

Komentar di tengah baris

Fasilitas instruksi/operasi yang tersedia

Operator aritmatik (+,-,*,/,^), operator relasi (<, <=, >, >=, <>),operator logika (AND, OR, NOT),assignment (=)

Fungsi-fungsi built-in (string, matematik, grafis, …)

Fasilitas modular (baik internal maupun eksternal); lengkap

Modular internal (procedure, function)

Modular external (file kode terpisah)

Fasilitas debugging, mudah dan jelas

Kemudahan memahami pesan kesalahan

Kelengkapan pesan (Syntex error, Compile error, Run-time error)

TOTAL4=Baik sekali 3=Baik 2=Cukup 1=Kurang

Page 30: Pemrograman terstruktur

Metoda Desain Pemrograman Metoda Desain Pemrograman TerstrukturTerstruktur

Metode Perancangan Top-down

Metada Perancangan Modular Implementasi internal : Procedure/Subprogram, Function

Implementasi eksternal : file Unit/Header/Modul

Diagram Nassi-Schneiderman

Tabel Decision

Untuk membantu dan menjamin dihasilkannya program yang terstruktur, dapat digunakan beberapa metoda/alat berikut :

Page 31: Pemrograman terstruktur

Metode Perancangan Top-down

Sub Masalah A Sub Masalah B Sub Masalah C

Masalah Besar

Sub Masalah A1 Sub Masalah A2

B

A

CA1

A2

Masalah utama

Strategi umum dalam penyelesaian masalah besar; kompleks; rumit

Page 32: Pemrograman terstruktur

Mahasiswa Dosen Perkuliahan

Sistem Informasi Akademis

Entry data

Hapus data

Laporan data

Entry data

Hapus data

Laporan data

Entry data

Hapus data

Laporan data

Contoh Top-down :

Page 33: Pemrograman terstruktur

Metode Modular : Implementasi Top-down

……..Call A……..

Call B……..

Call C……..

…….Call A1 …….

Call A2……..

…….…….

…….…….

…….

…….

…….

…….

A

B

C

A1

A2

Bagian Utama

Dapat diterapkan secara :

- Internal : sub program, procedure, function

- Eksternal : file unit, header, modul

Page 34: Pemrograman terstruktur

Statemen1Statemen2Stateme3

ifya tdk

proses1

ifya tdk

proses1

proses2

While kondisi

proses2

proses2

Until kondisi

Mulai

Masukkan Nilai koefisien A

Masukkan Nilai koefisien B

Masukkan Nilai Koefisien C

D = B*B-4*A*C

D<0

Imajiner

Real sama

Real berbeda

D=0

ya tdk

ya tdk

Contoh :

Diagram Chart Nassi-Schneiderman

Page 35: Pemrograman terstruktur

Tabel Decision

Rules

1 2 3 4

Kondisi

Aksi

Rules

1 2 3 4

Apakah nilai rata2>=85 Y Y N N

Apakah jumlah kehadiran>=90%

Y N Y N

Mendapat bonus xTidak mendapat bonus x x x

Langkah Pembuatan :

- Menentukan kondisi yang akan diseleksi

- Menentukan jumlah kejadian yang mungkin terjadi untuk di-isi pada bagian kondisi

- Menentukan tindakan yang akan dilakukan untuk di-isi pada bagian aksi

Contoh :

Jika nilai rata-rata >=85 dan jumlah kehadiran mencapai >=90% maka siswa tersebut akan mendapat bonus, jika nilai rata-rata<85 walaupun jumlah kehadiran mencapai >=90% maka siswa tersebut tidak mendapat bonus

Latihan :

Jika unit yang dipesan untuk barang tertentu sama dengan atau melebihi jumlah minimum dan pemesannya adalah agen, maka akan mendapat potongan. Sebaliknya jika kurang dari jumlah minimum, walaupun pemesannya adalah agen, maka tidak mendapat potongan. Jika persediaan di gudang mencukupi maka unit pesanan dikirim sepenuhnya. Jika persediaan di gudang tidak mencukupi jumlah pesanan, maka unit yang ada akan dikirim sedangkan kekurangannya akan dibuatkan catatan (back order)

Page 36: Pemrograman terstruktur

Konversi flow chart ini ke bahasa pemrograman :a. Basic atau foxprob. Pascal atau CC=2, M=3

C=C+1

C>12

C>M

For I=M to C

Next I

M=M+1

(I*C)>M

I > M

C<=M

C=M+1 M=C+1

P=C+M

M=P+2

M=C+5 C=C+M

end

start

C=C-M

TF

C=C*M

Cetak CCetak M

F

T

F

F T

F

T

C = 37M = 25