Anda di halaman 1dari 182

PERTEMUAN 1

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
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.
FAKTOR KUALITAS PROGRAM
1. Correctness : besarnya program dapat memuaskan
spesifikasi dan objektivitas dari misi pelanggan.
2. Reliability : besarnya program dapat diharapkan
memenuhi fungsi-fungsi yang dikehendaki.
3. Efficiency : jumlah sumber-sumber dan kode yang
dibutuhkan program untuk menjalankan fungsi-
fungsinya.
4. Integrity : besarnya pengontrolan pengaksesan oleh
seorang yang tidak mempunyai otorisasi terhadap
program dan data.
5. Usability : usaha yang dibutuhkan untuk mempelajari,
mengoperasikan, menyiapkan input &
menginterpretasikan output program .
FAKTOR KUALITAS PROGRAM
(lanjutan)
6. Maintability : usaha yang dibutuhkan untuk
menempatkan & menetapkan kesalahan pada program.
7. Flexibility : usaha yang dibutuhkan untuk memodifikasi
program yang dibutuhkan.
8. Testability : usaha yang dibutuhkan untuk menguji
program untuk menjamin program sesuai yang
diharapkan.
9. Portability : usaha yang dibutuhkan untuk mnetransfer
program dari lingkungan ke lingkungan lain.
10. Reusability : besarnya program dapat digunakan oleh
aplikasi lain.
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
FAKTA DALAM PEMBANGUNAN
PROGRAM
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.

 Objek berasal dari tipe data abstrak.

 Objek dapat menerima pesan (message), mengolah


data, dan mengirimkan pesan ke object lain 
membentuk interaksi antar object.

 Objek bersifat independen: tiap object dapat


dipandang sebagai sebuah entitas mandiri yang
memiliki peran atau tanggung jawab tertentu.
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.
TIGA FAKTOR PENTING DALAM
BAHASA PEMROGRAMAN

1. Sintaks
2. Semantik
3. Kebenaran Logika
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 yang
terkandung didalam statement tersebut.
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 diterjamahkan oleh translator bahasa
 Contoh : Algol, Fortran, Pascal, Visual Basic,
Oracle, dll.
PARADIGMA BAHASA
PEMROGRAMAN
KRITERIA BAHASA
PEMROGRAMAN
.
1. Clarity, simplicity dan unity
Kemudahan, kesederhanaan dan kesatuan
merupakan suatu kombinasi yang membantu
programer mengembangkan suatu algoritma.
2. Orthogonality
Merupakan suatu atribut yang dapat
dikombinasikan dengan beragam fitur bahasa
pemrograman sehingga setiap kombinasinya
mempunyai arti dan dapat digunakan.
KRITERIA BAHASA
PEMROGRAMAN (lanjutan)
3.
. Kewajaran untuk aplikasi
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)
5.
. Kemudahan untuk verifikasi program
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)
7.
. Portabilitas program
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
.
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 ?
PERTEMUAN 2

ALGORITMA &
PEMROGRAMAN
POKOK BAHASAN
1. Pendahuluan
2. Tahapan Pembangunan Program
3. Pengenalan Algoritma
4. Cara Menyajikan Algoritma
5. Data Program
6. Elemen-Elemen Program
PENDAHULUAN
 Perancangan program merupakan pengembangan
solusi terhadap identifikasi masalah dan menghasilkan
serangkaian instruksi yang membangun sebuah program
komputer untuk menghasilkan output.

 Sebuah program harus dirancang secara sistematis dan


benar sebelumnya memulai coding. Perancangan
program dihasilkan dalam pembangunan algoritma.
PERANAN ALGORITMA DALAM
PROGRAM
Program komputer adalah
perwujudan atau ALGORITMA
implementasi dari algoritma
yang di tulis dalam bahasa
pemrograman. 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
CONTOH ALGORITMA YANG
TIDAK BAIK
Program Cetak_Berulang
{Mencetak kata sebanyak i }
Deklarasi
integer i
Deskripsi
i=0
While (i <= 5)
cetak ”Bina Sarana Informatika”
END
CARA UNTUK MENYAJIKAN
ALGORITMA
1. Pseudocode
2. Flowchart
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)
Variabel & Konstanta
 Variabel adalah nama yang diberikan kepada
kumpulan sel memori untuk menyimpan item
data tertentu yang nilainya dapat berubah pada
program dieksekusi.
Contoh : namamhs, tgl_lahir, alamat1, dll.

 Konstanta adalah item data dengan nama dan


nilai yang tetap sama selama program di
eksekusi.
Contoh : define phi 3.14 atau phi = 3.14.
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.

 Yang termasuk token antara lain: identifier,


keywords(reserved words), operator, dan
sebagainya.

 Token yang satu dengan yang lain dipisahkan


dengan satu atau lebih spasi, tabulasi, baris baru,
atau komentar.
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.
B. TIPE DATA (lanjutan)
 Tipe data terstruktur yaitu tipe data yang dapat
menampung lebih dari satu nilai, sbb:
1. Array adalah tipe data berindeks yang terdiri
dari satu atau lebih elemen/komponen yang
memiliki tipe data yang sama.
2. Record adalah tipe data yang digunakan
untuk merepresentasikan kumpulan (set)
elemen/komponen yang memiliki satu jenis
atau lebih tipe data. Tiap element disebut juga
field atau property atau attribute
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);
1. Simple Statement (lanjutan)
 Jump Statement yaitu statement yang digunakan untuk
melompati statement-statement lain. Contoh :
 Melompat ke statement tertentu goto
 Keluar dari iterative statement break
2. Compound Statement
 Compound statement (kumpulan statement) adalah
sekumpulan statement yang terdiri dari statement-statement
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. For……EndFor
E. Function dan Procedure
• Procedure dan Function disebut juga
subroutine, merupakan blok statement yang
dapat dipanggil dari lokasi yang berbeda di dalam
program.
• Yang membedakan antara function dan
procedure yaitu: suatu function jika
dijalankan/dipanggil akan mengembalikan suatu
nilai.
• Ketika procedure atau function dipanggil, kita
dapat melewatkan suatu nilai ke dalam function
atau procedure tersebut.
• Nilai yang dilewatkan disebut juga argument atau
parameter.
TUGAS 1
Buatlah pseudocode & flowchart untuk
menghasilkan 1 liter air dengan menggunakan
tabung dengan ukuran 3 liter dan 5 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
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

3
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)
5
OUTLINE SOLUSI
Input Proses Output
Baca p volume_bak = p x l x t Volume_bak
Baca l
Baca t
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.

7
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
MELAKUKAN TEST TERHADAP
ALGORITMA
 Tujuan utama dari melakukan test terhadap
algoritma adalah adalah untuk menemukan
kesalahan utama logik sejak awal, sehingga
akan lebih mudah diperbaiki.

 Data test diperlukan untuk melakukan test


terhadap algoritma ini.

9
DESK CHECKS VS TEST PLANS
 Test Plan fokus pada nilai input dan output yang
dibutuhkan untuk menguji program tanpa
memperdulikan kinerja internal. Contoh : Apa
output yang benar dari sebuah input ?

 Desk Check menekankan pada nilai variabel


dan logika. Contoh : Berapakah nilai variabel x
setelah pernyataan; Apa pernyataan berikutnya
yang akan dieksekusi ?
TAHAPAN PENGECEKAN
ALGORITMA
1. Pilih data sederhana yang valid. Dua atau tiga data
biasanya sudah mencukupi.
2. Tentukan hasil output yang diharapkan untuk setiap
set data.
3. Buatlah tabel yang nama variabel yang ada pada
algoritma di sebuah kertas
4. Jalankan test satu persatu mengikuti algoritma yang
ada, mulai dari perintah / statement pertama sampai
dengan selesai
5. Ulangi langkah tersebut menggunakan set data yang
lain.
6. Cek apakah hasil dari langkah 5, sesuai dengan hasil
yang diharapkan di langkah kedua
11
PEMERIKSAAN ALGORITMA

Test Plan
− Input Data − Output

Data 1 Data 2 Data 1 Data 2


p 3 2 Volume bak 6 3
l 1 1.5
t 2 1
TABEL DESK CHECK
Data 1 Data 2
Baca p 3 2
Baca l 1 1.5
Baca t 2 1
Cetak volume_bak 6 3
MEMINDAHKAN ALGORITMA KE
DALAM BAHASA PEMROGRAMAN
 Setelah ke-empat langkah sebelumnya
dilakukan, maka pencodingan dapat
dimulai dengan menggunakan bahasa
pemrograman yang dipilih.

14
MEMINDAHKAN ALGORITMA KE DALAM
BAHASA PEMROGRAMAN (lanjutan)

//Program Volume Bak


include<stdio.h>
include<conio.h>
include<iostream.h>

Main() {
float p, l, t, volume_bak;
printf(”panjang :”);scanf (”%f”,p);
printf(”lebar :”);scanf (”%f”,l);
printf(”tinggi :”);scanf (”%f”,t);
Volume_bak = p* l * t;
Printf(”volume bak : %5.2f”,volume_bak); }

15
MENJALANKAN PROGRAM PADA
KOMPUTER
 Setelah pengcodingan, maka program dapat
dijalankan pada komputer. Jika program sudah
didesain dengan baik, maka akan mengurangi
tingkat kesalahan dalam melakukan testing
program.

 Langkah ini perlu dilakukan beberapa kali,


sehingga program yang dijalankan dapat
berfungsi dengan benar

16
DOKUMENTASI DAN PEMELIHARAAN
PROGRAM
 Dokumentasi melibatkan eksternal dokumentasi
(hierarchy chart, algoritma solusi, dan hasil data
test) dan internal dokumentasi (coding
program).

 Pemeliharaan program meliputi perubahan yang


dialami oleh program (perbaikan ataupun
penambahan modul, dll)

17
DISKUSI
1. Mengapa dibutuhkan tahapan dalam
perancangan program ?

2. Apa manfaat Desk Checking


Algoritma/pemeriksaan algoritma ?

18
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 2 m2 / 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
x 30. 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

3. Desk Checking Struktur Kontrol


Pemilihan

4. Contoh Algoritma & Pseudocode


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 :
 < lebih kecil dari
 > lebih besar dari
 = sama dengan
 <= lebih kecil sama dengan
 >= lebih besar sama dengan
 <> tidak sama dengan

4
STRUKTUR KONTROL PEMILIHAN
(lanjutan)
 Ada beberapa variasi dari struktur kontrol
selection yaitu:
1. Simple Selection
2. Combined / Multiple Selection
3. Nested Selection
a. Linear Nested IF Statement
b. Non-Linear IF Statement
4. Perintah Case
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

 Simple Selection ada 2 macam


– Simple selection bercabang
– Simple Selection tanpa cabang
A. SIMPLE SELECTION BERCABANG
 Simple selection bercabang terjadi ketika pilihan dibuat dua jalur
alternatif, tergantung pada hasil dari suatu kondisi bernilai benar
atau salah
 Format Struktur Simple Selection Bercabang
IF syarat THEN
instruksi1
ELSE
instruksi2
ENDIF
 Contoh
IF Saldo > 3000000 THEN
bunga = 0.05 * Saldo
ELSE
bunga = 0.01 * Saldo
ENDIF
B. SIMPLE SELECTION TANPA
CABANG
 Simple selection tanpa cabang digunakan ketika
instruksi yang dilakukan hanya ada kondisi benar
saja.
 Format Struktur Simple Selection Tanpa Cabang
IF syarat THEN
instruksi
 Contoh:
Diskon = 0
IF Subtotal > 100000 THEN
diskon = 0.1 * Subtotal
ENDIF
Total = Subtotal - Diskon
CONTOH KASUS SIMPLE
SELECTION
Buatlah pseudocode & flowchart untuk
menentukan apakah penghasilan per
bulan yang dimasukkan kena pajak
atau tidak. (kena pajak jika
penghasilan setahun lebih besar sama
dengan Rp. 15.600.000)
JAWABAN KASUS SIMPLE
SELECTION
Input : penghasilan per bulan
Output : keterangan
Proses : 1. total_penghasilan = penghasilan x 12
bulan
2. Jika total_penghasilan >= 15600000
maka keterangan kena pajak.
OUTLINE SOLUSI
Input Proses Output
Baca gaji total_penghasilan = keterangan
gaji * 12
IF total_penghasilan
>=15600000 THEN
keterangan=”Kena
Pajak”
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

Data 1 Data 2
Gaji 900,000 3,500,000

− Output Data
Data 1 Data 2
Keterangan Tidak Kena Pajak Kena Pajak
TABEL DESK CHECK
Data 1 Data 2
Gaji 900,000 3,500,000
Cetak keterangan Tidak Kena Pajak 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
A. Linear Nested IF
(lanjutan)
 Contoh Struktur Linear Nested IF Statement
IF ukuran = ’s’ THEN
harga = 35000
ELSE IF ukuran = ’m’ THEN
harga = 50000
ELSE
harga = 70000
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.
4. Perintah Case (lanjutan)
 Format Struktur Perintah Case pada bahasa C
switch (variabel_syarat)
case nilai-1 : aksi-1
case nilai-2 : aksi-2
default : aksi n
 Contoh :
switch (gol)
case ’A’: terapi =” jus strawbery”; break;
case ’B’ : terapi =”jus sirsak”; break;
case ’C’ : terapi =”jus wortel ”;break;
case ’D’ : terapi =”jus tomat” ;break;
default : terapi =”Terapi untuk golongan tersebut tidak
ditemukan”;
LATIHAN 3
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 berikut sesuai dengan tahapan pembangunan
program :
1. Pseudocode untuk menghitung akar-akar persamaan kuadrat f(x) =
Ax2+Bx+C. Syarat A ≠ 0
 D>0 punya dua akar real yang berbeda
 D=0 akar kembar
 D<0 akar kompleks
2. 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
1

PERTEMUAN 5

PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PENGULANGAN
POKOK BAHASAN
1. Definisi Struktur Kontrol Pengulangan

2. Jenis Struktur Kontrol Pengulangan

3. Pseudocode Struktur Kontrol Pengulangan

4. Desk Checking Struktur Kontrol Pengulangan

5. Algoritma Dengan Struktur Kontrol


Pengulangan

2
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)
1. Leading Decision Loop
 Kondisi diuji sebelum beberapa instruksi dieksekusi.
 Perintah leading decision loop adalah struktur Do
WHILE.
 Format Struktur Kontrol pengulangan DO WHILE
DO WHILE kondisi k bernilai true
instruksi_1
instruksi_2
……………
instruksi_n
counter
ENDDO
1. Leading Decision Loop
(lanjutan)
Contoh Kasus :
Sebuah hotel membuat penomoran kamar
yang dikelompokkan berdasarkan bilangan
genap. Jumlah kamar yang tersedia adalah
5 kamar. Berikan bilangan genap sesuai
dengan banyaknya kamar
1. Leading Decision Loop
(lanjutan)
 Definisi Masalah
Input : jumlah kamar
Output : 5 deret bilangan genap
Proses : Jika I <= jumlah kamar lakukan pengulangan berikut
a = a+ 2
cetak a
 Outline Solusi
Input Proses Output
Baca n DO WHILE i <= n Cetak a
a= a+ 2
i=i+1
Cetak a
Enddo
1. Leading Decision Loop
(lanjutan)
Program Bilangan_Genap
{Menghasilkan bilangan genap sesuai dengan data yang diinput}
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
1. Leading Decision Loop
(lanjutan)
 Desk Checking
 Data Masukan
Data
n 5

 Hasil yang diharapkan


2 4 6 8 10
1. Leading Decision Loop
(lanjutan)
 Tabel Desk Checking
i n i<=n a=a+2 i=i+1 Cetak a
1 5 Y 2 2 2
2 5 Y 4 3 4
3 5 Y 6 4 6
4 5 Y 8 5 8
5 5 Y 10 6 10
6 5 N - - -
2. Trailing Decision Loop
 Beberapa instruksi dieksekusi sekali sebelum kondisi diuji.
Jika kondisi False, instruksi akan diulang sampai kondisi
bernilai TRUE.
 Perintah trailing decision loop adalah struktur REPEAT ….
UNTIL.
 Format Struktur Kontrol pengulangan REPEAT….UNTIL
REPEAT
instruksi_1
instruksi_2
…….
instruksi_n
counter
UNTIL kondisi k true
2. Trailing Decision Loop
(lanjutan)
Contoh Kasus :
Sebuah Bank membuat nomor antrian
berdasarkan bilangan ganjil. Jumlah antrian
maksimal 5. Berikan bilangan ganjil sesuai
jumlah antrian
2. Trailing Decision Loop
(lanjutan)
 Definisi Masalah
Input : jumlah antrian
Output : 5 deret bilangan ganjil
Proses : Jika i <= jumlah antrian lakukan pengulangan berikut
cetak a
a = a+ 2
 Outline Solusi
Input Proses Output
Baca n REPEAT Cetak a
Cetak a
a= a+ 2
i=i+1
UNTIL i>n
2. Trailing Decision Loop
(lanjutan)
Program Bilangan_Ganjil
{Menghasilkan bilangan ganjil sesuai dengan data yang diinput}
Deklarasi
integer a= 1
integer i=1
integer n
Deskripsi
Baca n
REPEAT
Cetak a
a= a+ 2
i=i+1
Until i<=n
ENDDO
END
2. Trailing Decision Loop
(lanjutan)
 Desk Checking
Data
 Data Masukan
n 5

 Hasil yang diharapkan


13579
2. Trailing Decision Loop
(lanjutan)
 Tabel Desk Checking
i n Cetak a a=a+2 i=i+1 i>n
1 5 1 3 2 N
2 5 3 5 3 N
3 5 5 7 4 N
4 5 7 9 5 N
5 5 9 11 6 N
6 5 - - - Y
3. Counted Loop
 Pencacah pengulangan digunakan jika jumlah iterasi
pengulangan sudah diketahui. Pelaksanaan loop
dikendalikan oleh indeks pengulangan.
 Perintah counted loop adalah struktur FOR
 Format Struktur Kontrol pengulangan FOR
FOR loop_index=nilai_awal to nilai_akhir Step n
statement_1
statement_2
……………
statement_n
ENDFOR
3. Counted Loop (Lanjutan)
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 (Lanjutan)
 Outline Solusi
Input Proses Output

Baca n For i = 1 to n Cetak a


Cetak a
a= sqr(a)
EndFor
3. Counted Loop (Lanjutan)
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 (Lanjutan)

 Desk Checking
 Data Masukan
Data
n 5

 Hasil yang diharapkan


1 4 9 16 25
3. Counted Loop (Lanjutan)

 Tabel Desk Checking


i n i<=n a=sqr(i) Cetak a i=i+1
1 5 Y 2 2 2
2 5 Y 4 4 3
3 5 Y 6 6 4
4 5 Y 8 8 5
5 5 Y 10 10 6
6 5 N - - -
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
CONTOH NESTED REPETION
Buatlah pseudocode untuk menampilkan output seperti berikut :
111
222
333
Jawaban :
 Definisi Masalah
Input : jumlah baris dan jumlah kolom
Output : menampilkan angka sesuai baris dan kolom
Proses : DO WHILE b <= 3
DO WHILE k <= 3
cetak k
k=k+ 1
Enddo
cetak
b=b+1
Enddo
CONTOH NESTED REPETITION
(lanjutan)
 Outline Solusi
Input Proses Output

Baca b, k DO WHILE b <= 3 Cetak k


DO WHILE k <= 3
cetak k
k=k+ 1
Enddo
Cetak
b=b+1
Enddo
CONTOH NESTED REPETION
(lanjutan)
 Tabel Desk Checking
b k b<=3 k<=3 Cetak b K=k+1 B=b+1
1 1 Y Y 1 2
2 Y 1 3
3 Y 1 4
N - - 2
2 1 Y Y 2 2
Y 2 3
Y 2 4
N - - 3

 Lanjutkan untuk desk checking berikutnya


LATIHAN 6
 1 =1
1+2 =3
1+2+3 =6
1+2+3+4 = 10
1+2+3+4+5 = 15

 1 =1
1*3 =3
1*3*5 = 15
1*3*5*7 = 105
1*3*5*7*9 = 945
LATIHAN 6
• 10 + 8 + 6 + 4 + 2 = 30
10 + 8 + 6 + 4 = 28
10 + 8 + 6 = 24
10 + 8 = 18
10 = 10
---------- +
110
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. Konsep Pemrograman Modular


2. Komunikasi antar modul
3. Kohesi
4. Kopling

2
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 Sub luaspp(integer pj,
{menentukan luas persegi integer lb)
panjang berdasarkan data integer luas {local data}
yang diinput} luas = pj * lb
Deklarasi Cetak luas
integer p, l {global data} EndSub
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.
KOMUNIKASI ANTAR MODUL
 Parameter Aktual
Parameter yang disertakan pada saat prosedur
dipanggil untuk dilaksanakan.
Contoh : tukar (a,b); //a dan b adalah parameter
aktual
 Parameter Formal
Parameter yang dituliskan pada definisi suatu
prosedur atau fungsi.
Contoh : Prosedur tukar(x, y);
KOMUNIKASI ANTAR MODUL
(lanjutan)
 Pemanggilan Dengan Nilai (Call By Value)
pemanggilan dengan nilai, nilai dari parameter aktual
akan ditulis ke parameter formal. Dengan cara ini nilai
parameter aktual tidak bisa berubah, walaupun nilai
parameter formal berubah.
 Pemanggilan Dengan Acuan
Pemanggilan dengan reference merupakan upaya untuk
melewatkan alamat dari suatu variabel kedalam fungsi.
Cara ini dapat dipakai untuk mengubah isi suatu variabel
diluar fungsi dengan melaksanakan pengubahan
dilakukan didalam fungsi.
CONTOH KASUS MODULARISASI

Susunlah algoritma untuk mengurutkan


beberapa bilangan dengan urutan menaik
(ascending) dan tampilkan bilangan hasil
sort tersebut
CONTOH KASUS MODULARISASI
(lanjutan)
A. Definisi Masalah
Input : banyaknya data, bilangan yang akan
diurutkan
Output : Bilangan yang terurut
Proses : baca data_1, data_2…data_n
sort data bilangan tersebut
A. Outline Solusi
Input Proses Output
byk_data baca data_1, data_2, ...data_n data_1
data_1 sort data bilangan tersebut data_2
data_2 cetak hasil sort data_n
data_n
Hierarchy Chart
16

HASIL MODULARISASI
SUB INPUT_DATA
SUB SORTING_DATA FOR I = 1 TO N
FOR I = 1 TO N BACA DATA[I]
FOR J = N TO J>=I STEP -1 END FOR
IF DATA[J] < DATA[J-1] THEN ENDSUB
TUKAR_DATA(J,J-1)
ENDIF SUB CETAK_DATA
END FOR FOR I = 1 TO N
END FOR BACA DATA[I]
ENDSUB END FOR
ENDSUB
SUB TUKAR_DATA(int a, int b)
INT TEMP PROGRAM SORTING
TEMP = DATA[B]; MAIN_SORTING
INT N, J, DATA[10]
DATA[B] = DATA[A];
DATA[A] = TEMP BACA N
ENDSUB INPUT_DATA
SORTING_DATA
CETAK_DATA
END
KOHESI & KOPLING
 Cohesion dan Coupling merupakan konsep
dasar dalam perancangan dan rekayasa
perangkat lunak.

 Membagi software/perangkat lunak menjadi


modul-modul yang kecil bukan sekedar
memisahkan kumpulan kode dari kumpulan
kode lainnya. Tetapi memastikan bahwa modul
yang dirancang menganut prinsip "Loose
Coupling, High Cohesion"
KOHESI
 Kohesi adalah keeratan hubungan elemen-
elemen di dalam suatu modul.
 Macam-macam Kohesi
– Functional baik/kuat
– Sequential
– Communicational
– Procedural
– Temporal
– Logical
– Coincidental 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
 Kegiatan lebih dari satu
 Menggunakan data yang sama
 Dapat dijadikan Functional
 Contoh:
Sub Proses_perhitungan
C=A+B
D=A–1
E=A*B
F=A/B
G = A mod B
EndSub
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.

 Faktor yang mempengaruhi kopling:


1. Jumlah data yang disalurkan
2. Jumlah kontrol data yang disalurkan
3. Jumlah elemen data global yang digunakan
bersama-sama oleh beberapa modul
JENIS-JENIS KOPLING
 Data baik/lemah
 Stamp
 Kontrol
 External
 Common 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
CONTOH KOPLING DATA
A. Process_record_pelanggan


hitung_pajak_penjualan (total_harga, pajak_penjualan)


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
• current_record hanya berupa penunjuk nomor record sekarang
KOPLING KONTROL
• Dua modul melakukan passing parameter
menggunakan data kontrol (flag/switch)
• input_code berfungsi sebagai switch (berupa 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
• pajak_pen adalah variabel data global
KOPLING COMMON
 Dua modul atau lebih menggunakan struktur
data global yang sama
Struktur data global

Modul A Modul B
• record_pelanggan adalah struktur data global
LATIHAN 5
 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).

Anda mungkin juga menyukai