Anda di halaman 1dari 36

Bahan Kuliah Teori :

Pemrograman Terstruktur

Cover
Herianto
CopyRight@20
04

Sistematika Materi
Sistematika Materi

Konsep pemrograman secara umum :


Perkembangan pemrograman komputer
Sejarah bahasa pemrograman
Jenis bahasa pemrograman
Perbandingan bahasa pemrograman

Ide Pemrograman terstruktur :


Defenisi, Tujuan, Kriteria

Metoda dasar pemrograman terstruktur


GOTOLess : Sekuensial, Selection, Looping

Perbandingan bahasa pemrograman


(Berdasarkan kriteria pemrograman terstruktur)

Metoda desain pemrograman terstruktur


Modular, TopDown,

OOP, Pemrograman berorientasi objek


(Lebih terstuktur dari ide pemrograman terstruktur ?)

Struktur pemrograman visual

Konsep Pemrograman
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
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 : Perintahperintahnya berkaitan langsung dengan struktur internal
hardware

4.

Pemrograman dengan bahasa tingkat tinggi/menengah :


Perintah-perintahnya mirip dengan bahasa manusia/english

Ilustrasi Pemrograman Komputer


Programmer

Instruksi A

Data D

Instruksi D
Instruksi B

Tool

Instruksi C
Data A

Sejumlah Instruksi dan data

CPU
0001

0002

.
.

Hexa

0100

00011100

0101

00000101

0102

00111101

0103

00010010

3C
05
3D
12
2D

00101101
.
.
.

Susunan instruksi dan data


dalam memory

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

High/Medium Level

A = 05 + 12

Sejarah bahasa Pemrograman

Generasi dan Jenis Bahasa Pemrograman


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 (fourthgeneration 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

Jenis
bahasa pemrograman
Pemrograman
prosedural sekaligus
berdasarkan
(hasil) :
berorientasi tujuan
objek : C++
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++,

Perbandingan Bahasa Pemrograman


(Umum)

Berdasarkan tujuan tertentu :


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

Menggunakan memori dinamis

PASCAL, C

BASIC

BASIC, Assembler, C

FORTRAN

Program real-time

ADA, Assembler, C

BASIC, FORTRAN

Manipulasi string

BASIC, PASCAL

Program mudah dikelola

PASCAL, ADA

C, FORTRAN

Lingkungan bermemori terbatas

PASCAL

(Mc. Connell)

Berdasarkan jumlah instruksi dibandingkan


dengan assembler
Bahasa

Rasio

Assembler

1: 1

ADA

1 : 4.5

Quick / Turbo / Basic

1:5

1 : 2.5

FORTRAN
PASCAL

Berdasarkan kriteria pemrograman


terstruktur :
Kriteria

Bahasa Pemrograman
Basic

Pascal

Foxpro

1:3
1 : 3.5
(Mc. Connell)

Tabel ini akan dilengkapi selama perkuliahan berlangsung

Proses Pembuatan Aplikasi

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 / 5
C=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) :


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
Proses
pemecahan :
aplikasinya.
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

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

Solusi 1 (X1) =

Jika D = 0; penyelesaian (X1 dan X2)


merupakan nilai real dan sama (X1=X2)

Solusi 2 (X2) =

Jika D<0; penyelesaian (X1 dan X2)

Lanjutan

Proses pemecahan tersebut


urutannya (algoritma) adalah :
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

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 PEMROGRAMAN TERSTRUKTUR

Simbol-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 menyatakan
operasi memasukkan data/input
dan menampilkan data/output

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

Contoh Flow Chart :


Permasalahan 1 :

Permasalahan 2 :

Start

Masukkan nilai koefisien A ke var A


Masukkan nilai koefisien B ke var B
Masukkan nilai koefisien C ke var C

Start
A=0
Masukkan data jumlah apel ke var A
Masukkan data jumlah anak ke var N

D = b2 4AC

C=A/N

D>0
Hitung penyelesaian real
Dengan akar berbeda

Tampilkan : Setiap anak mendapat C apel

D=0
Hitung penyelesaian real
Dengan akar sama

end

Hitung penyelesaian
Bilangan imajiner

Menanyakan apakah ingin


menghitung lagi ? LG
LG=Ya

end

Ide 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

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.
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

Filosofis Terstruktur

- 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 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 terstruktur


dengan flow chart
1. Struktur urut sederhana (Simple
sequence)
3. Struktur 2 pilihan
dengan IF-THEN-ELSE

2. Struktur 1 pilihan
dengan IF-THEN

Lanjutan :

4a. Struktur banyak


pilihan dengan IFTHEN-ELSEIF

4b. Struktur banyak pilihan


dengan CASE

Lanjutan :

5. Struktur perulangan
FOR

6. Struktur perulangan
WHILE

For

7. Struktur perulangan
UNTIL

Statemen kontrol terstruktur : menyembunyikan goto


IF-THEN

Proses 1
true

Kondisi
false

Proses 1a

Proses 2

Proses1
If {kondisi=false } then goto lompat
Proses1a
Lompat:
Proses2
Proses1
If {kondisi } then
Proses1a
End if
Proses2

Analisa :
Jika kondisi=true,
urutan pelaksanaan :

Jika kondisi=false,
urutan pelaksanaan :

Proses1
Proses1a
Proses2

Proses1
Proses2

Lanjutan menyembunykan goto

Proses1
IF-THENIf {kondisi=true } then goto lompat1 else goto
lompat2
ELSE
Lompat1:
Proses1b
goto lompat3
Proses 1
Lompat2:
Proses1a
true
Lompat3:
Kondisi
Proses2
false
Proses1
Proses 1b
If {kondisi=true } then
Proses 1a
Proses1b
else
proses1a
Proses 2
end if
Proses2
Analisa :

Jika kondisi=true,
urutan pelaksanaan :

Jika kondisi=false,
urutan pelaksanaan :

Proses1
Proses1b
Proses2

Proses1
Proses1a
Proses2

Lanjutan menyembunykan goto

IF-THEN-ELSEIF
Proses 1

Kondisi1
false

true

Proses 2a

Kondisi2
Proses 2b
Kondisi3
Proses 2c
Proses 2d
Proses 3

Proses1
If {kondisi1=true } then goto
lompat1
If {kondisi2=true } then goto
lompat2
If {kondisi3=true } then goto
lompat3
Goto lompat4
Lompat1:
Proses2a
goto habis
Lompat2:
Proses2b
goto habis
Lompat3:
Proses2c
goto habis
Lompat4:
proses2d
Habis:
proses3

Proses1
If {kondisi1=true }
then
Proses2a
else
if {kondisi2=true }
then
Proses2b
else
if {kondisi3=true }
then
Proses2c
else
Proses2d
end if
Proses3
Proses1
Case of var
Kondisi1:
Proses2a
Kondisi2:
Proses2b
Kondisi3:
Proses2c
else
Proses2d
end case
Proses3

Lanjutan menyembunykan goto

Looping : FOR

FOR I=1 to 5

Proses1

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

Proses2

Proses3

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

Lanjutan menyembunykan goto

Looping :
WHILE

While {kondisi}

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

Proses1
Proses2

Proses3

Ulang :
If {kondisi=true}
then
Proses1
Proses2
goto Ulang
Proses3

Lanjutan menyembunykan goto

Looping :
UNTIL

Proses1

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

Proses1
Until {kondisi}

Proses3

Ulang :
Proses1
Proses2
If {kondisi=true} then goto
Ulang
Proses3

Contoh flow chart dengan kontrol lengkap :


start
C=2
C=C=1
C>12

end

Contoh flow chart dengan beberapa lompatan tidak


terstruktur :
start

Lompatan tidak terstruktur :


a. Melompat ke bagian yang belum tentu
dilewati
b. Melompat keluar dari daerah induknya

end

Struktur Data dan Pemrograman terstruktur


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 pada Basic :

.data pada Pascal :


- Type

.
- Type data pada C :

.
- Type data pada Foxpro :

Tabel Perbandingan Bahasa Pemrograman (Berdasarkan kriteria pemrograman terstruktur)


Kriteria

Sub kriteria
Kelengkapan deklarasi elemen program

Struktur programnya; jelas dan tegas


Fasilitas penulisan kode program; jelas
dan tegas

Ketegasan susunan deklarasi


Kelengkapan simbol untuk penulisan kode
Ketegasan penggunaan simbol (case sensitif non case sensitif)
IF-THEN
IF-THEN-ELSE

Statemen untuk kebutuhan Selection dan


Looping; lengkap

IF-THEN-ELSEIF
CASE
FOR
WHILE
UNTIL
Type dasar (integer, real,char, string, boolean)

Fasilitas menyatakan berbagai type data

Set, enumerate, array, record, file


Pointer
Komentar 1 baris

Fasilitas pemberian komentar; lengkap

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)
Kemudahan memahami pesan kesalahan

Fasilitas debugging, mudah dan jelas

4=Baik sekali

3=Baik

2=Cukup

1=Kurang

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

TOTAL

Bahasa Pemrograman
Basic

Pascal

Foxpro

Metoda Desain Pemrograman Terstruktur


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

Metode Perancangan Top-down


Metada Perancangan Modular
Implementasi internal : Procedure/Subprogram, Function
Implementasi eksternal : file Unit/Header/Modul

Diagram Nassi-Schneiderman
Tabel Decision

Metode Perancangan Top-down


Masalah Besar

Sub Masalah A

Sub Masalah A1

Sub Masalah B

Sub Masalah C

Sub Masalah A2

Masalah
utama

B
C
A1

A
Strategi umum dalam penyelesaian
masalah besar; kompleks; rumit

A2

Contoh Top-down :

Sistem Informasi Akademis

Mahasiswa

Dosen

Perkuliahan

Entry data

Entry data

Entry data

Hapus data

Hapus data

Hapus data

Laporan data

Laporan data

Laporan data

Metode Modular :
Bagian
Utama
..
Call A
..

A
.
Call A1
.
Call A2
..

B
Call B
..

.
.

Implementasi Top-down
A1

.
.
A2

.
.

C
Call C
..

.
.

Dapat diterapkan
secara :
- Internal : sub
program, procedure,
function

- Eksternal : file unit,


header, modul

Diagram Chart Nassi-Schneiderman


Statemen
1
Statemen

While
kondisi

2
Stateme3

ya

if

proses
2

proses
2

Until kondisi

Contoh :
Mulai

tdk

Masukkan Nilai koefisien A

proses
1

Masukkan Nilai koefisien B


Masukkan Nilai Koefisien C

ya
proses
1

if

D = B*B-4*A*C

tdk
proses
2

ya
Imajiner

D<0
ya
Real
sama

tdk
D=0

tdk

Real
berbeda

Tabel Decision
Rules
1

Langkah Pembuatan :
- Menentukan kondisi yang akan diseleksi

- Menentukan jumlah kejadian yang


mungkin terjadi untuk di-isi pada bagian
kondisi

Kondisi
Aksi

- Menentukan tindakan yang akan


dilakukan untuk di-isi pada bagian aksi
Latihan :

Contoh :

Jika nilai rata-rata >=85 dan jumlah


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

Rules
1

Apakah nilai rata2>=85

Apakah jumlah
kehadiran>=90%

Mendapat bonus

x
x

Tidak mendapat bonus

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)

start

Konversi flow chart ini ke bahasa pemrograman :


a. Basic atau foxpro
b. Pascal atau C

C=2, M=3
C=C*M
C=C+1
FF

T
C>12
C=C-M
F
C>M
T
F

For I=M to C

T
I>M

(I*C)>M
F

C<=M
M=C+5

M=M+1
Next I

C=C+M

T
C=M+1

M=C+1

P=C+M

Cetak C
Cetak M

end
M=P+2

C = 37
M = 25

Anda mungkin juga menyukai