Sejarah Metodologi Pemrograman
Metodologi pengembangan program pertama kali diperkenalkan Î Prof E.W Dykstra tahun 1960.
Pemrograman terstruktur Î mengurangi pemakaian instruksi GOTO GOTO less programming
Ciri – ciri Program Terstruktur (Good Program)
Run correctly Run efficiently
Be easy to read and understand Be easy to debug
Be easy to modify
Langkah – langkah Pengembangan Program
1. Definisikan masalah • Keluaran (Output) • Masukan (Input) • Proses (Proces)
2. Rancang outline pemecahan masalah • Buat langkah – langkah proses • Buat rincian/detail Proses • Tentukan Variable dan record
• Tentukan struktur kontrol (pengulangan, kondisi, dsb) • Buat logika ‘Mainline’
3. Buat algoritma berdasarkan outline pemecahan masalah 4. Test algoritma
5. Coding 6. Execute
Metode Pemrograman Terstruktur
Pemrograman terstruktur memakai metode pengembangan Top-Down. Perancangan program dilakukan secara modular
Pengembangan Top-Down
Pengembangan yang dimulai dari langkah yang global lebih dahulu, yang kemudian diperhalus lagi sehingga didapat langkah rinci
Modular
Perancangan program dilakukan dalam bentuk modul - modul
Teorema Pada Pemrograman Terstruktur Sequence
Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya Contoh :
Perintah A
Perintah B
Perintah C
Selection
Instruksi akan dikerjakan jika kondisi tertentu dipenuhi
Contoh :
Penggunaan IF-THEN-ELSE
Penggunaas CASE
Repetition
Instruksi dikerjakan berulang – ulang sampai suatu kondisi dicapai.
Contoh :
Penggunaan DO WHILE
Sifat algoritma
Jelas dan tepat atau tidak samar – samar (Definiteness)
Memberikan pemecahan yang tepat untuk semua kasus (Effectiveness) Memiliki akhir (finiteness)
Pseudocode
Statement program ditulis dengan bahasa indonesia/inggris yang sederhana Setiap instruksi ditulis pada setiap baris
Keywords/kata kunci digunakan khusus untuk menjelaskan control struktur
Setiap set/bagian blok instruksi memiliki awal dan akhir dengan “one entry one exit” Pengelompokan statement bisa membentuk satu modul yang mempunyai nama.
Contoh algoritma:
1.
Turn on Calculator Clear Calculator
Repeat the following instruction Key in dollar amount
Key in decimal point Key in cent amount
Until all prices were been entered Write down total price
Turn off Calculator
2.
Deklarasi variabel lokal No_bulan : integer (1..12) Deskripsi :
read (no_bulan)
case (no_bulan)
no_bulan = 1 ; write ( ‘Januari’ ) no_bulan = 2 ; write ( ‘Februari’ ) no_bulan = 3 ; write ( ‘Maret’ ) no_bulan = 4 ; write ( ‘April’ ) no_bulan = 5 ; write ( ‘Mei’ ) no_bulan = 6 ; write ( ‘Juni’ ) no_bulan = 7 ; write ( ‘Juli’ ) no_bulan = 8 ; write ( ‘Agustus’ ) no_bulan = 9 ; write ( ‘September’ ) no_bulan = 10 ; write ( ‘Oktober’ ) no_bulan = 11 ; write ( ‘Nopember’ ) no_bulan = 12 ; write ( ‘Desember’ ) endcase
TEKNIK PENYAJIAN ALGORITMA
Teknik Tulisan z Structure English z Pseudocode Teknik Gambar z Structured Chart z HIPO z Flowchartz Nassi Schneiderman Chart
Teknik Tulisan
Structure English Alat yang cukup efisien untuk menggambarkan suatu algoritma Basis : bahasa Inggris
Dasar penggambaran algoritma: bahasa manusia
Pseudocode
Kode mirip dengan kode pemrograman yang sebenarnya. Arti pseudo: imitasi atau mirip atau menyerupai
Arti code: kode program. Basis: bahasa pemrograman
z umumnya PASCAL, atau C++ Lebih rinci dari structure English,
z Dapat menyatakan tipe data yang digunakan struktur penulisan:
z sequence structure z selection structure z looping structure.
Contoh pseudocode:
z Komputer mendapatkan data
read nama_mhs get tgl_system
read anggota_1, anggota_2 baca record mhs
baca nilai
z Komputer menyajikan informasi
print “STMIK & AMIK Raharja” write record mahasiswa
display “salah kode”
cetak “STMIK & AMIK Raharja”
z Komputer melakukan aritmatik
Add harga to total Total = total + harga a = a * b
z Komputer memberikan nilai
initialize total to 0 set student_count to 0
z Komputer membandingkan & memilih alternatif tindakan IF mhs is part_time THEN Add ELSE 1 to part_time_count Add 1 to full_time_count ENDIF
z Komputer melakukan pengulangan DO WHILE mhs_total < 50
Read record mhs
Print nama_mhs, alamat to laporan
Teknik Gambar
Structured Chart“Organisasi dari sistem secara berjenjang dalam bentuk modul dan submodul.” Structure chart digunakan untuk menggambarkan modul – modul dan hubungannya: Hubungan elemen data
Hubungan elemen kontrol Hubungan antar modulnya.
Teknik pembuatan struktur chart
Program dibagi kedalam modul – modul Bentuk hirarki/organisasi modul – modul Gambarkan Komunikasi antar modul Deskripsikan Fungsi modul
Contoh Dasar Penggambaran Structured Chart
1.
A
B
p
q
flag
Deskripsi fungsiModul A memanggil modul B, dengan mengirim elemen data P ke modul B. Modul B Berfungsi / bekerja.
Modul B Selesai dan mengirimkan elemen data q dan kontrol flag, kembali ke modul A.
X
A B C
Deskripsi fungsi
X Memanggil A
Setelah A bekerja, kemudian kembali ke X X Memanggil B
Setelah B bekerja, kemudian kembali ke X X Memanggil C
Setelah C bekerja, kemudian kembali ke X
3. X A B C
p
q
flag
r
flag
Deskripsi fungsiX Memanggil A, dan mengirim elemen data p ke modul A. Setelah A bekerja,
kemudian kembali ke X dan mengirim kontrol flag.
X Memanggil B , dan mengirim elemen data r ke modul B. Setelah B bekerja,
kemudian kembali ke X dan mengirim elemen data q.
X Memanggil C, dan mengirim kontrol flag ke modul C. Setelah C bekerja,
HIPO
HIPO ( HIERARCHY PLUS INPUT-PROCESS-OUTPUT) HIPO Î alat dokumentasi program.
HIPO Î dikembangkan dan didukung oleh IBM.
HIPO Î digunakan sebagai alat bantu untuk merancang dan mendokumentasikan siklus pengembangan sistem.
Sasaran HIPO:
z Untuk menggambarkan suatu struktur bertingkat
z Untuk memahami fungsi-fungsi dari modul-modul suatu sistem. z Untuk menggambarkan modul-modul yang harus diselesaikan oleh
pemrogram.
z Sebagai penjelasan yang lengkap dari input yang akan digunakan, proses yang akan dilakukan serta output yang diinginkan.
Terdapat 3 diagram yang digunakan pada HIPO: • Visual Table of Contents
Menggambarkan hubungan dari modul-modul dalam suatu sistem secara berjenjang
• Overview Diagram
Merepresentasikan input, proses dan output secara global • Detail Diagram
Merepresentasikan secara rinci kerja dari fungsi atau modul
Contoh Visual Table of Contents
Sistem Parpus Entry data 1 Pelayanan Sirkulasi Laporan - laporam 3 Anggot a Karyawa n Pustaka 1.3 Pinjaman 2.1 Kembalian 2.2 Lapora n denda 3.1 Lapora n Laporan peminjam 3.3 pustaka Tambah 1.1.1 Tambah 1.2.1 Tambah 1.3.1 Tambah 2.11 Tambah 2.21
Overwiew Diagrams
Over view diagrams merepresentasikan / menggambarkan hubungan dari input, proses dan output.
z Input adalah item – item data yang akan digunakan oleh bagian proses. z Proses adalah langkah – langkah yang menggambarkan kerja dari fungsi atau
modul.
z Output adalah hasil pemrosesan data. Detail Diagram
Detail diagram menggambarkan elemen-elemen dasar dari paket secara rinci kerja dari fungsi atau modul.
Contoh over view diagram:
1. Menjumlahkan 3 angka.
Baca 3 bilangan, jumlahkan ketiga bilangan tersebut dan cetak jumlah ketiga bilangan tersebut
Overview diagram
INPUT PROSES OUTPUT
- 3 Bilangan - Baca 3 Bilangan - Jumlah ketiga bilangan tersebut
- Cetak hasil penjumlahan
- Hasil Jumlah
Detail diagram
INPUT PROSES OUTPUT
- Bil_1 - Bil_2 - Bil_3 - Baca Bil_1 - Baca Bil_2 - Baca Bil_3 - Total = Bil_1+Bil_2+Bil_3 - Cetak Total - Total
Flowchart
1. Sequence Structure (struktur urut)
A B C Instruksi A Instruksi B Instruksi C
2. Selection Structure (Struktur Seleksi)
IF Selection ? A= C Y Tida Syntax C++: if (A==5) { instruksi C; }
IF – ELSE Selection B ? A= C Y Tida Syntax C++: if (A==5) { instruksi C; } else { instruksi B; }
CASE Selection w Va x y default A B C D Syntax C++: switch (var) { case ‘w’: instruksi A; break; case ‘x’: instruksi B; break; case ‘y’: instruksi C; break; default: instruksi D; }
ooping/Repetition Structure (Struktur Pengulangan)
z Front Check Repetition
Syntax C++ L A ? Kondi B : ondisi) { while (k instruksi A; } instruksi B; Catatan:
si berisi nilai true atau false lasi - Kondi
- Kondisi dapat berupa persamaan re spt: z < 5
z >= 10 … dsb
z ear Check Repetition Syntax C++ R A . : do { instruksi A; } while (kondisi) instruksi B; Catatan:
- Kondisi berisi nilai true atau false lasi - Kondisi dapat berupa persamaan re
spt: z < 5 z >= 10 … dsb ? Kondi B
z ixed Repetition F
For x = 0 to 5
A
B
x
Syntax C++: for (x=0;x<=5;x++) { instruksi A; } instruksi B;OPERATOR C++
Mathematical Operator
Name Operator Sample Result
A S M D ddition + 5 + 3 8 ubstraction - 5 - 3 2 ultilpication * 5 * 3 15 ivision / 6 / 3 2 Modulus % 5 % 2 1
Name Operator Sample
Increment ++ y = 2 + x++ ++ y = 2 + ++x + = y += 2 ecrement -- y = 2 + x---- y = 2 + --x - = y -= 2 y=y-2
y=2+x, setelah itu baru decrement x
Keterangan
y=2+x, setelah itu baru increment x y=2+(x+1), setelah itu baru increment x
y=2+(x-1) y=y+2 D
Relational Operator
LOGICAL OPERATORName Operator Sample
AND && y && x
OR || y || x
NOT ! !x
RELATIONALOPERATOR
Name Operator Sample Evaluates
Equals == 100 == 50 FALSE
50 == 50 TRUE
Not Equals != 100 != 50 TRUE
50 != 50 FALSE
Greater Than > 100 > 50 TRUE
50 > 50 FALSE Greater Than >= 100 >= 50 TRUE
or Equals 50 >= 50 TRUE
Less Than < 100 < 50 FALSE
50 < 50 FALSE
Less Than <= 100 <= 50 FALSE
or Equals 50 <= 50 TRUE
TABEL LOGIKA OR
y OR x
TRUE FALSE
TRUE TRUE TRUE
FALSE TRUE FALSE TABEL LOGIKA AND
y A ND
x
TRUE FALSE
TRUE TRUE FALSE
FALSE FALSE FALSE TABEL LOGIKA NOT
NO T
TRUE FALSE
Ekspresi merupakan kombinasi Operand dan Operator.
Hasil Evaluasi dari sebuah Ekpresi adalah nilai yang sesuai dengan type operand yang dipakai
MACAM – MACAM EKPRESI
Ekspresi aritmatika
Menggunakan Operator Aritmatik Ekspresi Numerik
Menggunakan Operand Numerik
Contoh: 1. 3.14 * R * R Operatornya adalah * Operandnya adalah R 2. (9 / 5 * C) + 32 Operatornya adalah /, *, + Operandnya adalah C 3. A+B*5 Operatornya adalah + , * Operandnya adalah A, B Tingkatan operator dari tinggi ke rendah:
1. /, %, * 2. + , -
Contoh: 1. #include <iostream.h> Void main() { int usia; char jnskel[6];
cout<< “Jenis Kelamin Anda (pria/wanita)?”; cin>>jnskel;
cout<<“Usia Anda ?”; cin>>usia;
if (jnskel==“pria” && usia>=20) {
cout << “Anda”<< jnskel << “berusia 20th keatas” << endl; cout << “Berhak masuk club ini”;
} else {
if(jnskel==“wanita” && usia>=22) {
cout << “Anda” << jnskel << “berusia 22th keatas” << endl; cout << “Berhak masuk club ini”;
}
else {
cout << “Anda” << jnskel << “berusia” << usia << endl; cout << “Berhak masuk club ini”;
}
} }
Flowchart Nested Selection
Non Linear Nested IF Statement
Kondisi 1 A Kondisi 2 Kondisi 3 YES YES B NO NO C NO D YES
Contoh Syntax C++, Non Linear Nested IF Statement :
if (Kondisi1) { if (Kondisi2) { if (Kondisi3) { Instruksi D; } else { Instruksi C; } } else { Instruksi B; } } else { Instruksi A; }
Linear Nested IF Statement
Kondisi 1 A Kondisi 2 Kondisi 3 NO NO B YES YES C YES D NOContoh Syntax C++, Linear Nested IF Statement : if (Kondisi1) { Instruksi A; } else { if (Kondisi2) { Instruksi B; } else { if (Kondisi3) { Instruksi C; } else { Instruksi D; } } }
Contoh Nested if:
#include <iostream.h> void main()
{
int Number1, Number2;
cout << “Masukkan dua angka.\nAngka pertama: "; cin >> Number1;
cout << "\nAngka kedua: "; cin >> Number2;
cout << "\n\n";
if (Number1 >= Number2) {
if ( (Number1 % Number2) == 0) // evenly divisible?
{
if (Number1 == Number2)
cout << “Kedua angka tersebut sama!\n"; else
cout << “Angka pertama adalah kelipatan Angka kedua!\n";
}
else
cout << "They are not evenly divisible!\n"; }
else
cout << "Hey! The second one is larger!\n"; }
ANALISIS MASALAH
Dalam analisis masalah ini kita melakukan pendefinisian masalah dan mengembangkan pemecahan masalah
Definisi masalah . z Masukan / Input
z Menyediakan data masukan untuk pemecahan masalah z Keluaran / Output
z Membuat daftar output / keluaran z Proses
z Menyediakan daftar proses / langkah – langkah yang diperlukan untuk menghasilkan output / keluaran.
Contoh:
1. Menjumlahkan 3 angka
Baca 3 bilangan, jumlahkan ketiga bilangan tersebut dan cetak jumlah ketiga bilangan tersebut
Penyelesaian :
Langkah – langkahnya :
Buat daftar output, letakkan pada kolom output (lihat tabel dibawah) Buat daftar semua input yang kemudian diletakkan pada kolom input
Inventarisir kegiatan yang dilakukan agar dapat menghasilkan output dari input yang tersedia.
Tabel / Daftar Input–Proses–Output (Outline Definisi Masalah) INPUT PROSES OUTPUT
- Bil_1 - Bil_2 - Bil_3 - Baca Bil_1 - Baca Bil_2 - Baca Bil_3 - Total = Bil_1+Bil_2+Bil_3 - Cetak Total - Total
Pengembangan Outline Definisi Masalah ke Algoritma dgn Flowchart START READ Bil_1 READ Bil_2 READ Bil_3 Total=Bil_1+Bil_2+ Bil_3 WRITE Total END START READ Bil_1 READ Bil_2 READ Bil_3 Total=Bil_1+Bil_2+Bil_3 WRITE Total END WRITE Informasi Membaca Bil_1 WRITE Informasi Membaca Bil_2 WRITE Informasi Membaca Bil_3
LATIHAN PENGEMBANGAN ALGORITMA
1. Carilah suhu rata – rata dari 2 data suhu yang diketahui.
Baca 2 data suhu (Sr dan St), hitung rata – ratanya (Sa) dan cetak hasil rata – rata Tersebut.
Jawaban:
Tabel / Daftar Input–Proses–Output (Outline Definisi Masalah) INPUT PROSES OUTPUT
Sr St Baca Sr Baca St Sa = (Sr + St) / 2 Cetak Sa Sa
Pengembangan Outline Definisi Masalah ke Algoritma dgn Flowchart
START WRITE Informasi membaca Sr WRITE Informasi membaca Sr WRITE Informasi membaca Sr WRITE Informasi membaca Sr Sa = (Sr + St) / 2 Write Hasil END
Desk Checking (untuk memeriksa algoritma)
Masukkan Data
Ikuti cara kerja algoritma dengan data tersebut untuk mendapatkan hasilnya. Bandingkan dengan hasil yang dilakukan secara manual
Bila benar maka algoritmanya benar dan bila salah maka algoritmanya salah Perbaiki algoritmanya jika salah
Contoh Algoritma berupa Flowchart sebagai berikut:
START READ Bil_1 READ Bil_2 READ Bil_3 Total=Bil_1+Bil_2+Bil_3 WRITE Total END WRITE Informasi Membaca Bil_1 WRITE Informasi Membaca Bil_2 WRITE Informasi Membaca Bil_3
Desk Checking
Lakukan checking dengan 2 set data, yaitu : 10, 20, 30 untuk bil_1 dan 40, 41, 42 untuk bil_2
Jawaban: 1. Data input :
Variabel Data_1 Data_2 Bil_1 10 40
Bil_2 20 41
Bil_3 30 42
2. Hasil Penjumlahan Secara Algoritma:
Statement Bil_1 Bil_2 Bil_3 Total Cetak
Baca 10 20 30 Total 60 Data_1 Cetak ya Baca 40 41 42 Total 123 Data_2 Cetak ya
3. Hasil penjumlahan secara manual :
Total Data_1 60
Data_2 123
4. Periksa (check) hasil, apakah sesuai dengan hasil yang diolah algoritma dan secara manual