Anda di halaman 1dari 313

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 implementasi dari ALGORITMA
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
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 Proses Output
Baca n REPEAT Cetak a
Cetak a
a= a+ 2
i=i+1
UNTIL i>n
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
Data
n 5

Hasil yang diharapkan


13579
2. Trailing Decision Loop
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
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 Proses Output

Baca n For i = 1 to n Cetak a


Cetak a
a= sqr(a)
EndFor
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
Data
n 5

Hasil yang diharapkan


1 4 9 16 25
3. Counted Loop

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
DATA[B] = DATA[A]; INT N, J, DATA[10]
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).
PERTEMUAN 7

REVIEW/QUIZ
PERTEMUAN 9

ALGORITMA UNTUK
MASALAH BISNIS
POKOK BAHASAN

1. Struktur Program
2. Struktur Chart
3. Membuat Laporan Dengan Page Break
4. Contoh Algoritma Penyelesaian
STRUKTUR PROGRAM
Secara umum program yang dilakukan untuk memproses
data yang dibaca dari file dapat digambarkan sbb:
Sub Proses_record
Proses_inisialisasi
Baca record pertama
Do while not EOF
process_record_ini
Baca next record
ENDDO
Proses_final
END
STRUKTUR CHART
Algoritma di atas digambarkan dengan struktur chart
berikut:
• Tiga modul di atas dapat berisi statement yang
dibutuhkan untuk memproses data yang dibaca dari file
• Main program dari struktur chart sudah ada sehingga
dapat dikembangkan proses dari ketiga modul tersebut
MEMBUAT LAPORAN DENGAN
PAGE BREAK
Suatu laporan membutuhkan:
– Judul
– Baris judul
– Kolom judul
– Detail
– Total
Di samping itu suatu halaman laporan hanya
menampung beberapa baris record, sehingga harus
mengatur pemindahan ke halaman baru
Untuk itu dibutuhkan sebuah control break untuk
memeriksa kapan harus pindah ke halaman baru (page
break)
MEMBUAT LAPORAN DENGAN
PAGE BREAK (lanjutan)
1. Single-Level Control Break
2. Multiple-Level Control Break
CONTOH LAPORAN MULTI-
LEVEL BREAK
1. SINGLE-LEVEL BREAK
Single-Level Control Break adalah pemberhentian dalam
logika program (berhenti atau mengulang untuk
mencetak judul baru) berdasarkan nilai sebuah variabel.
Contoh : no departemen.
HIERARCHY CHART SINGLE-
LEVEL BREAK
Produce_
Single_level
control_break

Initialize Print_page Process Print_ Print_


variable _headings _this_ control_ report_
_fields records total_line total

Print_ Accumulate_ Reset_


detail_line control_total control_
total
2. MULTIPLE-LEVEL BREAK
Multiple-Level Control Break adalah pemberhentian
dalam logika program (berhenti atau mengulang untuk
mencetak judul baru) berdasarkan beberapa nilai
variabel. Contoh : total penjualan per sales dan total
penjualan per departemen
HIERARCHY CHART MULTIPLE-
LEVEL BREAK
Proceduce_
multiple_level
control_break

Initialize Print_page Process Print_minor Print_major Print_


variable _headings _this_ _control_ _control_ report_
_fields records total total total

Print_ Accumulate_ Reset_ Reset_


detail_line control minor_control major_control
_ total _ total
CONTOH KASUS
HIERARCHY CHART
ALGORITMA PEMECAHAN
Laporan_Penyewaan
Inisialisasi
Cetak_Judul
Baca Record Pertama
DO WHILE NOT EOF
If baris > 30 THEN
Cetak_Judul
Baris = 0
ENDIF
Process_Record
Baca Record Selanjutnya
ENDDO
Cetak_Total_Report
END
SUBORDINATE MODUL
1. Inisialisasi
Buka File
Total = 0
Hal = 0
Baris = 0
END
2. Cetak_Judul
Hal = hal + 1
Cetak “PT. Semesta Makmur Abadi ”
Cetak “Jalan Bahari Biru ”
Cetak “Jakarta”
Cetak “Laporan Gaji ”
Cetak “Tanggal Cetak “, date(), “Hal =”, hal
Cetak “No. NIP Nama Target Realisasi Komisi Gaji Pokok Total Gaji ”
END
SUBORDINATE MODUL (lanjutan)
3. Process_Record
komisi = (realisasi – target ) * 10000
Total_gaji = komisi + gaji_pokok
Cetak_Detail
accumulate_total
END
5. Cetak_Detail
Baris = baris +1
Cetak baris, NIP, Nama, Target, Realisasi, Komisi. Gaji_Pokok,
Total_gaji
END
SUBORDINATE MODUL (lanjutan)
6. Accumulate_total
Total = total + total_gaji
END
7. Cetak_total_Report
Cetak “Total gaji Sales”, total
Tutup File
END
TUGAS 6
Buatlah program lengkap dengan pseudocode dan
flowchart untuk menampilkan daftar gaji gaji karyawan,
dengan ketentuan sebagai berikut :
Kode Jabatan Gaji Kode Status Tunjangan
Jabatan Pokok Status
M Menikah 200.000
1 Administrasi 800.000
S Single 100.000
M Menikah 250.000
2 Operasional 850.000
S Single 150.000
TUGAS 6 (lanjutan)
Jumlah Karyawan = .... <diinput>

Bulan = ......... <diinput>

Input Data Karyawan

Data Karyawan ke = <counter jumlah>

NIP karyawan = ......... <diinput>

Nama Karyawan = ......... <diinput>

Kode Jabatan [1/2] = .... <diinput>

Kode Status [M/S] = .... <diinput>


TUGAS 6 (lanjutan)
Ketentuan :
Banyak data karyawan yang diinput harus sama dengan
ketentuan jumlah karyawan yang sudah diberikan pada
awal input data.
Total didapat dari pertambahan gaji pokok dengan
tunjangan.
Setelah selesai diinput maka akan menghasilkan
keluaran dalam bentuk tabel yang jumlahnya sama
sesuai dengan jumlah data yang diinput.
TUGAS 6 (lanjutan)
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 10. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 6 (tidak ada sistem susulan).
PERTEMUAN 10

PERANCANGAN
PROGRAM UNTUK
MASALAH BISNIS
POKOK BAHASAN
1. Teknik Perancangan Program
Berorientasi Bisnis
– Teknik Perancangan File/ Database dalam
bentuk spesifikasi file
– Teknik Perancangan Program dalam bentuk
spesifikasi program
2. Contoh kasus dan contoh penggunaan
teknik perancangan file dan program
TEKNIK PERANCANGAN PROGRAM
BERORIENTASI BISNIS
Berikut ini akan dijelaskan beberapa teknik
perancangan program di dalam sebuah
pemrograman terstruktur untuk mendukung
proses pembangunan/pengembangan sistem.
Teknik perancangan file/database dalam bentuk
spesifikasi file
Teknik perancangan program dalam bentuk
spesifikasi program
1. Teknik Perancangan File atau
Database
Adapun mengenai langkah-langkah di dalam perancangan
file tersebut adalah sebagai berikut:
1.Menentukan banyaknya jumlah kebutuhan file yang nanti
akan digunakan di dalam program.
Banyaknya file yang dibutuhkan oleh sistem diperoleh dari
hasil perancangan database menggunakan Normalisasi.
Dari hasil Normalisasi terbentuk tabel-tabel atau file-file
yang akan dijelaskan di dalam spesifikasi file.
2.Menentukan parameter dari file yang akan dibuat.
Parameter yang dimaksud adalah elemen-elemen yang
menjelaskan spesifikasi singkat mengenai file.
Sekilas Analisa Program Penggajian
Program Penggajian adalah sebuah aplikasi yang
melakukan proses penghitungan gaji pegawai, dengan
dasar input absen dan proses yang dilakukan secara batch
atau tunda (satu kali dalam sebulan).
Input: Data absen harian
Proses: Penghitungan Gaji, parameternya:
Tunjangan pegawai (dari status pegawai)
Gaji Pokok (dari golongan pegawai)
Lembur (dari kehadiran pegawai)
Potongan (jika pegawai mempunyai potongan
yang dibebankan pada gaji)
Output: Laporan Gaji Bulanan dan Slip Gaji pegawai
CONTOH TABEL PEGAWAI
No Elemen Data Akronim Tipe Panjang Ket
1 No Induk Pegawai NIP Text 6 PK

2 Nama Pegawai NaPeg Text 25

3 Alamat Pegawai AlmPeg Text 50

4 dst……. …….. …. ……..

Jika dijumlahkan panjang record pegawai 180


misal
PARAMETER FILE
a. NAMA FILE
Nama yang dibuat untuk menunjukkan nama file
yang digunakan. Dituliskan di dalam source program.
Contoh: File_Pegawai, File_Lembur, dll.
b. AKRONIM FILE
Nama yang dibuat untuk menunjukkan file disimpan
dalam tabel/database, dituliskan dengan extension-
nya.
Contoh: Pegawai.mdb, Lembur.dbf, Absensi.myd
c. KODE FILE
Nama yang dibuat pada saat file digambarkan dalam
bentuk diagram (Normalisasi)
Contoh: Tabel Pegawai, Tabel Lembur, Tabel Absen
PARAMETER FILE (lanjutan)
d. TYPE FILE
Tipe dari tabel yang digunakan dalam program.
Contoh: File Master, File Transaksi, File Laporan, File
Histori, File Backup, File Kerja dan File Library
e. Panjang Record (RECORD-SIZE)
Jumlah karakter yang digunakan dalam satu record.
Contoh: 180 Characters
f. ORGANISASI FILE
Organisasi yang digunakan pada saat menyimpan data
ke dalam tabel.
Contoh: Index Sequential
g. ACCESS FILE
Cara mengakses data yang disimpan pada tabel.
Contoh: Random
PARAMETER FILE (lanjutan)
h. MEDIA FILE
Media yang digunakan untuk menyimpan file (tabel)
Contoh : Harddisk
i. FIELD KEY
Kunci field yang dipakai dalam program pada saat
program mengakses database
Contoh : Nomor Induk Pegawai (NIP)
j. SOFTWARE
Software yang digunakan untuk membuat tabel.
Contoh : Microsoft Access 2007, MySQL
2. Teknik Perancangan Program
Masalah Bisnis
1. Menentukan banyaknya jumlah kebutuhan program
yang akan dibuat.
Jumlah program yang dibutuhkan oleh sistem dibuat
dalam bentuk modul yang nantinya akan digambarkan
dalam diagram HIPO. Dalam HIPO dapat diketahui
dengan jelas hirarki program. Program mana yanng
memanggil program lainnya, dan kemana program
akan kembali setelah selesai melakukan eksekusi.
2. Menentukan Parameter dari Program yang akan dibuat.
Parameter yang. dimaksud adalah elemen-elemen
yang menjelaskan spesifikasi singkat mengenai
program.
2. Teknik Perancangan Program
Masalah Bisnis (lanjutan)
Parameter Program meliputi hal-hal sebagai berikut:
a. NAMA PROGRAM
Nama yang dibuat untuk menunjukkan identitas
program
Contoh: Program HitungGaji
b. AKRONIM PROGRAM
Nama yang dibuat untuk menyimpan source program
Contoh: HitGaji.vbp
c.KODE PROGRAM
Nama yang dibuat pada saat file digambarkan dalam
bentuk diagram (HIPO)
Contoh: Gj01
2. Teknik Perancangan Program
Masalah Bisnis (lanjutan)
d. FUNGSI PROGRAM
Menjelaskan fungsi atau kegunaan dari program
yang dibuat
Contoh: Untuk program Gaji, maka fungsi program
dituliskan: Program untuk perhitungan gaji
karyawan.
e. BAHASA PEMROGRAMAN
Menentukan bahasa pemrograman yang digunakan
pada saat pembuatan souce program, biasanya
berhubungan dengan point (b) untuk menyatakan
extension file.
Contoh: Visual Basic 6.0
2. Teknik Perancangan Program
Masalah Bisnis (lanjutan)
f. PROGRAM FLOWCHART
Menggambarkan logika atau proses program dalam
bentuk flowchart.
g. PROSES PROGRAM
Menjelaskan secara rinci mengenai isi dan proses
program, termasuk penjelasan dari command button
apabila dijalankan.
Contoh Program Bisnis
pada
Sistem Perpustakaan

Dosen menjelaskan tentang pembahasan program


bisnis, dan untuk selanjutnya mengembangkan
sendiri dari contoh yang diberikan.
TABEL PADA SISTEM INFORMASI
PERPUSTAKAAN
1. Tabel Anggota
2. Tabel Buku
3. Tabel User
4. Status
5. Tabel Peminjaman
6. Tabel Pengembalian dan
7. Tabel Detail Peminjaman
SPESIFIKASI FILE/DATABASE
1. Spesifikasi Tabel Anggota
Nama File : Tabel Anggota
Akronim File : tbl_anggota.myd
Fungsi File : untuk menyimpan data anggota
perpustakaan
Tipe File : File Master
Organisasi File : Index Sequential
Akses File : Random
Media File : Harddisk
Panjang Record : 160 karakter
Kunci Field : noang
Software : MySQL
Tabel II.1
Tabel Anggota
No Elemen Data Akronim Tipe Panjang Ket
1 Nomor Anggota noang varchar 10 PK
2 Nama Anggota nama varchar 20
3 Jenis Kelamin jk varchar 1
4 Alamat alamat varchar 50
5 Pekerjaan pekerjaan varchar 15
6 Telepon telp varchar 15
7 Alamat Email email varchar 25
8 Tanggal Daftar tgldaftar Date 8
9 Tanggal Berlaku tglberlaku Date 8
10 Status status varchar 9
SPESIFIKASI FILE/DATABASE
(lanjutan)
2. Spesifikasi Tabel Buku
Nama File : Tabel Buku
Akronim File : tbl_buku.myd
Fungsi File : untuk menyimpan data buku perpustakaan
Tipe File : File Master
Organisasi File : Index Sequential
Akses File : Random
Media File : Harddisk
Panjang Record : 161 karakter
Kunci Field : kdbuku
Software : MySQL
Tabel II.2
Tabel Buku
No Elemen Data Akronim Tipe Panjang Ket
1 Kode Buku kdbuku varchar 7 PK
2 Judul Buku judul varchar 80
3 Pengarang pengarang varchar 20
4 Penerbit penerbit varchar 25
5 Tahun Terbit thnterbit year 4
6 Kota Terbit kota Varchar 15
7 Stok stok tinyint 2
8 Tanggal Entri tgl_entri Date 8
PENGKODEAN
Kode yang dibuat dalam pengkodean adalah field-field
yang dijadikan sebagai kunci primer (Primary Key/PK):
1.Nomor Anggota

2.Kode Buku
Spesifikasi Program (Diagram
HIPO

Catatan: Login tidak


perlu digambarkan di
dalam HIPO
Spesifikasi Program dalam
perancangan program
Berdasarkan HIPO, spesifikasi program diantaranya:
1. Spesifikasi Program Menu Utama
2. Spesifikasi Program Data Anggota
3. Spesifikasi Program Data Buku
4. Spesifikasi Program Data User
5. Spesifikasi Program Transaksi Peminjaman
6. Spesifikasi Program Transaksi Pengembalian
7. Spesifikasi Program Laporan Data Anggota
8. Spesifikasi Program Laporan Data Buku
9. Spesifikasi Program Laporan Peminjaman
10. Spesifikasi Program Laporan Pengembalian
11. Spesifikasi Program Pencetakan Kartu Anggota
12. Spesifikasi Program Pencetakan Laporan
Catatan: hanya no.5 yang dijelaskan dalam pertemuan ini
Spesifikasi Program Transaksi
Peminjaman
Nama program : Peminjaman
Akronim : Peminjaman.vbp
Fungsi : Untuk melakukan peminjaman buku
Bahasa program : Visual Basic 6.0
Bentuk tampilan : Lihat Lampiran C.6
Proses Program :
a. Klik Tambah untuk meminjam buku dan nomor peminjaman
muncul otomatis. Isikan data anggota dan data buku yang dipinjam,
jika peminjaman melebihi batas jumlah peminjaman maka muncul
pesan “peminjaman lebih dari 2 buku”.
b. Klik Simpan untuk menyimpan data peminjaman
c. Klik Batal untuk pembatalan peminjaman
d. Klik Cetak untuk mencetak bukti transaksi peminjaman
e. Klik Tutup untuk keluar dari menu transaksi peminjaman
PROGRAM FLOWCHART
Flowchart yang dibuat diantaranya:
1. Flowchart Login
2. Flowchart Menu Utama
3. Flowchart Anggota
4. Flowchart Buku
5. Flowchart User
6. Flowchart Peminjaman
7. Flowchart Pengembalian
8. Flowchart Laporan Peminjaman
9. Flowchart Laporan Pengembalian
Catatan: hanya no.2 yang dijelaskan dalam pertemuan ini, selebihnya
Dosen mengembangkan sendiri bentuk flowchart di atas
Flowchart Menu Utama
Flowchart Menu Utama (lanjutan)
PERTEMUAN 11

KONSEP PEMROGRAMAN
BERORIENTASI OBJEK
POKOK BAHASAN
1. Pendahuluan
2. Pengenalan Pemrograman Berorientasi Objek
3. Pengenalan Objek & Class
4. Karakteristik OOP
5. Kelebihan OOP
6. Pemrograman Terstruktur VS Pemrograman
Berorientasi Objek
PENDAHULUAN
• Perancangan prosedural memiliki keterbatasan dalam
pengembangan sistem yang besar, jaringan dan sistem
multi user.
• Meskipun disusun secara terstruktur dan modular, tetap
menjadi sangat rumit dan sulit dipahami.
• Kurangnya menyadari pekerjaan yang dilakukan dengan
tim pengembang sehingga terjadi duplikasi pada
beberapa bagian.
• Teknologi berorientasi objek dapat mengatasi
permasalahan di atas serta memberikan fleksibilitas dan
ekonomis untuk program sistem jaringan dan multi user
PENGENALAN PEMROGRAMAN
BERORIENTASI OBJEK
Pemrograman berbasis objek (OOP)
berdasarkan pada konsep objek dan
interaksinya.
Objek dapat menerima pesan (message),
mengolah data, dan mengirimkan pesan ke
objek lain membentuk interaksi antar objek.
Objek bersifat independen: tiap objek dapat
dipandang sebagai sebuah entitas mandiri yang
memiliki peran atau tanggung jawab tertentu.
PENGENALAN PEMROGRAMAN
BERORIENTASI OBJEK (lanjutan)
APAKAH OBJEK ?
Objek adalah representasi sebuah entitas yang
memiliki makna tertentu yang menjadi perhatian si
pemandang.
Segala sesuatu yang ada di dunia adalah objek.
Cth : Manusia, Bunga, Hewan, Mobil, Meja, Kursi,
Sepeda, Kereta, Pesawat terbang, dll.
Setiap sistem terdiri dari objek-objek (sistem juga
termasuk objek).
Evaluasi & pengembangan sistem disebabkan oleh
interaksi antara objek-objek di dalam atau di luar
sistem.
APAKAH KELAS ?
Merupakan template untuk membuat obyek.
merupakan prototipe/blue prints yang
mendefinisikan variable-variabel dan
method –method secara umum.
Objek (instances) merupakan hasil instansiasi
dari suatu kelas, proses pembentukan obyek
dari suatu class disebut dengan instantiation.

banyak instance
(wujud nyata)

satu template
7
CONTOH KELAS
Sebuah kelas Sebuah objek
(Konsep) (Realisasi)

Rekening Bank Udin


Saldo: Rp5.257.000
Bank
Rekening Bank Ali
Saldo :Rp13.245.069
Beberapa objek
dari kelas yang sama
Rekening Bank Susi
Saldo : Rp366.891.833
CONTOH KELAS (lanjutan)

Class Mobil

Class Mobil B7471UL B851OK


Warna Biru Merah
Tahun 2009 2008
Variabel Instance Manufaktur Toyota Mitsubishi
Kecepatan 80 km/jam 60 km/jam
Method Instance Akseleration()
Stop()
Break()
Turn(direction)
STRUKTUR KELAS
Contoh kelas mobil Contoh Objek Mobil
Mobil Nama B7471UL: Mobil B851OK:Mobil
Class
Warna Biru Merah
Tahun 2009 2008
Manufaktur Atribut Toyota Mitsubishi
Kecepatan K80 km/jam 60 km/jam
+Akseleration() +Akseleration() +Akseleration()
+Turn(direction) +Turn(direction) +Turn(direction)
+Stop() Method +Stop() +Stop()
+Break() /behavior +Break() +Break()
KARAKTERISTIK OBJEK
Attributes :
Warna, Tahun Produksi, Manufaktur,
kecepatan

Behavior/Tingkah Laku :
Akseleration(), Turn(direction),
Stop(), Break() dll

Identitas :
B7471UL
ATRIBUT
Atribut adalah data yang membedakan
antara objek satu dengan yang lain.
Contoh atribut mobil : manufaktur, model,
warna, jumlah pintu, ukuran engine,
kecepatan dll
Dalam class, atribut disebut sebagai
variabel.
ATRIBUT (lanjutan)
Instance variable
– adalah atribut untuk tiap obyek dari class yang sama.
– Tiap obyek mempunyai dan menyimpan nilai
atributnya sendiri.
– Jadi tiap obyek dari class yang sama boleh
mempunyai nilai yang sama atau beda
Class variable:
– adalah atribut untuk semua obyek yang dibuat dari
class yang sama.
– Semua obyek mempunyai nilai atribut yang sama.
– Jadi semua obyek dari class yang sama mempunyai
hanya satu nilai yang value nya sama.
TINGKAH LAKU
• Tingkah laku/behavior adalah hal-hal yang bisa
dilakukan oleh objek dari suatu class.
• Behavior dapat digunakan untuk mengubah nilai atribut
suatu objek, menerima informasi dari objek lain, dan
mengirim informasi ke obyek lain untuk melakukan suatu
task.
• Dalam class, behavior disebut juga sebagai methods.
• Contoh: mobil
akseleration
stop
turn
break
TINGKAH LAKU (lanjutan)
• Method adalah serangkaian statements dalam
suatu class yang menghandle suatu task
tertentu.
• Cara objek berkomunikasi dengan objek lain
adalah dengan menggunakan method.
RESPONSIBILITY
Responsibility adalah sebuah kontrak atau
sebuah obligasi dari sebuah class.
Saat sebuah class dibuat, semua objek dalam
class tersebut memiliki keadaan dan tingkah
laku yang sama.
Saat sebuah class dimodelkan, awal yang baik
adalah menspesifikasikan responsibilities
sesuatu dalam sebuah kamus.
Teknik seperti CRC card (Class Responsibility
Collaboration) dan use case dapat membantu.
KONSTRUKTOR
Konstruktor adalah proses instansiasi objek dari kelas
dilakukan pada operasi khusus atau sekumpulan
instruksi.
Konstruktor menetapkan nilai awal untuk atribut objek
baru.
Konstruktor biasanya memiliki nama yang sama dengan
kelasnya.
Pseudocode untuk instansiasi objek baru
Create nama-objek as new nama-Class()
Contoh :
Create mobil as new Mobil()
KONSTRUKTOR (lanjutan)
Kata NEW menunjukkan pembuatan objek baru.
Nama kelas diawali dengan huruf besar. Contoh : Mobil,
Siswa, Pendaftaran, dll.
Nama objek diawali dengan huruf kecil. Contoh : mobil,
siswa, pendaftaran, dll
Konstruktor memungkinkan :
– Memiliki parameter yang menginisilisasi atribut
dengan nilai spesifik. Contoh : Create mobil as new
Car (”Ford”, ”Falcon”, 4, 300, 6, ”Biru”, 0); atau
– Tidak memiliki parameter. Objek baru dengan nilai
default untuk semua atributnya.
AKSESOR & MUTATOR
Nilai variabel dari objek tersedia untuk semua operasi di
dalam objek tersebut, tetapi tersembunyi dari objek luar.
Untuk keamanan, operasi publik dikenal istilah aksesor
dan mutator, yang membolehkan objek luar untuk
mengakses nilai pada atribut.
Aksesor adalah nama operasi yang mengakses nilai.
Nama aksesor dimulai dengan kata GET seperti
getPaySlip().
Mutator adalah nama operasi yang merubah nilai atribut.
Operasi mutator memungkinkan objek eksternal untuk
mengubah nilai yang tersimpan dalam atribut. Nama
mutator diawali dengan kata SET seperti setPayRate().
VISIBILITY
Visibility merupakan kemampuan suatu obyek
untuk melihat atau berhubungan dengan obyek
lain.
Atribut dan metoda dapat memiliki salah satu
sifat visibility berikut :
Private (-), tidak dapat dipanggil dari luar
class yang bersangkutan
Protected (#), hanya dapat dipanggil oleh
class yang bersangkutan dan anak-anak yang
mewarisinya
Public (+), dapat dipanggil oleh siapa saja
PENGIRIMAN
PESAN/MESSAGING
• Objek-objek bekerjasama dengan mengirimkan
pesan dari satu objek ke objek lainnya.
• Suatu obyek mengirimkan pesan ke objek lain
untuk melakukan sebuah operasi.
• Suatu objek juga dapat menerima pesan dari
objek lain untuk melakukan operasi lainnya.
• Kunci dalam pemrograman berorientasi objek
adalah bahwa setiap objek itu sendiri
bertanggung jawab untuk melaksanakan tugas.
PENGIRIMAN
PESAN/MESSAGING (lanjutan)
• Ini termasuk interaksi dan komunikasi dengan
benda-benda lainnya.
• Objek mengirim pesan ke objek lainnya. Pesan
mungkin menyampaikan informasi tambahan
melalui parameter untuk benda-benda
penerima.
Contoh Messaging
• Mobil yang diparkir di depan rumah hanya
sepotong logam yang dengan sendirinya tidak
mampu melakukan aktivitas apapun. Pengemudi
harus menyalakan mobil, menggunakan rem, dll
• Objek "pengetik" dapat mengirim pesan
"mengubah ukuran (20)" ke objek huruf untuk
mengubah ukuran font.
KARAKTERISTIK OOP

Abstraksi
Enkapsulasi
Inheritansi
Polimorfisme
ABSTRAKSI
• Abstraksi adalah proses penyembunyian
kerumitan dari suatu proses untuk
permasalahan yang dihadapi.
• Contoh : Orang hanya perlu berpikir bahwa
mobil adalah sebuah objek yang telah memiliki
prilaku spesifik, yang dapat digunakan sebagai
alat transportasi, sehingga dia/mereka tinggal
menggunakannya atau mengendarainya tanpa
harus mengetahui kerumitan proses yang
terdapat di dalam mobil tersebut.
ABSTRAKSI (lanjutan)
Memiliki :

Tinggi
Segitiga
Alas
Apa yang anda ingin segitiga lakukan ?
Hitung Luas

Hitung Keliling
ENKAPSULASI
Enkapsulasi atau pembungkusan berfungsi
untuk melindungi suatu objek dari dunia luar,
sehingga seseorang tidak akan mampu
merusak objek yang terbungkus. Objek yang
terbungkus dalam suatu kelas baik data
maupun fungsinya tidak bisa terlihat apalagi
dirubah pada saat objek digunakan.
CONTOH ENKAPSULASI

Disini terjadi penyembunyian informasi tentang


bagaimana cara kerja pengecekan validitas kartu,
kecocokan pin yang dimasukkan, koneksi ke database
server, dll, dimana hal-hal tersebut tidak perlu diketahui
oleh pengguna tentang bagaimana cara kerjanya.
INHERITANSI
Kelas dapat menurunkan metode-metode
dan properti-properti yang dimilikinya pada
kelas lain. Kelas yang mewarisi metode dan
properti dari objek lain dinamakan kelas
turunan. Kelas turunan ini mampu
mengembangkan metode sendiri.
CONTOH INHERITANSI

30
POLIMORFISME
Polimorfisme dapat diartikan sebagai
kemampuan suatu bahasa pemrograman untuk
memiliki fungsi-fungsi atau metode yang
bernama sama tetapi berbeda dalam parameter
dan implementasi kodenya (overloading).
Kelas turunan dapat menggunakan fungsi yang
ada pada kelas pewarisnya dan dapat
mengimplementasikan kode yang berbeda dari
fungsi pewarisnya ini dinamakan overriding.
EMPLOYEE

NIP

Nama
Jabatan

createNew

getSalary
Apakah Mereka Memiliki Gaji
Yang Sama

Tetap

Kontrak Honorer
Paruh Waktu Outsourcing
CONTOH POLIMORFISME
TAHAPAN PERANCANGAN
PROGRAM BERORIENTASI OBJEK
1. Identifikasi kelas, atribut, responsibility
dan operasi
2. Menentukan hubungan antar objek dan
kelas
3. Perancangan algoritma untuk operasi
menggunakan desain struktur
4. Mengembangkan tes algoritma
KELEBIHAN PEMROGRAMAN
BERORIENTASI OBJEK
• Menyediakan struktur modular yang jelas untuk program sehingga
bagus digunakan untuk mendefinisikan tipe data abstrak di mana
detil implementasinya tersembunyi.
• Mempermudah dalam memelihara dan memodifikasi kode yang
sudah ada. Objek yang baru dapat dibuat tanpa mengubah kode
yang sudah ada.
• Menyediakan framework untuk library kode di mana komponen
software yang tersedia dapat dengan mudah diadaptasi dan
dimodifikasi oleh programmer. Hal ini sangat berguna untuk
mengembangkan GUI.
• Resiko kesalahan relative kecil (lebih sedikit mengetik), sintaks juga
tidak perlu dihafalkan, karena semuanya sudah disediakan.
• Waktu debugging lebih singkat, karena setiap objek tidak perlu di-
debug setiap kali digunakan
PEMROGRAMAN TERSTRUKTUR VS
PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman Terstruktur OOP


a. Penekanan pada urutan yang a. Pendekatan lebih pada data
harus dikerjakan (algoritma bukanya pada fungsi/prosedur
pemecahan masalah)
b. Program berukuran besar b. Program besar dibagi ke dalam
dipecah-pecah menjadi program- Objek-objek. Struktur data
program yang lebih kecil dirancang dan menjadi
(Modular) karakteristik dari objek-objek
c. Kebanyakan fungsi/prosedur c. Fungsi-fungsi yang
berbagi data global mengoperasikan data tergabung
dalam suatu objek yang sama
PEMROGRAMAN TERSTRUKTUR VS
PEMROGRAMAN BERORIENTASI OBJEK
(lanjutan)
Pemrograman Terstruktur PBO
d. Data bergerak secara bebas d. Data tersembunyi dan terlindung
dalam sistem, dari satu fungsi ke dari fungsi/prosedur yang ada di
fungsi yang lain saling terkait luar

e. Fungsi-fungsi mentransformasi e. Objek-objek dapat saling


data dari satu bentuk ke bentuk berkomunikasi dengan saling
yang lain mengirim message satu sama
lain
f. Pendekatan adalah pendekatan f. Pendekatanya adalah bottom up
top down (dari atas ke bawah) (dari bawah ke atas)
PERTEMUAN 12

TAHAPAN PERANCANGAN
BERORIENTASI OBJEK
POKOK BAHASAN
1. Identifikasi kelas, atribut, responsibility
dan operasi
2. Menentukan hubungan antar objek dan
kelas
3. Perancangan algoritma untuk operasi
menggunakan desain struktur
4. Mengembangkan tes algoritma atau
menjalankan algoritma
IDENTIFIKASI KELAS, ATRIBUT,
RESPONSIBILITY DAN OPERASI
Sama seperti pendekatan top-
down, untuk mendefinisikan garisbawahi kata
benda dan sifat yang relevan dengan masalah.
Contoh
Dibutuhkan program untuk membaca file
karyawan yang berisikan berisi nomor karyawan,
tingkat upah, dan jumlah jam kerja per minggu.
Program kemudian memvalidasi upah dan jam
kerja. Jika benar, hitung upah mingguan
pegawai dan cetak payslip
IDENTIFIKASI KELAS, ATRIBUT,
RESPONSIBILITY DAN OPERASI
(lanjutan)
Validasi : menurut aturan perusahaan, maksimal
seorang pegawai bekerja 60 jam seminggu dan
maksimum 250,000 per jam. Jika jam bekerja ata
u tingkat upah melebihi aturan, input data dan
pesan yang sesuai akan dicetak dan
upah mingguan karyawan tidak dihitung.
Hitung upah mingguan : upah mingguan dihitung
jam kerja dikali tingkat upah. Jika lebih dari 35 jam
kerja, pembayaran untuk lembur jam kerja dihitung
setengahnya.
IDENTIFIKASI KELAS, ATRIBUT,
RESPONSIBILITY DAN OPERASI
(lanjutan)
Kelas Atribut Responsibility operasi
Payslip empNum Validasi data +setEmpNum()
+setPayRate()
+setHoursWorked
()
payRate Laporan validasi data +getValidInput(Val
idInput)
hoursWorked Hitung upah mingguan -setPay()
(mutator)
weeklyPay Cetak slip gaji untuk setiap +printPaySlip()
absen yang valid
Payroll File data Baca file data absen +runTimeSheet()
absen +run()
MENENTUKAN HUBUNGAN ANTAR
OBJEK DAN KELAS
Berdasarkan pernyataan masalah diperoleh dua
kelas yaitu penggajian dan payslip. Objek dari
kelas penggajian menggunakan objek dari kelas
payslip. Hubungan antar kelas digambarkan
dengan notasi UML.
Payroll Uses Payslip
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR
Setiap operasi dalam kelas memerlukan penjelasan
langkah-demi langkah instruksi yang menghasilkan
perilaku yang diperlukan. Masing-masing algoritma
dimulai dengan nama operasi dan diakhiri dengan
pernyataan END.
Data yang dibutuhkan objek payslip dikirim dari
penggajian segera setelah diciptakan. Nilai atribut
tersedia untuk semua operasi di dalam kelas
dan empNumber, weeklyPay, validInput, hoursWorked
dan payRate dapat dilihat untuk setiap operasi.
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR (lanjutan)
setEmpNumber(inEmpNumber)
empNumber = inEmpNumber
END
setPayRate(inPayRate)
set errorMessage to blank
IF inPayRate>MAX_PAY THEN
errorMessage = ”Rate upah melebihi 250,000”
Print empNumber, inPayRate, errorMessage
validInput = false
ELSE payRate = inPayRate
END IF
END
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR (lanjutan)
setHoursWorked(inHoursWorked)
Set errorMessage to blank
IF inHoursWorked > MAX_HOURS THEN
errorMessage = ”Jam kerja melebihi 60”
Print empNumber, inHoursWorked, errorMessage
validInput = false
ELSE
hoursWorked = inHoursWorked
ENDIF
END
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR (lanjutan)
setPay()
IF hoursWorked <= NORM_HOURS THEN
weeklyPay = payRate * hoursWorked
ELSE
overtimeHours = hoursWorked – NORM_HOURS
overtimePay = overtimeHours * payRate * 1.5
weeklyPay = (payRate * NORM_HOURS) +
overtimePay
ENDIF
END
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR (lanjutan)
Konstruktor paySlip dapat menggunakan mutator untuk
diperbaharui nilai-nilai atribut. Namun, jika data tidak valid, nilai
tidak akan diperbaharui, mungkin diperbaharui dengan data
yang tidak valid. Oleh karena itu, standar konstruktor harus
memperbaharui seluruh atribut.
Payslip()
Set empNumber to ”Uknown”
Set payRate to 0.0
Set hoursWorked to 0
Set validInput to true
Set weeklyPay to 0.0
END
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR (lanjutan)
Konstruktor menerima input yang dapat memanggil standar
konstruktor sebelum pengaturan nilai atribut
Payslip(inEmpNumber, inPayRate, inHoursWorked)
Payslip()
setEmpNumber(inEmpNumber)
setPayRate(inPayRate)
SetHoursWorked(inHoursWorked)
IF validInput THEN
setPay()
ENDIF
END
PERANCANGAN ALGORITMA UNTUK
OPERASI MENGGUNAKAN DESAIN
STRUKTUR (lanjutan)
Objek eksternal perlu mengetahui tentang validitas payslip dan
upah mingguan yang dihitung. Aksesor menginformasikan objek
lain tentang validitas payslip
getValidInput(validInput)
END
printPayslip()
IF validInput THEN
Print empNumber, payRate, hoursWorked, weeklypay
ENDIF
END
MENGEMBANGKAN TES ATAU
MENJALANKAN ALGORITMA
Langkah terakhir adalah mengembangkan kelas yang
memiliki operasi dengan algoritma seperti baris utama pada
program prosedural.
Menjalankan algoritma dengan membuat kelas yang
berisikan algoritma utama.
Tes atau menjalankan kelas menyediakan interface antara
objek payslip dan lingkungan luar termasuk pengguna.
File data absen merupakan bagian dari interface antara
lingkungan luar dan objek payslip. Data absen akan menjadi
atribut pada driver kelas dan driver konstruktor akan
membuka file.
Payroll()
timeSheetFile = ”timesheet.dat”
END
MENGEMBANGKAN TES ATAU
MENJALANKAN ALGORITMA (lanjutan)
Input Proses Output
Data Absen Baca data absen Cetak paySlip
empNumber Buat payslip dari data Pesan kesalahan
hoursWorked absen untuk paySlip yang
payRate Cetak paySlip yang valid tidak valid

Algoritma untuk driver class Payslip


run()
Baca empNumber, hoursWorked, payRate
DoWhile more records
Create paySlip as New Payslip(empNumber, payRate, hoursWorked)
payslip.printPayslip()
Baca Payslip(empNumber, payRate, hoursWorked
Enddo
END
MENGEMBANGKAN TES ATAU DRIVER
ALGORITMA (lanjutan)

Payroll 1..*
Payslip
-timesheetFile Uses empNumber
+run() payRate
hoursWorked
validInput
weeklyPay
+setEmpNumber(EmpNumb
er)
+setpayRate(PayRate)
+setHoursWorked(HoursWo
rked)
-setPay()
+getValidInput(validInput)
+printPayslip
TUGAS 7
Sebuah sawah berbentuk segitiga dengan sisi-sisinya
sebesar 5 m dan 7 m. Pemilik sawah akan memberi pupuk
pada sawah tersebut. Berapa kebutuhan pupuk apabila
dibutuhkan 3 kg/m2.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan
menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 13. Bagi
mahasiswa yang tidak mengumpulkan tugas maka tidak
mendapat nilai tugas 7 (tidak ada sistem susulan).
PERTEMUAN 13

PERANCANGAN
BERORIENTASI OBJEK
UNTUK MULTI KELAS
POKOK BAHASAN
1. Pendahuluan
2. Hubungan Antar Kelas
3. Inheritansi
4. Polimorfisme
PENDAHULUAN
Keunggulan utama bahasa pemrograman
berorientasi objek adalah pada
kemampuan dalam membangun program
yang besar.
Dalam merancang program yang
menggunakan beberapa kelas perlu
mempertimbangkan hubungan antar
kelas.
NOTASI
Pendekatan perancangan berorientasi
objek dan pemrograman berorientasi
objek telah menjadi metodologi yang
stabil.
Notasi yang digunakan untuk
perancangan berorientasi objek adalah
UML (Unified Modelling Language) dari
Rumbaugh, Booch, dan jacobsen.
HUBUNGAN ANTAR KELAS
1. Hubungan yang paling sederhana adalah hubungan
antar dua kelas yang independen satu sama lain.
Sebuah kelas dapat menggunakan layanan yang lain
disebut dengan asosiasi.
2. Sebuah kelas mungkin dibuat oleh kelas lain atau
mengandung kelas lain yang merupakan bagian dari
dirinya sendiri. Hubungan kolektif dapat berupa
agregasi atau komposisi.
3. Kelas memungkinkan mewarisi seluruh atribut dan
operasi dari kelas induk, memiliki nama yang unik,
atribut dan operasi yang berbeda dengan kelas induk.
Bentuk hubungan antara kelas induk dan anak adalah
generalisasi.
ASOSIASI
Asosiasi menggambarkan interaksi yang
mungkin terjadi antara suatu objek dengan objek
yang lain.
Asosiasi memungkinkan suatu kelas untuk
menggunakan atau mengetahui atribut atau
operasi yang dimiliki oleh kelas lain.
Ada 2 jenis asosiasi :
Asosiasi dua arah atau
Asosiasi satu arah (pasif)

6
ASOSIASI (lanjutan)
Contoh : kelas mobil dan kelas garasi
merupakan kelas independen. Mobil kadang
menggunakan layanan kelas garasi seperti
parkir. Objek yang diinstansiasi dari kedua kelas
dapat saling berinteraksi melalui pengiriman
atau penerimaan pesan

Mobil menggunakan
Garasi

1..2 1

multiplisitas
ASOSIASI (lanjutan)
Pada asosiasi terdapat muliplisitas.
Multiplisitas adalah jumlah banyaknya obyek sebuah
kelas yang berelasi dengan sebuah obyek lain pada
kelas lain yang berasosiasi dengan klass tersebut.
Tipe Notasi UML Keterangan
Exactly 1 or blank Seorang Karyawan bekerja pada satu dan
hanya satu departemen
Zero or 1 0..1 Seorang Karyawan memiliki satu suami/istri
atau tidak punya suami/istri
Zero or More 0..* or * Customer dapat tidak melakukan
pembayaran sampai beberapa kali
1 or More 1..* Universitas menawarkan paling sedikit 1
matakuliah sampai beberapa matakuliah
Specific range 7..9 Tim memiliki pertandingan terjadwal
sebanyak 7, 8, atau 9 pertandingan
ASOSIASI (lanjutan)
DOSEN
MATA KULIAH NIP
KD MAT KUL MENGAJAR NAMA
NM MAT KUL ALAMAT
SKS 1 1
MENGAJAR()
MEMBERI NILAI()
1

MENGAMBIL

MAHASISWA
1..* NIM
NAMA
JURUSAN

KULIAH()
PRAKT IKUM()

9
ASSOCIATIONS
public class A {
public B b;

class Association public A(){


registered Trial Version EA 9.0 Unregistered Trial Version
A B
+b }
registered Trial Version 1 EA 9.0 Unregistered
1
Trial }
Version

registered Trial Version EA 9.0 Unregistered Trial public


Version class B {

public B(){

}
}
AGREGASI
Agregasi adalah hubungan suatu kelas yang
merupakan bagian dari kelas lain namun bersifat
tidak wajib.
Simbol :

11
KOMPOSISI
Komposisi adalah hubungan suatu kelas yang
merupakan bagian yang wajib dari kelas lain.
Simbol :

12
GENERALISASI
Generalisasi diperlukan untuk memperlihatkan
hubungan pewarisan antar objek atau kelas.
Simbol :

13
GENERALISASI
class Association public class Person {

Person public Person(){

public class Employee


extends Person {

Employee public Employee(){

}
POLYMORPHISM
• Polymorphism adalah kemampuan untuk
mempunyai beberapa bentuk yang berbeda.
• Polymorphism diimplementasikan dengan
mekanisme inheritance dan overriding

hewan
“bersuara”

anjing kucing kuda


“menggonggong” “mengeong” “meringkik”
OVERRIDING
Subclass yang berusaha memodifikasi tingkah
laku yang diwarisi dari superclass.
Tujuan: subclass memiliki tingkah laku yang
lebih spesifik.
Dilakukan dengan cara mendeklarasikan
kembali method milik parent class di subclass.
CONTOH OVERRIDING
OVERLOADING
Menuliskan kembali method dengan nama
yang sama pada suatu class.
Tujuan : memudahkan
penggunaan/pemanggilan method dengan
fungsionalitas yang mirip.
CONTOH OVERLOADING
BangunDatar {
static double PHI = 3.14;
static double luas (double r){
double Hasil = PHI * r * r;
return Hasil;
}
static int luas (int s){
int Hasil = s * s;
return Hasil;
}
}
PERTEMUAN 14
IMPLEMENTASI ALGORITMA
KE DALAM BAHASA
PEMROGRAMAN
BERORIENTASI OBJEK
POKOK BAHASAN
1. Bahasa Pemrograman Yang Mendukung
OOP
2. Implementasi OOP dengan C++
3. Implementasi OOP dengan Java
BAHASA PEMROGRAMAN
BERORIENTASI OBJEK
Bahasa pemrograman yang mendukung OOP
antara lain:
1. SmallTalk
2. C++
3. Java, dll
SMAL TALK
Smalltalk adalah bahasa pemrograman
berorientasi objek yang pertama kali populer.
Smalltalk dikembangkan di Xerox PARC-
Amerika Serikat.
Ide dasar Smalltalk meliputi:
1. Semua adalah objek
2. Objek bisa saling berkomunikasi melalui
messages atau berita
3. Semua tersedia untuk dimodifikasi
BAHASA C++
C++ dibuat pada tahun 1980an oleh Bell Labs sebagai
pengembangan dari Bahasa Pemrograman C (yang
dibuat oleh Brian W. Kernighan dan Denies M. Ricthie
pada tahun 1972). Salah satu perbedaan yang paling
mendasar dengan bahasa C adalah C++ medukung
konsep pemrograman berorientasi objek (Object
Oriented Language).
Tahun 1980 seorang ahli yang bernama Bjarne
Stroustrup mengembangkan beberapa hal dari bahasa
C yang dinamakan “C with Classes” yang berganti nama
pada tahun 1983 menjadi C++.
C++ merupakan bahasa pemrograman yang case
sensitive.
JAVA
Java adalah bahasa pemrograman berorientasi objek yang
dikembangkan oleh Sun Microsystems sejak tahun 1991.
Bahasa Pemrograman Java pertama lahir dari The Green
Project, yang berjalan selama 18 bulan, dari awal tahun 1991
hingga musim panas 1992. Proyek tersebut belum
menggunakan versi yang dinamakan Oak. Proyek ini dimotori
oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill
Joy, beserta sembilan pemrogram lainnya dari Sun
Microsystems. Salah satu hasil proyek ini adalah maskot Duke
yang dibuat oleh Joe Palrang.
Java adalah bahasa pemrograman yang mirip dengan C/C++
Keunggulanya adalah Java dapat berjalan di banyak platform
perangkat keras (Multy-Platform).
IMPLEMENTASI ALGORITMA
DENGAN BAHASA C++
void ShowInfoMotor()
{
cout<<”Merk : “<<merk<<endl;
cout<<”Tahun : “<<tahun<<endl;
cout<<”Nomor Polisi : “<<nopol<<endl;
cout<<”Warna : “<<warna<<endl;}

int main()
{
MOTOR M; //instansiasi thdp kelas MOTOR
M.SetMotor();
M.ShowInfoMotor();
return 0;
}
IMPLEMENTASI ALGORITMA
DENGAN JAVA
Mobil.java MobilBeraksi.java
class Mobil{ public class MobilBeraksi {
String warna; public static void main(String[]
int tahunProduksi; args){
void PrintMobil(){ // Membuat object
System.out.println("Warna: " + Mobil mobilku = new Mobil();
warna); /* memanggil atribut dan memberi
System.out.println("Tahun: " + nilai */
tahunProduksi); mobilku.warna = "Biru";
}} mobilku.tahunProduksi = 2009;
mobilku.PrintMobil();
}}
PERTEMUAN 15

REVIEW/QUIZ

Anda mungkin juga menyukai