Anda di halaman 1dari 183

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

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.

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

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

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
implementasi dari algoritma
yang di tulis dalam bahasa
pemrograman.

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

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

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.

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

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.

10

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.
2.
3.
4.

5.
6.

Pilih data sederhana yang valid. Dua atau tiga data


biasanya sudah mencukupi.
Tentukan hasil output yang diharapkan untuk setiap
set data.
Buatlah tabel yang nama variabel yang ada pada
algoritma di sebuah kertas
Jalankan test satu persatu mengikuti algoritma yang
ada, mulai dari perintah / statement pertama sampai
dengan selesai
Ulangi langkah tersebut menggunakan set data yang
lain.
Cek apakah hasil dari langkah 5, sesuai dengan hasil
yang diharapkan di langkah kedua
12

PEMERIKSAAN ALGORITMA
Test Plan
Input Data

Output

Input Data 1 Data 2

1.5

Output
Volume bak

Data 1

Data 2

TABEL DESK CHECK


Algoritma

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

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); }
16

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
17

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

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

Tidak Kena Pajak

Kena Pajak

TABEL DESK CHECK


Algoritma
Gaji
Cetak keterangan

Data 1

Data 2

900,000

3,500,000

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

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
Baca n

Proses
DO WHILE i <= n
a= a+ 2
i=i+1
Cetak a
Enddo

Output
Cetak a

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
Input

Data

Hasil yang diharapkan


2 4 6 8 10

1. Leading Decision Loop


(lanjutan)
Tabel Desk Checking
i
1

n
5

i<=n a=a+2 i=i+1


Y
2
2

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
-

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


Contoh Kasus :
Sebuah Bank membuat nomor antrian
berdasarkan bilangan ganjil. Jumlah antrian
maksimal 5. Berikan bilangan ganjil sesuai
jumlah antrian

2. Trailing Decision Loop


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
Baca n

Proses
REPEAT
Cetak a
a= a+ 2
i=i+1
UNTIL i>n

Output
Cetak a

2. Trailing Decision Loop


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


Desk Checking
Data Masukan
Input
n

Data
5

Hasil yang diharapkan


13579

2. Trailing Decision Loop


Tabel Desk Checking
i
1
2
3
4
5
6

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

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

Hasil yang diharapkan


1 4 9 16 25

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

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
Baca b, k

Proses
DO WHILE b <= 3
DO WHILE k <= 3
cetak k
k=k+ 1
Enddo
Cetak
b=b+1
Enddo

Output
Cetak k

CONTOH NESTED REPETION


(lanjutan)
Tabel Desk Checking
b

b<=3

k<=3

Cetak b

K=k+1

Lanjutkan untuk desk checking berikutnya

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.

Konsep Pemrograman Modular


Komunikasi antar modul
Kohesi
Kopling

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

Sub luaspp(integer pj,


integer lb)
integer luas {local data}
luas = pj * lb
Cetak luas
EndSub

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_2data_n
sort data bilangan tersebut
A. Outline Solusi
Input
byk_data
data_1
data_2
data_n

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

Kegiatan lebih dari satu


Menggunakan data yang sama
Dapat dijadikan Functional
Contoh:
Sub Proses_perhitungan
C=A+B
D=A1
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
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

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