KONSEP PERANCANGAN
PROGRAM
POKOK BAHASAN
1. Pendahuluan
2. Permasalahan Terkait Perangkat Lunak
(Program)
3. Program dan Faktor Kualitas Program
4. Software Development Life Cycle
5. Fakta Dalam Pembangunan Program
6. Metodologi Perancangan Program
7. Teknik Pemrograman
8. Paradigma Bahasa Pemrograman
9. Kriteria Bahasa Pemrograman
DISKUSI
1. Apa penyebab terjadinya permasalahan
dalam perangkat lunak (program) yang
dihasilkan?
2. Dalam
mempelajari
bahasa
pemrograman apa yang pertama kali
harus dipelajari
sehingga dapat
melakukan pemrograman ?
PENDAHULUAN
Kebutuhan informasi menjadi unsur utama
dalam bisnis sehingga mendorong pertumbuhan
industri software.
Nilai industri software di Indonesia sampai akhir
tahun 2013 antara Rp 3.5 5 Trilyun dengan
nilai pertumbuhan 18-20% per tahun (Pratama,
2013).
Produk
perangkat
lunak
dikembangkan
(developed) atau direkayasa (engineered)
sesuai dengan kebutuhan pemakai akhir (end
user).
PERMASALAHAN TERKAIT
PERANGKAT LUNAK (PROGRAM)
APA PROGRAM ?
Kumpulan instruksi / perintah yang
dirangkaian sehingga membentuk
suatu proses untuk mengolah data.
SOFTWARE DEVELOPMENT
LIFE CYCLE (SDLC)
SDLC adalah serangkaian aktivitas yang dilaksanakan
oleh profesional dan pemakai sistem informasi untuk
mengembangkan dan mengimplementasikan software
(program).
Aktivitas atau proses standar yang digunakan untuk
membangun program, yaitu :
Analisa kebutuhan (spesifikasi)
Desain
Coding
Pengujian
METODOLOGI PERANCANGAN
PROGRAM
Prinsip dasar dalam pembangunan program
berdasarkan input data, proses dan output.
Beberapa pendekatan perancangan program :
1. Procedure-Driven
2. Event-Driven
3. Data-Driven
PROCEDURE-DRIVEN
Procedure-Driven
untuk
perancangan
program berdasarkan pada apa yang akan
dilakukan program (proses atau fungsi).
Strateginya
adalah
dengan
memecahkan setiap fungsi menjadi lebih
kecil dan lebih spesifik.
Contoh :
Program untuk persegi panjang dibagi
menjadi fungsi : hitung keliling dan hitung
luas persegi panjang
EVENT-DRIVEN
Event-Driven
untuk
perancangan
program
berdasarkan pada kejadian atau interaksi dari luar
dapat menyebabkan perubahan dari satu kondisi ke
kondisi lain.
Keadaan
awal
dari
sebuah
program
mengidentifikasikan seluruh pemicu yang mewakili
kejadian untuk kondisi yang akan dihasilkan.
Contoh : apabila tombol mulai pada program
stopwatch di klik maka program akan menghitung
waktu yang berjalan sampai tombol stop di klik.
DATA-DRIVEN
Data-Driven untuk perancangan program
berdasarkan struktur data.
Dimulai dengan analisis data dan
hubungan antara data, untuk menentukan
struktur data dasar. Setelah struktur data
telah ditetapkan, output data yang
diperlukan
diperiksa
dalam
rangka
menentukan proses apa yang diperlukan
untuk mengkonversi data input ke output.
CONTOH DATA-DRIVEN
Untuk membuat program menghitung bonus karyawan. Besar bonus
masing-masing karyawan tergantung gaji pokok dan jenis
tanggung-jawabnya.
Data Input : Data Profil Karyawan (seperti : nik, nama, jabatan, gaji
pokok)
Data Output : Bonus karyawan
Proses :
Ambil tanggung_jawab dari profil_karyawan
If tanggung_jawab = Sales manager
Then bonus = gaji_pokok * 0.10
Else
If tanggung_jawab = Senior salesman
Then bonus = gaji_pokok * 0.08
Else dan seterusnya
BELAJAR PEMROGRAMAN ?
Pemrograman adalah proses menulis,
menguji dan memperbaiki (debug), dan
memelihara kode yang membangun
sebuah program komputer.
Belajar pemrograman adalah belajar
tentang metodologi pemecahan masalah
kemudian menuangkannya dalam suatu
notasi yang mudah dibaca dan dipahami.
TEKNIK PEMROGRAMAN
Permasalahan bisnis yang semakin
kompleks dan rumit sedangkan waktu
yang diberikan untuk pengembangan
program semakin cepat.
Dibutuhkan teknik pemrograman untuk
mengembangkan program yang kompleks
dan rumit dalam waktu yang cepat.
TEKNIK PEMROGRAMAN
(lanjutan)
1. Pemrograman Tidak Terstruktur
2. Pemrograman Terstruktur
3. Pemrograman Prosedural
4. Pemrograman Modular
5. Pemrograman Berorientasi Objek
1. PEMROGRAMAN TIDAK
TERSTRUKTUR
Pemrograman tidak terstruktur adalah suatu
teknik pemrograman dimana penulisan instruksi
tidak teratur dan sistematis sehingga sulit untuk
dipahami.
Contoh : Penggunaan perintah GOTO yang
banyak dalam program.
2. PEMROGRAMAN TERSTRUKTUR
Pemrograman terstruktur adalah
suatu teknik pemrograman dimana
penulisan
instruksi
secara
sistematis, logis dan tersusun
berdasarkan
algoritma
yang
sederhana dan mudah dipahami.
Prinsip
pada
pemrograman
terstruktur jika suatu proses sudah
sampai pada titik tertentu, maka
proses
selanjutnya
tidak
bisa
melakukan
proses
pada
baris
sebelumnya.
3. PEMROGRAMAN PROSEDURAL
Pemrograman prosedural adalah suatu teknik
pemrograman dimana penulisan instruksi yang sama
dibuat dalam sub program tersendiri sehingga
pembuatan program lebih cepat dan memudahkan
perbaikan apabila terjadi kesalahan.
4. PEMROGRAMAN MODULAR
Pemrograman modular adalah suatu teknik
pemrograman dimana
prosedur dari fungsi
umum dikelompokkan dalam modul-modul dan
setiap modul menunjukkan fungsi dan tugas
tunggal.
5. PEMROGRAMAN
BERORIENTASI OBJEK
Pemrograman berbasis obyek (OOP) mendasarkan
pada konsep objek dan interaksinya.
5. PEMROGRAMAN BERORIENTASI
OBJEK (lanjutan)
BELAJAR BAHASA
PEMROGRAMAN ?
Bahasa
pemrograman
merupakan
suatu
himpunan dari aturan sintaks dan semantik yang
dipakai untuk mendefinisikan program komputer.
Belajar bahasa pemrograman adalah belajar
memakai suatu bahasa pemrograman sesuai
dengan aturan tata bahasanya.
SINTAKS
Sintaks adalah aturan penulisan suatu bahasa
pemograman (tata bahasanya).
Contoh :
#include<file-include>
main()
{ pernyataan; }
Apabila terjadi kesalahan dalam penulisan sintaks
maka akan terjadi error pada saat kompilasi.
SEMANTIK
Semantik adalah arti atau maksud
terkandung didalam statement tersebut.
yang
Contoh :
\n; arti semantiknya baris baru.
Printf(); arti semantiknya mencetak string ke
layar.
Getch(); arti semantiknya membaca sebuah
karakter.
KEBENARAN LOGIKA
Kebenaran logika adalah berhubungan dengan
benar tidaknya urutan statement.
Contoh :
main()
{int bil=1;
while(bil<=5)
printf(" %d ",bil);
getch();}
Output dari program di atas terjadi perulangan
terus menerus yang tidak berakhir.
JENIS-JENIS BAHASA
PEMROGRAMAN
1. Bahasa Tingkat Rendah
Dirancang agar setiap instruksi langsung dikerjakan
oleh komputer tanpa translator.
Contoh : Assembler
2. Bahasa Tingkat Tinggi
Bahasa Pemrograman yang dalam penulisan
pernyataannya mudah
dipahami
secara
langsung.
Perlu diterjemahkan oleh translator bahasa
Contoh : Algol, Fortran, Pascal, Visual Basic,
Oracle, dll.
PARADIGMA BAHASA
PEMROGRAMAN
KRITERIA BAHASA
PEMROGRAMAN
.
KRITERIA BAHASA
PEMROGRAMAN (lanjutan)
. Kewajaran untuk aplikasi
3.
Bahasa pemrograman harus mempunyai
struktur data, operasi-operasi, struktur kontrol
dan sintaks yang tepat untuk memecahkan
suatu masalah.
4. Mendukung Abstraksi
Abstraksi
merupakan
suatu
hal
yang
substansial bagi programer untuk membuat
suatu solusi dari masalah yang dihadapi.
KRITERIA BAHASA
PEMROGRAMAN (lanjutan)
. Kemudahan untuk verifikasi program
5.
Dengan verifikasi data yang mudah, maka suatu
program akan dengan mudah dibangun dan
dikembangkan.
6. Lingkungan pemrograman
Lingkungan pemrograman dapat berarti editor yang
digunakan, dokumentasi yang baik, fasilitas
debugging, user interface yang baik ataupun tools
lain yang dapat digunakan untuk memudahkan
pekerjaan programer.
.
KRITERIA BAHASA
PEMROGRAMAN (lanjutan)
. Portabilitas program
7.
Kemudahan program untuk dipakai di berbagai
jenis komputer.
8. Biaya penggunaan
Biaya eksekusi program
Biaya kompilasi program
Biaya penciptaan, testing dan penggunaan
program
Biaya pemeliharaan program
PERTEMUAN 2
ALGORITMA &
PEMROGRAMAN
POKOK BAHASAN
1.
2.
3.
4.
5.
6.
Pendahuluan
Tahapan Pembangunan Program
Pengenalan Algoritma
Cara Menyajikan Algoritma
Data Program
Elemen-Elemen Program
PENDAHULUAN
Perancangan program merupakan pengembangan
solusi terhadap identifikasi masalah dan menghasilkan
serangkaian instruksi yang membangun sebuah program
komputer untuk menghasilkan output.
ALGORITMA
Translasi
BAHASA
PEMROGRAMAN
Kompilasi
KOMPUTER
Interpretasi oleh CPU untuk
Menjalankan
operasi
pada
mesin komputer sesuai dengan
intruksi bahasa pemrograman.
APAKAH ALGORITMA ?
Algoritma berisi langkah-langkah yang dibutuhkan untuk
menyelesaikan sebuah tugas.
Sebuah algoritma harus:
Memiliki masukkan (input)
Menghasilkan keluaran (output)
Terdefinisi jelas (definiteness)
Memiliki kondisi akhir (finiteness)
Memberi solusi yang diharapkan (effectiveness)
Berlaku untuk setiap himpunan input sesuai dengan
masalah yang diberikan (generality)
CONTOH ALGORITMA
Program Hitung_Kembali
{menghitung uang kembali apabila input data tersebut
diberikan}
Deklarasi
long sisa, uang_bayar, total_bayar
Deskripsi
Baca total_bayar
Hitung sisa = uang_bayar - total_bayar
Cetak sisa
END
1. PSEUDOCODE
Pseudocode merupakan salah satu cara untuk
menuliskan algoritma
Karakteristik Pseudocode:
Statement / Perintah di tulis dalam bahasa Inggris /
Indonesia sederhana.
Setiap perintah di tulis dalam baris terpisah
Keyword digunakan untuk menjelaskan control
structure tertentu.
Setiap set/bagian instruksi memiliki awal dan akhir
Pengelompokkan statement bisa membentuk satu
modul yang mempunyai nama.
STRUKTUR PSEUDOCODE
Algoritma terdiri dari tiga bagian yaitu :
Judul (Header) : mendefinisikan nama dengan
menentukan apakah teks tersebut adalah program,
prosedur, fungsi.
Deklarasi : mendefinisikan nama variabel, nama
konstanta, nama prosedur, nama fungsi yang akan
digunakan dalam algoritma.
Deskripsi
:
mendefinisikan
langkah-langkah
penyelesaian masalah mulai dari input, proses dan
ouput.
Pada setiap bagian tersebut apabila akan dituliskan
komentar mengenai setiap bagian tersebut dituliskan
diantara tanda kurung kurawal
Contoh : { Komentar }
CONTOH PSEUDOCODE
Program Luas_Lingkaran
{menghitung luas sebuah lingkaran apabila jari-jari
lingkaran tersebut diberikan}
Deklarasi
inisialisasi konstanta phi = 3.14
inisialisasi r, luas_lingkaran
Deskripsi
Baca data r
luas_lingkaran = phi * r * r
cetak luas_lingkaran
2. FLOWCHART
Flowchart adalah suatu alat yang menunjukkan
langkah-langkah yang harus dilaksanakan
dalam menyelesaikan suatu permasalahan
untuk komputasi dengan cara mengekspresikan
ke dalam serangkaian simbol-simbol grafis.
CONTOH FLOWCHART
SIMBOL-SIMBOL FLOWCHART
PROGRAM
Simbol
Keterangan
TERMINAL
Digunakan untuk menggunakan awal dan akhir dari suatu
kegiatan.
DECISION
Digunakan untuk menggambarkan proses pengujian suatu
kondisi yang ada.
PREPARATION
Digunakan untuk menggambarkan persiapan harga awal,
dari proses yang akan dilakukan.
FLOW LINE
Digunakan untuk menggambarkan hubungan proses dari
satu proses ke proses lainnya.
SIMBOL-SIMBOL FLOWCHART
PROGRAM
Simbol
Keterangan
INPUT/OUTPUT
Digunakan untuk menggambarkan proses memasukan data
yang berupa pembacaan data dan sekaligus proses
keluaran yang berupa pencetakan data.
SUBROUTINE
Digunakan untuk menggambarkan proses pemanggilan sub
program dari main program (recursivitas).
CONNECTOR
Digunakan untuk menghubungkan alur proses ke dalam
satu halaman atau halaman yang sama.
OFF-PAGE CONNECTOR
Digunakan untuk menghubungkan alur proses dalam
halaman yang berbeda atau ke halaman berikutnya.
DATA PROGRAM
Program
ditulis untuk memproses data,
dibutuhkan pemahaman yang baik terhadap
sifat dan struktur dari data yang sedang
diproses.
Data dalam program mungkin dapat berupa
variabel tunggal (seperti : integer, karakter),
atau kelompok (seperti : array, file)
ELEMEN-ELEMEN PROGRAM
A. Aturan leksikal
B. Tipe Data
C. Expression
D. Statement
E. Function & Procedure
1. Token
Token (Kata) yaitu elemen terkecil pada bahasa
pemrograman yang memiliki arti penting bagi
compiler.
2. Komentar
Digunakan untuk memberikan suatu keterangan yang
akan menjelaskan isi dari program secara singkat.
Komentar hanya sebuah tulisan pada program dan tidak
akan diproses oleh komputer.
Bertindak sebagai dokumentasi.
Notasi komentar pada setiap bahasa pemrograman
berbeda-beda.
Contoh :
{komentar pada pascal}
//komentar pada c++
komentar pada visual basic
3. IDENTIFIER
Identifier adalah token yang merepresentasikan nama
sesuatu seperti : variabel/konstanta, field/atribut,
prosedur/fungsi, dan lain-lain.
Aturan pemberian nama identifier:
a. Karakter pertama harus berupa huruf.
b. Karakter kedua dan selanjutnya dapat berupa
huruf/angka/underscore.
c. Tidak boleh menggunakan karakter simbol (@ # $ %
& *, dll) kecuali underscore.
d. Tidak boleh menggunakan kata kunci (keywords/
reserved words).
3. IDENTIFIER (lanjutan)
e. Huruf besar/kecil dianggap berbeda (khusus
C++)
f. Tidak boleh ada spasi.
g. Nama identifier sebaiknya disesuaikan
dengan kebutuhan atau sesuai objek yang
akan diberi nama.
Contoh penamaan identifier yang benar : idcust,
tgl_lahir, telp1, dll.
Contoh penamaan identifier yang tidak benar :
@kdbrg, double, nama-depan, 3erat_badan, dll.
4. Keywords/Reserved Words
Keywords atau reserved words merupakan
kata-kata yang telah ada/didefinisikan oleh
bahasa pemrograman yang bersangkutan.
Kata-kata tersebut telah memiliki definisi yang
sudah tetap dan tidak dapat diubah.
Karena telah memiliki definisi tertentu, maka
katakata ini tidak dapat digunakan sebagai
identifier.
Contoh Keyword : break, switch, continue,
repeat, until, function dll
5. OPERATOR
Merupakan
simbol-simbol
khusus
yang
digunakan untuk mengoperasikan suatu nilai
data (operand).
Operator yang digunakan dalam pemrograman:
Arithmetic operator
Assignment operator
Logical operator
Relational operator
Pointer operator
Bitwise operator
B. TIPE DATA
Tipe data digunakan untuk menentukan jenis nilai yang
dapat ditampung oleh suatu variabel.
Pada suatu bahasa pemrograman umumnya telah
menyediakan tipe-tipe data yang sederhana (simple)
maupun yang terstruktur dan apabila kita membutuhkan
tipe data yang belum tersedia, kita dapat mendefinisikan
sendiri tipe data baru, yang disebut enumerated type.
C. Expression
Expression (ekspresi) yaitu suatu pernyataan yang
menghasilkan suatu nilai.
Expression tersusun dari operator dan operand yang
digunakan untuk menghitung atau memberi suatu nilai
suatu variable atau identifier.
Expression yang paling sederhana yaitu nama variable.
Expression yang lebih kompleks akan melibatkan
operator-operator, maupun pemanggilan function atau
procedure.
D. Statement
Statement merupakan bagian program yang berisi
perintah yang akan dieksekusi / dijalankan. Karena
itu, statement-statement ini menentukan bagaimana
jalannya program dan bagaimana suatu nilai
variable dimanipulasi/berubah.
Statement dapat dikelompokan menjadi antara lain:
1. Simple Statement
2. Compound Statement
1. Simple Statement
Yang digolongkan ke dalam simple statement (statement
sederhana) yaitu statement yang tidak berisi statement
lainnya, sebagai berikut :
Assignment Statement yaitu statement yang digunakan
untuk memberikan nilai ke suatu variable, contohnya :
a := 10;
b := a * 2;
c := c * b;
Statement untuk pemanggilan function atau procedure
yaitu statement yang memanggil function atau procedure
yang telah didefinisikan pada program. Contoh :
Calculate (a,b);
Cetak (a,b);
2. Compound Statement
Compound statement (kumpulan statement) adalah
sekumpulan statement yang terdiri dari statementstatement lain, termasuk juga selection statement dan
interaction.
Selection statement digunakan untuk melakukan
pemilihan sekumpulan statement (compound statement).
Contoh :
a. If Then
b. Perintah Case
Iteration statement digunakan untuk melakukan
perulangan sekumpulan statement (compound
statement). Contoh :
a. Do While
b. Repeat .Until
c. ForEndFor
Latihan
Buatlah
pseudocode
&
flowchart
untuk
menghasilkan 1 liter air dengan menggunakan
tabung dengan ukuran 3 dan 5 liter.
Tugas
Buatlah pseudocode & flowchart untuk menghasilkan air
dengan menggunakan tabung dengan ukuran 3 dan 5 liter.
Air yang ingin dihasilkan:
a. 2 liter
b. 4 liter
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 3. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 1 (tidak ada sistem susulan).
PERTEMUAN 3
TAHAPAN PEMBANGUNAN
PROGRAM
POKOK BAHASAN
1. Definisi Masalah
2. Outline Solusi
3. Pengembangan outline ke dalam
algoritma
4. Melakukan test terhadap algoritma
5. Pemeriksaan Algoritma
6. Memindahkan Algoritma Ke Dalam
Bahasa Pemrograman
DISKUSI
1. Mengapa dibutuhkan tahapan dalam
perancangan program ?
2. Apa
manfaat
Desk
Checking
Algoritma/pemeriksaan algoritma ?
DEFINISI MASALAH
Pada tahap ini memerlukan pemahaman
terhadap
permasalah
dengan
membaca
berulang kali sampai dengan mengerti apa yang
dibutuhkan.
Permasalahan dibagi kedalam tiga komponen:
Input / Masukan
Output / Keluaran
Proses
4
CONTOH KASUS
Sebuah toko peralatan mandi menjual bak mandi
plastik. Banyak customer yang bertanya volume air
yang dapat ditampung pada bak mandi tersebut. Oleh
karena itu dibutuhkan program untuk menghitung
volume air bak mandi sesuai dengan ukuran yang
diinput.
Definisi Masalah :
Input
: panjang, lebar dan tinggi
Output : volume bak mandi
Proses : volume bak mandi = panjang x lebar x tinggi
OUTLINE SOLUSI
Setelah
permasalahan
didefinisikan,
permasalahan dapat di bagi ke dalam
tugas-tugas atau langkah langkah yang lebih
kecil dan menghasilkan outline solusi
Outline solusi awal dapat terdiri dari:
Proses utama
Subtask utama
Struktur Kontrol
Variabel dan struktur record
Logic utama (mainline)
6
OUTLINE SOLUSI
Input
Baca p
Baca l
Baca t
Proses
volume_bak = p x l x t
Output
Volume_bak
PENGEMBANGAN OUTLINE KE
DALAM ALGORITMA
Outline solusi pada langkah kedua
dikembangkan menjadi algoritma yaitu
sebuah set langkah yang menggambarkan
tugas yang akan dikerjakan dan urutan
pengerjaannya.
PENGEMBANGAN OUTLINE KE
DALAM ALGORITMA (lanjutan)
Program Hitung_Volume_Bak
{menghitung volume bak mandi apabila input data
tersebut diberikan}
Deklarasi
float p, l, t, volume_bak
Deskripsi
Baca p
Baca l
Baca t
Hitung volume_bak = p x l x t
Cetak volume_bak
End
10
TAHAPAN PENGECEKAN
ALGORITMA
1.
2.
3.
4.
5.
6.
PEMERIKSAAN ALGORITMA
Test Plan
Input Data
Output
1.5
Output
Volume bak
Data 1
Data 2
Data 1
Data 2
Baca p
Baca l
1.5
Baca t
Cetak volume_bak
MEMINDAHKAN ALGORITMA KE
DALAM BAHASA PEMROGRAMAN
Setelah ke-empat langkah sebelumnya
dilakukan, maka pencodingan dapat
dimulai dengan menggunakan bahasa
pemrograman yang dipilih.
15
LATIHAN 1
Sebuah sebidang tanah dengan ukuran 22 m x 15
m dibangun sebidang rumah dengan ukuran 8 m x
10 m. Sisa tanah yang tidak dibangun rumah
ditumbuhi rumput. Pemilik rumah berencana
memanggil tukang potong rumput untuk merapikan
rumput di halaman rumahnya. Tarif per jam tukang
rumput sebesar 100 ribu/jam. Berapa tarif yang
harus dibayar memotong rumput halaman rumah,
dengan rata-rata 20 cm2 / menit.
19
LATIHAN 2
Seorang kontraktor sedang membangun sebuah
rumah dengan ukuran 8 m x 12 m. Rumah
tersebut akan dipasangkan ubin dengan ukuran 30
cm x 30 cm. Setiap kardus memiliki ukuran 1 m2.
Berapa kardus ubin yang harus dibeli ? Buatlah
pseudocode & flowchart serta program hitung
kebutuhan ubin.
TUGAS 2
Buatlah pseudocode, flowchart dan program untuk :
1. Menentukan apakah suatu bilangan merupakan
bilangan prima atau bukan ?
2. Program untuk menentukan apakah tahun yang
diinputkan termasuk tahun kabisat/bukan.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 4. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 2 (tidak ada sistem susulan).
PERTEMUAN 4
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PEMILIHAN
POKOK BAHASAN
1. Definisi Struktur Kontrol Pemilihan
2. Pseudocode Struktur Kontrol Pemilihan
STRUKTUR KONTROL
PEMILIHAN
Struktur kontrol pemilihan dalam pseudocode
digunakan untuk menggambarkan:
Pilihan antara dua atau lebih tindakan,
tergantung pada apakah kondisi yang diberikan.
Contoh :
IF jumlah orang > 10 THEN pintu dibuka
ELSE dibatalkan karena kurang peminatnya.
Kondisi bernilai True atau False
Contoh :
IF member THEN Diskon = 20% * Harga
3
STRUKTUR KONTROL
PEMILIHAN (lanjutan)
Kondisi berdasarkan perbandingan 2 item yang
dinyatakan dengan salah satu operator relasi
berikut :
= sama dengan
1. SIMPLE SELECTION
Simple selection terjadi jika harus memilih
diantara dua alternatif yang ada, tergantung dari
hasil kondisi apakah True atau false.
Keyword yang digunakan adalah : IF, THEN,
ELSE, dan ENDIF
OUTLINE SOLUSI
Input
Baca gaji
Proses
total_penghasilan = gaji * 12
IF total_penghasilan
>=15600000 THEN
keterangan=Kena Pajak
Output
keterangan
PENGEMBANGAN OUTLINE KE
DALAM ALGORITMA (lanjutan)
Program Kena_Pajak
{Menentukan kena pajak atau tidak apabila input data tersebut diberikan}
Deklarasi
string keterangan
long gaji
Deskripsi
Baca gaji
total_penghasilan = gaji * 12
IF total_penghasilan >=15600000 THEN
keterangan=Kena Pajak
ELSE
Keterangan = Tidak Kena Pajak
Cetak keterangan
ENDIF
END
PEMERIKSAAN ALGORITMA
Test Plan
Input Data
Input
Gaji
Data 1
Data 2
900,000
3,500,000
Output Data
Output
Data 1
Data 2
Keterangan
Kena Pajak
Data 1
Data 2
900,000
3,500,000
Kena Pajak
2. COMBINED SELECTION
Combined Selection terjadi jika kondisi yang harus
diperiksa lebih dari satu. Kondisi tersebut dapat
dihubungkan dengan menggunakan AND atau OR.
Format Struktur Combined Selection
IF syarat1 operator logika syarat2 THEN
instruksi1
Else
instruksi2
ENDIF
Contoh :
IF ormik AND semot THEN
ket = LULUS
ELSE
ket = GAGAL
ENDIF
3. Nested Selection
Nested selection terjadi, jika di dalam IF terdapat
statement IF yang lain.
Ada dua jenis nested selection
Linear Nested IF
Non-Linear Nested IF
A. Linear Nested IF
Linear Nested IF terjadi jika satu kondisi di cek
untuk beberapa nilai.
Format Struktur Linear Nested IF Statement
IF syarat1 THEN
instruksi1
ELSE IF syarat2 THEN
instruksi2
ELSE
instruksi3
ENDIF
B. Non-Linear Nested IF
Non-Linear Nested IF terjadi jika beberapa kondisi
harus
diperiksa
sebelum
suatu
statement
dikerjakan.
Format Struktur Non Linear Nested IF Statement
IF syarat1 THEN
IF syarat2 THEN
instruksi2a
ELSE
instruksi2b
ENDIF
ELSE
Instruksi 1b
ENDIF
B. Non-Linear Nested IF
Statement (lanjutan)
Contoh Struktur Non Linear Nested IF Statement
IF a > b THEN
IF a > c THEN
Cetak a
ELSE
Cetak c
ENDIF
ELSE IF b > c THEN
Cetak b
ELSE
Cetak c
ENDIF
4. Perintah Case
Perintah case digunakan
sebagai
instruksi
pemilihan dimana aksi
yang akan dilakukan
hanya tergantung pada
nilai dari satu macam
variabel.
Perintah
case
memungkinkan memiliki
banyak nilai dan setiap
nilainya berkaitan dengan
satu macam aksi.
LATIHAN
Dibaca sebuah bilangan bulat yang mewakili
pengukuran suhu air (dalam 0C) pada tekanan
atmosfir, harus dituliskan wujud air pada
temperatur dan tekanan tersebut.
Ketentuan :
Beku jika suhu < 0
Cair jika 0 < suhu 100
Uap jika suhu > 100
Buatlah pseudocode, flowchart dan program dari
masalah di atas.
23
TUGAS 3
Buatlah program untuk menghitung ekivalensi
bilangan dalam detik menjadi berapa hari, jam
berapa menit dan berapa detik.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 5.
Bagi mahasiswa yang tidak mengumpulkan
tugas maka tidak mendapat nilai tugas 3 (tidak
ada sistem susulan).
24
PERTEMUAN 5
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PENGULANGAN
POKOK BAHASAN
1. Definisi Struktur Kontrol Pengulangan
2. Jenis Struktur Kontrol Pengulangan
STRUKTUR KONTROL
PENGULANGAN
Struktur kontrol pengulangan digunakan untuk
melaksanakan sederetan instruksi berulang-ulang
sesuai dengan persyaratan yang ditetapkan.
Ada tiga cara penempatan keputusan pengulangan
:
1. Pada awal pengulangan (Leading decision loop)
2. Pada akhir pengulangan (trailing the decision
loop)
3. Menjumlahkan
angka
pada
suatu
waktu(counted loop)
instruksi_n
counter
ENDDO
Proses
DO WHILE i <= n
a= a+ 2
i=i+1
Cetak a
Enddo
Output
Cetak a
Deklarasi
integer a= 0
integer i=1
integer n
Deskripsi
Baca n
DOWHILE i<=n
a= a+ 2
i=i+1
Cetak a
ENDDO
END
Data
n
5
Cetak a
2
2
3
4
5
5
5
Y
Y
Y
4
6
8
3
4
5
4
6
8
5
6
5
5
Y
N
10
-
6
-
10
-
Proses
REPEAT
Cetak a
a= a+ 2
i=i+1
UNTIL i>n
Output
Cetak a
Data
5
n Cetak a
5
1
5
3
5
5
5
7
5
9
5
-
a=a+2
3
5
7
9
11
-
i=i+1
2
3
4
5
6
-
i>n
N
N
N
N
N
Y
3. Counted Loop
statement_n
ENDFOR
3. Counted Loop
Contoh Kasus :
Buatlah sebuah deret bilangan sebanyak 5 yang
menampilkan angka 1, 4, 9, 14, 25
Definisi Masalah
Input
: jumlah bilangan
Output : 5 deret bilangan akar kuadrat
Proses : Jika i <= jumlah bilangan lakukan
pengulangan berikut
cetak a
a = sqr(a)
3. Counted Loop
Outline Solusi
Input
Baca n
Proses
For i = 1 to n
Cetak a
a= sqr(a)
EndFor
Output
Cetak a
3. Counted Loop
Program Bilangan_Kuadrat
{Menghasilkan bilangan kuadrat sesuai dengan data yang diinput}
Deklarasi
integer a
integer i
integer n
Deskripsi
Baca n
For i = 1 to n
Cetak a
a= sqr(i)
EndFor
END
3. Counted Loop
Desk Checking
Data Masukan
Input
Data
3. Counted Loop
Tabel Desk Checking
i
1
n
5
i<=n
Y
a=sqr(i)
2
Cetak a
2
i=i+1
2
2
3
4
5
5
5
Y
Y
Y
4
6
8
4
6
8
3
4
5
5
6
5
5
Y
N
10
-
10
-
6
-
NESTED REPETION
Nested Repetion terjadi, jika di dalam pengulangan
terdapat statement pengulangan yang lain.
Format Nested DO WHILE
DO WHILE kondisi k1 bernilai true
DO WHILE kondis k2 bernilai true
statement_1
statement_2
statement_n2
ENDDO
statement_n1
ENDDO
Proses
DO WHILE b <= 3
DO WHILE k <= 3
cetak k
k=k+ 1
Enddo
Cetak
b=b+1
Enddo
Output
Cetak k
b<=3
k<=3
Cetak b
K=k+1
B=b+1
LATIHAN
1
1+2
1+2+3
1+2+3+4
1+2+3+4+5
=1
=3
=6
= 10
= 15
PEMBAHASAN LATIHAN
Input
: i=1, j=0, jum=0
Output
: j dan jumlah
Proses
:
do while i<=5
do while j <=i
jum = jum + i
if j < i then
cetak j + +
else
cetak j + =
cetak jum
endif
j = j+1
enddo
i= i+1
cetak baris baru
enddo
TUGAS 4
Buatlah pseudocode, flowchart dan program untuk membuat
tampilan berikut :
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan
bolpoint.
Tugas dikumpulkan pada saat pertemuan 6. Bagi mahasiswa yang
tidak mengumpulkan tugas maka tidak mendapat nilai tugas 4
(tidak ada sistem susulan).
PERTEMUAN 6
MODULARISASI &
KOMUNIKASI ANTAR
MODUL
POKOK BAHASAN
1.
2.
3.
4.
MODULARISASI
Modularisasi digunakan bila ada suatu
permasalahan yang kompleks, sehingga
langkah pertama adalah mengidentifikasikan
tugas utama, setelah itu baru di bagi kedalam
tugas yang lebih rinci.
Proses ini disebut juga dengan Top Down
Design
PEMROGRAMAN MODULAR
Memecahkan algoritma ke dalam algoritma yang lebih
kecil/modul.
Modul yang dibentuk mempunyai kesatuan tugas/fungsi
maupun kesatuan proses/prosedur.
Setiap modul harus mempunyai single entry dan single
exit secara beruntun dari atas ke bawah atau dari awal
ke akhir modul.
Memiliki main program dan sub program atau modul
PEMROGRAMAN MODULAR
(lanjutan)
Enam langkah dalam modular:
1. Definisi masalah: klasifikasikan dalam input, proses
dan output
2. Kelompokkan aktivitas ke dalam modul. Definisikan
kegiatan dari modul-modul yang ada
3. Buat bagan susun untuk menjelaskan hirarki dan
hubungan antar modul
4. Buat logika dari main program dengan pseudocode.
Terlebih dahulu inventarisasi apa saja yang dikerjakan
dalam main program
5. Buat logika untuk tiap tiap modul dengan pseudocode
6. Desk checking algoritma: mencek kebenaran algoritma
dengan data
JANGKAUAN DATA
Global Data adalah variabel yang dikenal
diseluruh program tersebut, dan dapat diakses
dari setiap modul di program tersebut.
Local Data adalah variabel yang didefinisikan
disebuah modul. Variabel ini hanya dikenal di
modul dimana variabel tersebut didefinisikan.
SIDE EFFECT
Side effect adalah sebuah bentuk komunikasi
antar modul dengan bagian lain dalam program.
Global Data (Data Global)
Perubahan nilai global data berdampak
terhadap nilai data tersebut di semua modul.
Local Data (Data Lokal)
Perubahan nilai local data hanya berdampak
terhadap nilai data pada modul secara lokal.
CONTOH PEMROGRAMAN
MODULAR
Program Hitung_luasPP
{menentukan luas persegi
panjang berdasarkan data
yang diinput}
Deklarasi
integer p, l {global data}
Deskripsi
Baca p
Baca L
Hitung luaspp(p,l)
END
PARAMETER
Parameter Data
Parameter Status flag/boolean
Dalam merancang modul sebaiknya lebih
banyak menggunakan parameter data
Hindari menggunakan parameter status
sebanyak mungkin
PARAMETER PASSING
Menyampaikan data dari modul pemanggil ke modul
yang dipanggil (subordinate).
Menyampaikan informasi dari subordinate ke modul
pemanggil.
Informasi/data yang dikirim atau diterima di passing 2
arah dari modul pemanggil ke subordinate maupun
sebaliknya.
Proses
baca data_1, data_2, ...data_n
sort data bilangan tersebut
cetak hasil sort
Output
data_1
data_2
data_n
Hierarchy Chart
16
HASIL MODULARISASI
SUB SORTING_DATA
FOR I = 1 TO N
FOR J = N TO J>=I STEP -1
IF DATA[J] < DATA[J-1] THEN
TUKAR_DATA(J,J-1)
ENDIF
END FOR
END FOR
ENDSUB
SUB TUKAR_DATA(int a, int b)
INT TEMP
TEMP = DATA[B];
DATA[B] = DATA[A];
DATA[A] = TEMP
ENDSUB
SUB INPUT_DATA
FOR I = 1 TO N
BACA DATA[I]
END FOR
ENDSUB
SUB CETAK_DATA
FOR I = 1 TO N
BACA DATA[I]
END FOR
ENDSUB
PROGRAM SORTING
MAIN_SORTING
INT N, J, DATA[10]
BACA N
INPUT_DATA
SORTING_DATA
CETAK_DATA
END
KOHESI
Kohesi adalah keeratan hubungan elemenelemen di dalam suatu modul.
Macam-macam Kohesi
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
baik/kuat
Jelek/lemah
KOHESI (lanjutan)
Perubahan pada modul dengan tingkat kohesi
tinggi tidak terlalu membawa dampak perubahan
terhadap modul lain. Sehingga lebih mudah
dalam pemrograman, pengujian dan perawatan
Modul dengan tingkat kohesi tinggi, lebih mudah
dipahami dan didokumentasi
Pada modul dengan tingkat kohesi tinggi,
informasi lebih mudah disembunyikan, karena
komunikasi antar modul diminimalkan
KOHESI FUNCTIONAL
Mempunyai satu tugas
Menghasilkan satu hasil/satu parameter output
Bisa satu atau lebih parameter input
KOHESI SEQUENTIAL
Mempunyai pekerjaan yang beruntun
Kegiatan yang dilakukan lebih dari satu
Hasil dari kegiatan sebelumnya menjadi masukan bagi
kegiatan selanjutnya
Dapat dipecah menjadi Functional
KOHESI KOMUNIKASIONAL
KOHESI PROCEDURAL
Satu kegiatan dengan kegiatan lain tidak berhubungan
Hubungan antara elemen yang satu dengan yang lainnya
karena urutan statement
Dapat dipecahkan menjadi Functional
Contoh:
Sub Baca_record_mhs_dan_total_usia_mhs
set no_record to 0
set total_usia to 0
baca record_mhs
DO WHILE not EOF
total_usia = usia + total_usia
no_record = no_record + 1
ENDDO
print no_record, total_usia
EndSub
KOHESI TEMPORAL
Elemen-elemen terlibat dalam berbagai kegiatan yang
mempunyai hubungan dalam waktu
Urutan tidak penting
Contoh:
Sub Initialisasi
buka file transaksi
total_transaksi = 0
total_pen = 0
baris = 30
no = 0
hal = 0
EndSub
KOHESI LOGICAL
Elemen-elemen melakukan kegiatan dengan kategori yang sama
Parameter masukan menentukan kegiatan yang dilaksanakan
Tidak semua kegiatan dikerjakan
Contoh:
Read_all_files(file_code)
CASE if file_code
1 : read customer_transaction record
IF not EOF THEN
increment cust_trans_count
2 : read customer_master record
IF not EOF THEN
increment cust_master_count
3 : read product_master record
IF not EOF THEN
increment product_master_count
ENDIF
ENDCASE
END
KOHESI KOINSIDENTAL
Elemen-elemen tidak mempunyai hubungan
Contoh:
Sub File_Processing
Open employee updates file
read employee record
print_page heading
open employee master file
set page_count to one
set error_flag to false
EndSub
KOPLING
Kopling adalah keeratan hubungan antar modul.
Tingkat saling ketergantungan di antara dua
modul.
JENIS-JENIS KOPLING
Data
Stamp
Kontrol
External
Common
baik/lemah
jelek/kuat
Keterangan:
Makin
baik
kopling,
makin
rendah
ketergantungan suatu modul terhadap modul
lain
Modul dengan kopling yang baik adalah modul
independence
KOPLING DATA
Komunikasi diantara modul menggunakan
data. Diinginkan jumlah data minimal
Parameter data yang disalurkan semakin
sedikit semakin baik
Process_record_pelanggan
END
B. Hitung_pajak_penjualan (long total, pajak)
IF total> 5000 THEN
pajak = total * 0.25
Else If total > 4000 THEN
pajak = total * 0.2
Else
pajak = total * 0.15
ENDIF
END
KOPLING STAMP
Dua modul melakukan pass struktur data non
global yang sama
Struktur data: record, array
Timbul bahaya bila modul memeriksa struktur
data tetapi hanya menggunakan sebagian
KOPLING KONTROL
Dua modul melakukan passing parameter
menggunakan data kontrol (flag/switch)
KOPLING EXTERNAL
Dua modul atau lebih menggunakan data global
yang sama
Tidak ada parameter yang digunakan dari modul
pemanggil ke subordinate dan sebaliknya
Global Data Elementer Variabel
Modul A
Modul B
KOPLING COMMON
Dua modul atau lebih menggunakan struktur
data global yang sama
Struktur data global
Modul A
Modul B
LATIHAN
Buatlah pseudocode, plowchart dan program
untuk menampilkan menu untuk menghitung
luas bangun ruang seperti : persegi panjang,
segitiga dan bujur sangkar
TUGAS 5
Buatlah program lengkap dengan pseudocode dan
flowchart untuk menampilkan
Bilangan fibonancii
Bilangan faktorial
Angka bilangan bulat dalam bentuk kalimat, contoh :
32,768 ditampilkan Tiga Puluh Dua Ribu Tujuh Ratus
Enam Puluh Delapan Rupiah.
TUGAS 5 (lanjutan)
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 9. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 5 (tidak ada sistem susulan).