Arsitektur Aplikasi Database pada Delphi

advertisement
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, Top Down,…
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 : Perintah-perintahnya
4.
Pemrograman dengan bahasa tingkat tinggi/menengah :
berkaitan langsung dengan struktur internal hardware
Perintah-perintahnya mirip dengan bahasa manusia/english
Ilustrasi Pemrograman Komputer
Instruksi A
Programmer
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
Jenis bahasa pemrograman
berdasarkan bentuk (corak kode) nya :
• Generasi II : assembly language :
Asssembler
• Pemrograman prosedural : Pascal, C, …
• Generasi III : high-level
programming language: C, PASCAL,
dsb.
• Pemrograman deklaratif : Prolog
• 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, …
• Pemrograman fungsional : Lisp
• 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++, …
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
C
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
C
1 : 2.5
FORTRAN
PASCAL
Berdasarkan kriteria pemrograman
terstruktur :
Kriteria
Bahasa Pemrograman
Basic
Pascal
C
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 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
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 2 :
Start
Masukkan nilai koefisien A ke var A
Masukkan nilai koefisien B ke var B
Masukkan nilai koefisien C ke var C
Permasalahan 1 :
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
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 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 (Looping).
Untuk itu dalam pemrograman terstruktur
hanya dikenal 3 struktur :
1. Sekuensial, yaitu program yang tidak
memiliki lompatan. Baris program
dijalankan secara normal (lurus) satu persatu 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 IF – THEN - ELSE IF
4b. Struktur banyak pilihan
dengan CASE
Lanjutan :
5. Struktur perulangan FOR
6. Struktur perulangan WHILE
For
7. Struktur perulangan UNTIL
Statement kontrol terstruktur : menyembunyikan goto
IF-THEN
Proses 1
Kondisi
FALSE
Proses 2
TRUE
Proses 1a
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 menyembunyikan goto
IF-THEN-ELSE
Proses 1
Kondisi
FALSE
TRUE
Proses 1b
Proses 1a
Proses 2
Analisa :
Proses1
If {kondisi=true } then goto lompat1 else goto lompat2
Lompat1:
Proses1b
goto lompat3
Lompat2:
Proses1a
Lompat3:
Proses2
Proses1
If {kondisi=true } then
Proses1b
else
proses1a
end if
Proses2
Jika kondisi=true,
urutan pelaksanaan :
Jika kondisi=false,
urutan pelaksanaan :
Proses1
Proses1b
Proses2
Proses1
Proses1a
Proses2
Lanjutan menyembunyikan goto
IF-THEN-ELSE-IF
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 menyembunyikan 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 menyembunyikan 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 menyembunyikan 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
Contoh Struktur IF - THEN
Bentuk umum :
IF ‘ungkapan’ THEN ‘statement’
Ungkapan adalah kondisi yang akan diseleksi oleh statement IF, bila kondisi
yang diselekesi terpenuhi, maka statement yang mengikuti THEN akan
diproses, sebaliknya jika kondisi tidak terpenuhi, maka yang akan diproses
adalah statement berikutnya.
Contoh :
var
begin
end.
nilai ujian
ket
: real;
: string [11];
ket:=‘tidak lulus’;
write(‘nilai ujian yang didapat..?’);
readln(nilaiujian);
if nilaiujian > 60 then ket:=‘lulus’;
writeln(ket);
Contoh Struktur IF – THEN - ELSE
Bentuk umum :
IF ‘kondisi’ THEN
statement1
ELSE
statement2
Statement1 atau dapat berupa blok statement akan diproses bila kondisi
yang diseleksi benar (terpenuhi), sedang statement2 atau dapat berupa
blok statement akan diproses bilamana kondisi yang diseleksi tidak
terpenuhi. Contoh :
var
begin
else
nilai ujian
: real;
write(‘nilai ujian yang didapat..?’);
readln(nilaiujian);
if nilaiujian > 60 then
writeln(‘lulus’);
writeln(‘tidak lulus’);
end.
Struktur IF tersarang
Bentuk umum :
IF ‘kondisi’ THEN
IF ‘kondisi2 THEN
statement1
ELSE
statement2
ELSE
statement3
Merupakan bentuk dari suatu statement IF berada didalam lingukngan
statement IF yang lainnya, misalnya didalam IF-THEN-ELSE terdapat IFTHEN-ELSE yang lain.
Untuk contoh : Turbo Pascal jilid 1, Hal 163.
Contoh Struktur IF – THEN – ELSE – IF
Bentuk umum :
IF ‘kondisi1’ THEN
aksi1
ELSE
IF ‘kondisi2’ THEN
aksi2
ELSE
IF ‘kondisi3’ THEN
aksi3
ELSE
IF ‘kondisi n’ THEN
aksi n
Contoh Struktur IF – THEN – ELSE – IF
Contoh :
Var
A : integer;
Begin
read (A);
If A=1 then;
write (‘satu’);
else
if A=2 then;
write (‘dua’);
else
if A=3 then;
write (‘tiga’);
endif;
endif;
endif.
Contoh Struktur Case
Untuk menyederhanakan struktur IF-THEN-ELSE-IF
Bentuk umum :
Contoh :
case (nama)
Var
(kondisi1) : aksi1
A : integer;
(kondisi1) : aksi1
Begin
(kondisi1) : aksi1
read (A);
.
If A=1 then;
.
write (‘satu’);
(kondisi n) : aksi n
else
if A=2 then;
write (‘dua’);
else
if A=3 then;
write (‘tiga’);
endif;
endif;
endif.
Contoh case :
Var
A : integer;
Begin
read (A);
case (A);
A=1 : write (‘satu’);
A=2 : write (‘dua’);
A=3 : write (‘tiga’);
End case.
Contoh Struktur WHILE – DO
Bentuk umum :
WHILE ‘kondisi’ DO ‘statement’
1. Kondisi dicoba terlebih dahulu.
2. Jika nilai kondisi adalah true, aka statement dilaksanakan dan
pengedalian program dikembalikan ke statement WHILE, karena kondisi
tersebut dicoba lagi, jika tidak (jika nilai kondisi adalah false) maka akan
dilanjutkan dengan sesudah statement.
Contoh :
var
I : integer;
begin
I:=0;
while I < 5 do;
begin
writeln(I);
I=I+1
end;
end.
Contoh Struktur REPEAT – UNTIL
Bentuk umum :
REPEAT
aksi
UNTIL kondisi
1. Notasi ini mendasarkan pengulangan pada kondisi berhenti. Aksi didalam
badan kalang diulang sampai kondisi berhenti boolean bernilai true.
Artinya jika kondisi berhenti masih salah, maka didalam badan kalang
harus ada aksi yang merubah harga kondisi.
2. Makna struktur REPEAT-UNTIL sama dengan stuktur WHILE-DO,
perbedaan mendasarnya adalah :
a. pada repeat-until, aksi (sekumpulan aksi) dilaksanakan minimal satu
kali, karena kondisi pengulangan diperiksa pada ‘akhir’ struktur.
b. pada while-do, diperiksa pada ‘awal’ struktur, sehingga memungkinkan
pegulangan tidak akan pernah dilaksanakan bila kondisi pengulangan
bernilai false (pada repeat-until).
Contoh Struktur REPEAT – UNTIL
Contoh :
Var
k : integer;
Begin
k:=1
repeat
write (‘halo’);
k=k + 1;
until k > 10;
End.
Contoh Struktur FOR
a. FOR menaik (Ascending), bentuk umum :
FOR peubah ‘nilai awal’ to ‘nilai akhir’ DO
aksi
END FOR
Keterangan :
- Peubah harus bertipe sederhana kecuali tipe Real.
- Nilai_Awal harus ‘lebih kecil’ atau ‘sama dengan’ Nilai_Akhir. Jika
Nilai_Awal > Nilai_Akhir, maka badan pengulangan tidak dimasuki.
- Pada awalnya, peubah diinialisasi dengan Nilai_Awal, nilai peubah
secara otomatis ‘bertambah satu’ setiap kali aksi pengulangan dimasuki
sampai akhirnya nilai peubah ‘sama dengan’ Nilai_Akhir.
- Jumlah pengulangan yang terjadi adalah : Nilai_Akhir – Nilai_Awal + 1
Contoh Struktur FOR
Contoh :
var
k : integer;
begin
for k:= 1 to 10 do;
write(‘hallo’);
End for.
var
angka : integer;
begin
for angka:= 1 to 100 do;
write(angka);
End for.
Contoh Struktur FOR
a. FOR menurun (Descending), bentuk umum :
FOR peubah ‘nilai akhir’ down to ‘nilai awal’ DO
aksi
END FOR
Keterangan :
- Peubah harus bertipe sederhana kecuali tipe Real.
- Nilai_Awal harus ‘lebih besar’ atau ‘sama dengan’ Nilai_Akhir. Jika
Nilai_Awal < Nilai_Akhir, maka badan pengulangan tidak dimasuki.
- Pada awalnya, peubah diinialisasi dengan Nilai_Akhir, nilai peubah
secara otomatis ‘berkurang satu’ setiap kali aksi pengulangan dimasuki
sampai akhirnya nilai peubah ‘sama dengan’ Nilai_Awal.
- Jumlah pengulangan yang terjadi adalah : Nilai_Awal – Nilai_Akhir + 1
Contoh Struktur FOR
Contoh :
var
k : integer;
begin
for k:= 100 down to 0 do;
write(k);
End for;
write(‘Goo..!’)
End.
Interpreter dan Compiler
Komputer hanya mengenal bahasa mesin. Bahasa Mesin berbasis bilangan
Biner, yaitu 0 dan 1. Yang menjadi masalah adalah, kita menulis dalam
bahasa pemrograman yang bukan Bahasa Mesin sehingga kode program
yang kita tulis mesti diterjemahkan kedalam Bahasa Mesin. Program yang
menterjemahkan kode program kedalam Bahasa Mesin disebut
Penterjemah, yaitu : Compiler dan Interpreter.
Compiler adalah program yang menterjemahkan seluruh kode program
sekaligus kedalam bahasa mesin, contoh : Pemrograman Pascal, Bahasa
C, Pemrograman Cobol, Assembly, Delphi, Visual Basic, dll.
Interpreter adalah program yang menterjemahkan kode program baris per
baris kedalam bahasa mesin, contoh : Quick Basic.
Perbedaan Interpreter dan Compiler
1.
Pada Compiler, jika hendak menjalankan program hasil kompilasi bisa dilakukan
tanpa kode sumber. Pada Interpreter membutuhkan kode sumber.
2.
Jika dengan Compiler, maka pembuatan kode yang bisa dijalankan mesin
dilakukan dalam 2 tahap terpisah, yaitu Parsing (pembuatan kode objek) dan
Linking (penggabungan kode objek dengan library). Pada Interpreter tidak ada
proses terpisah.
3.
Pada Compiler membutuhkan linker untuk menggabungkan kode objek dengan
berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan
oleh mesin. Pada interpreter tidak butuh linker.
4.
Interpreter cocok untuk membuat/menguji coba modul/sub-routine/programprogram kecil. Pada Compiler agak repot karena untuk mengubah suatu
modul/kode objek kecil, maka harus dilakukan proses linking/penggabungan
kembali semua objek dengan library yang diperlukan.
5.
Pada Compiler bisa dilakukan optimisasi/peningkatan kualitas kode yang bisa
dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil,
ada yang dioptimasi untuk sistem dengan banyak processor. Sedang pada
Interpreter susah/tidak bisa dioptimasikan.
Interpreter dan Compiler
Pada saat menterjemahkan kode program sebenarnya Compiler ataupun
Interpreter sebenarnya melakukan banyak hal seperti : mengoptimalkan
kode agar bekerja lebih cepat, menambah fasilitas penanganan
kesalahan, hubungan antar kode-kode program, dan lain sebagainya.
Catatan,
Source Program :
Program yang menjadi sumber. Bahasa yang ditulis oleh progammer untuk
dieksekusi oleh mesin.
Executable Program :
Program yang sudah berbentuk Bahasa Mesin hasil dari proses kompilasi.
Metoda Desain Pemrograman Terstruktur
Untuk membantu dan menjamin dihasilkannya program yang
terstruktur, dapat digunakan beberapa metoda/alat berikut :
Metode Perancangan Modular
Metoda Perancangan
Top-Dwon, Bottom-Up
Implementasi internal : Procedure/Subprogram, Function
Implementasi eksternal : file Unit/Header/Modul
Metoda Desain Pemrograman Terstruktur
Pemrograman merupakan suatu tahap untuk mengimplementasikan
penyelesaian suatu permasalahan tertentu dengan menggunakan suatu
bahasa pemrograman. Penyusunan suatu program yang terstruktur
merupakan salah satu syarat untuk membuat program yang baik, yang
mudah dibaca, dipahami dan dikorekasi.
A. Pemrograman Modular.
- Program-program yang besar cenderung sulit terutama karena kompleksitas dari
program tersebut dan banyak bagian dengan hubungan yang rumit dan detail
yang sebenarnya tidak diperlukan.
- Pada Pemrograman Modular, program dipecah-pecah kedalam modul-modul,
dimana setiap modul menunjukkan fungsi dan tugas tunggal. Dengan membagi
masalah kedalam modul-modul, maka masalah akan menjadi sederhana
sehingga program lebih mudah disusun dan difahami.
Metoda Desain Pemrograman Terstruktur
- Pemrograman Modular diterapkan dengan menggunakan sub-routine, yaitu
sebuah kumpulan perintah yang melakukan tugas pemrosesan yang terbatas,
yakni :
a. Jika persoalan yang ingin dipecahkan melalui program terlalu besar, sebaiknya
pemecahan masalah dilakukan bertahap.
b. Setiap tahapan akan menghasilkan modul program.
c. Setiap modul tersebut diberi Nama sehingga untuk menyatakannya cukup
menyebut Nama-nya.
d. Deskripsi fungsional dari setiap modul adalah penting.
- Program yang didefinisikan modulnya dengan baik akan :
a. Mudah dibaca dan dimengerti oleh pemakai.
b. Efisien, karena modul yang sama mungkin dipakai pada beberapa tahapan
program.
Metoda Desain Pemrograman Terstruktur
- Karakteristik modul yang baik adalah :
a. Logical Coherent, yakni modul hanya mengandung satu fungsi saja, tidak
tercampur hal-hal lain.
b. Independent, yakni modul progra dapat di tes sendiri-sendiri tanpa harus
menunggu modul lain selesai maka harus di parameterisasi dengan baik,
selain itu tidak merusak harga dari nama yang didefinisikan diluar tersebut.
c. Ukuran Modul, yakni tidak terlalu besar, berarti harus dibagi-bagi menjadi
modul-modul kecil.
- Modul Program dan Parameter, yakni :
a. Modul program didefinisikan Namanya dan akan dipanggil melalui nama
tersebut untuk dieksekusi.
b. Modul dapat dibuat sehingga beberapa harga yang akan diolah oleh modul
tersebut baru diberikan pada saat eksekusi, biasanya harga ini diberikan
melalui nama yang disebut dengan parameter.
Metoda Desain Pemrograman Terstruktur
c. Parameter adalah Nama yang dipakai modul untuk berkomunikasi dengan
modul lain.
d. Parameter Formal adalah Nama yang dipakai dalam mendefinisikan modul.
e. Parameter Aktual adalah Nama yang diberikan ketika pemanggilan modul.
Contoh :
Uses Crt;
Var
A, B, C, : integer;
jumlah
: integer;
rata
: real;
Procedure petunjuk_program;
Begin
writeln( ‘ apabila program dijalankan ‘ );
writeln( ‘ anda diminta menuliskan 3 buah angka ‘ );
writeln;
End;
Begin
petunjuk_program;
write ( ‘ masukkan 3 buah angka A, B, C : ‘ );
readln(A, B, C);
jumlah := A+B+C;
rata := jumlah/3;
writeln;
writeln ( ‘ jumlahnya = ‘, jumlah );
writeln ( ‘ rata-rata
= ‘, rata );
readln;
End.
Pada program disamping terdapat modul
petunjuk_program (dalam pascal modul
program berupa procedure atau function).
Modul diatas tidak memiliki parameter
karena modul hanya memuat pernyataan
untuk menampilkan kalimat saja.
Hasil :
Apabila program dijalankan
anda diminta menuliskan 3 buah angka
masukkan 3 buah angka A, B, C : 2, 4, 6
jumlahnya = 12
rata-rata = 4
Uses Crt;
Var
A, B, C, : integer;
jumlah
: integer;
rata
: real;
Procedure petunjuk_program;
Begin
writeln( ‘ apabila program dijalankan ‘ );
writeln( ‘ anda diminta menuliskan 3 buah angka ‘ );
writeln;
End;
Function jumlah(D,E,F : integer) : integer;
Begin
jumlah := D+E+F;
End;
Begin
petunjuk_program;
write ( ‘ masukkan 3 buah angka A, B, C : ‘ );
readln(A, B, C);
jumlah := A+B+C;
rata := jumlah/3;
writeln;
writeln ( ‘ jumlahnya = ‘, jumlah );
writeln ( ‘ rata-rata
= ‘, rata );
readln;
End.
Metode Modular : Implementasi Top-down
Bagian Utama
……..
Call A
……..
A
…….
Call A1
…….
Call A2
……..
B
Call B
……..
…….
…….
A1
…….
…….
A2
…….
…….
C
Call C
……..
…….
…….
Dapat diterapkan secara :
- Internal : sub program,
procedure, function
- Eksternal : file unit,
header, modul
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
C=C+M
T
Next I
C=M+1
M=C+1
P=C+M
Cetak C
Cetak M
end
M=P+2
C = 37
M = 25
Metoda Desain Pemrograman Terstruktur
B. Top-Down Design
- Pendekatan ini bertitik tolak pada tujuan program secara umum/menyeluruh dan
“bukan” bagaimana cara mencapainya.
- Pada top-down desain, akan dihasilkan modul-modul dengan ciri :
a. Modul mengimplementasikan proses tunggal, logis dapat berdiri sendiri dan
mudah dipahami.
b. Modul harus independen, sebuah modul ditulis tidak boleh bergantung pada
implementasi modul lainnya.
c. Modul akan relatif pendek, disarankan kode modul tidak lebih dari satu
halaman.
- Keuntungan dari Top-Down desain adalah : bahwa setiap tahap pemrograman
yang ada menjadi sederhana, karena setiap tingkat mengabaikan detail dari
tingkat yang paling rendah. Dengan cara ini sebuah proses yang kompleks
dipecah-pecah kedalam sebuah urutan langkah yang relatif sangat renda, hasil
akhirnya berupa sebuah modul yang lebih sederhana.
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
A2
Strategi umum dalam penyelesaian masalah
besar; kompleks; rumit
Contoh Top-down :
Sistem Informasi Akademis
Mahasiswa
Perkuliahan
Dosen
Entry data
Entry data
Entry data
Hapus data
Hapus data
Hapus data
Laporan data
Laporan data
Laporan data
Download