pemrograman terstruktur
DESCRIPTION
Pemrograman terstruktur RE-UPLOADTRANSCRIPT
Bahan Kuliah Teori :
Pemrograman Pemrograman TerstrukturTerstruktur
CopyRight@2004
Herianto
Cover
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
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
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
Sejarah bahasa PemrogramanSejarah bahasa Pemrograman
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++, …
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
Proses Pembuatan AplikasiProses Pembuatan Aplikasi
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
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
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
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
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
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.
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
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
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
4a. Struktur banyak pilihan dengan IF-THEN-ELSEIF
4b. Struktur banyak pilihan dengan CASE
Lanjutan :
5. Struktur perulangan FOR
Lanjutan :
For
6. Struktur perulangan WHILE
7. Struktur perulangan UNTIL
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 :
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
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
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
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
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
Contoh flow chart dengan kontrol lengkap :
C=2
C=C=1
C>12
end
start
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
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 :
……………………………………………….
……………………………………………….
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
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 :
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
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 :
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
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
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)
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