MODUL METODE PERANCANGAN PROGRAM...Metode Perancangan Program ini dapat diselesaikan. Modul Metode...
Transcript of MODUL METODE PERANCANGAN PROGRAM...Metode Perancangan Program ini dapat diselesaikan. Modul Metode...
MODUL
METODE PERANCANGAN PROGRAM
Disusun Oleh :
Nur Hidayati, M.Kom (200309005)
Program Studi Sistem Informasi
Fakultas Teknik dan Informatika
Universitas Bina Sarana Informatika
2018
ii
KATA PENGANTAR
Alhamdulillah, pertama penulis mengucapkan rasa syukur dan segala puji kepada
Allah SWT yang telah melimpahkan segala Rahmat dan KaruniaNYA, sehingga modul
Metode Perancangan Program ini dapat diselesaikan. Modul Metode Perancangan
Program ini diharapkan dapat mendukung mahasiswa dalam memahami matakuliah
Struktur Data. Modul ini dibuat berdasarkan sumber-sumber yang sudah banyak
digunakan. Pada modul ini membahas mengenai konsep Metode Perancangan Program
secara umum. Modul ini membahas mengenai Konsep Perancangan Program,
Algortiman dan Pemrograman, Tahap Pembangunan Program, Pengembangan
Pseudocode Struktur Kontrol Pemilihan, Pengembangan Pseudocode Struktur Kontrol
Pengulangan, Modularisasi dan Komunikasi antar Modul, Algoritma Untuk Masalah
Bisnis, Perancangan Program Untuk Masalah Bisnis, Konsep Pemrograman
Berorientasi Objek, Tahapan Perancangan Berorientasi Objek, Perancangan
Berorientasi Onjek Untuk Multikelas, dan Implementasi Algoritma Ke Dalam Bahasa
Pemrograman Berorientasi Objek . Akhir kata, penulis menyampaikan terimakasih
yang tulus kepada pihak-pihak yang telah memberikan bantuan dan dukungannya
sehingga penulis dapat menyelesaikan penulisan modul ini. Pada akhir kata, penulis
memohon maaf yang sebesar-besarnya jika dalam penulisan modul ini masih banyak
kekurangan dan kelemahannya. Penulis memohon adanya sumbangan ide, kritik dan
saran untuk perbaikan penulisan modul ini supaya lebih baik ke depannya.
iii
DAFTAR ISI
KATA PENGANTAR ............................................................................................................. ii
DAFTAR ISI............................................................................................................................iii
BAB I KONSEP PERANCANGAN PROGRAM ............................................................... 1
1.1 Pendahuluan ............................................................................................................ 1
1.2 Permasalahan Terkait Perangkat Lunak ............................................................. 1
1.3 Program dan Faktor Kualitas Program ............................................................... 2
1.4 Software Development Life Cycle ......................................................................... 3
1.5 Fakta Dalam Pembangunan Program .................................................................. 3
1.6 Metodologi Perancangan Program ........................................................................ 3
1.7 Teknik Pemrograman ............................................................................................. 5
1.8 Paradigma Bahasa Pemrograman ......................................................................... 7
1.9 Kriteria Bahasa Pemrograman .............................................................................. 9
BAB II ALGORITMA & PEMROGRAMAN ................................................................... 11
2.1 Pendahuluan .......................................................................................................... 11
2.2 Tahapan Pembuatan Program ............................................................................ 11
2.3 Pengenalan Algoritma .......................................................................................... 12
2.4 Cara Menyajikan Algoritma ................................................................................ 13
2.5 Data Program ........................................................................................................ 16
2.6 Elemen-Elemen Program ..................................................................................... 16
BAB III TAHAPAN PEMBANGUNAN PROGRAM ....................................................... 23
3.1 Definisi Masalah .................................................................................................... 23
3.2 Outline Solusi ........................................................................................................ 23
3.3 Pengembangan Outline Ke Dalam Algoritma .................................................... 24
3.4 Melakukan Test Terhadap Algoritma ................................................................ 25
3.5 Pemerikasaan Algoritma ...................................................................................... 25
3.6 Memindahkan Algoritma Ke Dalam Bahasa Pemrograman ............................ 26
BAB IV PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL PEMILIHAN
................................................................................................................................................ 28
4.1 Struktur Kontrol Pemilihan ................................................................................. 28
iv
4.2 Variasi Dari Struktur Komtrol Selection ........................................................... 29
BAB V PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL
PENGULANGAN ................................................................................................................. 37
5.1 Struktur Kontrol Pengulangan ............................................................................ 37
5.2 Jenis-Jenis Penempatan Pengulangan ................................................................ 37
BAB VI MODULARISASI DAN KOMUNIKASI ANTAR MODUL ............................. 46
6.1 Konsep Pemrograman Modular .......................................................................... 46
6.2 Komunikasi Antar Modul .................................................................................... 49
6.3 Kohesi dan Kopling ............................................................................................... 52
2. Kopling ....................................................................................................................... 57
BAB VII ALGORITMA UNTUK MASALAH BISNIS .................................................... 62
7.1 Struktur Program ................................................................................................. 62
7.2 Struktur Chart ...................................................................................................... 62
7.3 Membuat Laporan Dengan Page Break ............................................................. 63
7.4 Contoh Algoritma Penyelesaian .......................................................................... 65
BAB VIII PERANCANGAN PROGRAM UNTUK MASALAH BISNIS ....................... 69
8.1 Teknik Perancangan Program Berorientasi Bisnis ........................................... 69
8.2 Contoh Kasus Penggunaan Teknik Perancangan File dan Program ............... 73
BAB IX KONSEP PEMROGRAMAN BERORIENTASI OBJEK ................................. 80
9.1 Pendahuluan .......................................................................................................... 80
9.2 Pengenalan Pemrograman Berorientasi Objek .................................................. 80
9.3 Pengenalan Objek & Class ................................................................................... 81
9.4 Karakteristik OOP ................................................................................................ 86
9.5 Kelebihan OOP ..................................................................................................... 89
9.6 Pemrograman Terstruktur Versus Pemrograman Berorientasi Objek .......... 90
BAB X TAHAPAN PERANCANGAN BERORIENTASI OBJEK ................................. 91
BAB XI PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI KELAS ........ 97
11.1 Pendahuluan .......................................................................................................... 97
11.2 Hubungan Antar Kelas ......................................................................................... 97
11.3 Polimorfisme ........................................................................................................ 102
BAB XII IMPLEMENTASI ALGORITMA KE DALAM BAHASA PEMROGRAMAN
BERORIENTASI OBJEK ................................................................................................. 104
12.1 Bahasa Pemrograman Yang Mendukung OOP ............................................... 104
v
12.2 Implementasi OOP Dengan C++ ....................................................................... 105
12.3 Implementasi OOP Dengan Java ....................................................................... 106
DAFTAR PUSTAKA .......................................................................................................... 108
1
BAB I
KONSEP PERANCANGAN PROGRAM
1.1 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).
1.2 Permasalahan Terkait Perangkat Lunak
Adapun permasalahan terkait dengan perangkat lunak, dapat digambarkan
sebagai berikut :
Gambar 1.1 Permasalahan terkait Perangkat Lunak
2
1.3 Program dan Faktor Kualitas Program
Program adalah Kumpulan instruksi / perintah yang dirangkaian sehingga
membentuk suatu proses untuk mengolah data. Faktor-faktor yang berhubungan
dengan kualitas program, sebagai berikut :
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
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.
3
1.4 Software Development Life Cycle
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 dan Pengujian
1.5 Fakta Dalam Pembangunan Program
Dibawah ini merupakan beberapa fakta di dalam pembangunan Program, yang
digambarkan sebagai berkut :
Gambar 1.2 Fakta dalam Pembangunan Program
Prinsip dasar dalam pembangunan program berdasarkan input data, proses dan
output.
1.6 Metodologi Perancangan Program
Beberapa pendekatan perancangan program :
1. Procedure-Driven
Procedure-Driven untuk perancangan program berdasarkan pada apa yang akan
dilakukan program (proses atau fungsi). Strateginya adalah dengan memecahkan
4
setiap fungsi menjadi lebih kecil dan lebih spesifik. Contoh : Program untuk
persegi panjang dibagi menjadi fungsi : hitung keliling dan hitung luas persegi
panjang.
2. 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.
3. 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. 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 :
a. Ambil tanggung_jawab dari profil_karyawan
b. If tanggung_jawab = “Sales manager”
c. Then bonus = gaji_pokok * 0.10
d. Else
5
e. If tanggung_jawab = “Senior salesman”
f. Then bonus = gaji_pokok * 0.08
g. Else … dan seterusnya …
1.7 Teknik 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. 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.
Beberapa Teknik Pemrograman sebagai berikut:
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.
6
Gambar 1.3 Pemrograman Terstruktur
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.
Gambar 1.4 Pemrograman Prosedural
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.
Gambar 1.5 Pemrograman Modular
7
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.
Gambar 1.6 Pemrograman Berorientasi Objek
1.8 Paradigma 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. Beberapa aturan dalam bahasa pemrograman:
1. Sintaks
Sintaks adalah aturan penulisan suatu bahasa pemograman (tata bahasanya).
Contoh :
#include<file-include>
8
main()
{ pernyataan; }
Apabila terjadi kesalahan dalam penulisan sintaks maka akan terjadi error pada
saat kompilasi.
2. 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.
3. 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
a. Bahasa Tingkat Rendah
Dirancang agar setiap instruksi langsung dikerjakan oleh komputer tanpa
translator. Contoh : Assembler
9
b. 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.
Gambar 1.7 Paradigma Bahasa Pemrograman
1.9 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.
3. Kewajaran untuk aplikasi
Bahasa pemrograman harus mempunyai struktur data, operasi-operasi, struktur
control dan sintaks yang tepat untuk memecahkan suatu masalah.
10
4. Mendukung Abstraksi
Abstraksi merupakan suatu hal yang substansial bagi programer untuk
membuat suatu solusi dari masalah yang dihadapi.
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.
7. Portabilitas program
Kemudahan program untuk dipakai di berbagai jenis komputer.
8. Biaya penggunaan
a. Biaya eksekusi program
b. Biaya kompilasi program
c. Biaya penciptaan, testing dan penggunaan program
d. Biaya pemeliharaan program
11
BAB II
ALGORITMA & PEMROGRAMAN
2.1 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.
Gambar 2.1 Contoh Perancangan Program
2.2 Tahapan Pembuatan Program
Gambar berikut ini merupakan tahapan di dalam pembuatan Program, yaitu
dengan adanya Algoritma, yang kemudian dibuatkan dalam Bahasa Pemrograman, dan
kemudian akan dikompilasi Program tersebut.
Gambar 2.2 Tahapan Pembuatan Program
12
2.3 Pengenalan Algoritma
Algoritma berisi langkah-langkah yang dibutuhkan untuk menyelesaikan
sebuah tugas. Sebuah algoritma harus:
1. Memiliki masukkan (input)
2. Menghasilkan keluaran (output)
3. Terdefinisi jelas (definiteness)
4. Memiliki kondisi akhir (finiteness)
5. Memberi solusi yang diharapkan (effectiveness)
6. Berlaku untuk setiap himpunan input sesuai dengan masalah yang diberikan
(generality).
Berikut merupakan contoh Algoritma yang baik:
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
Berikut merupakan contoh Algoritma yang Tidak baik:
Program Cetak_Berulang
{Mencetak kata sebanyak i }
13
Deklarasi
integer i
Deskripsi
i = 0
While (i <= 5)
cetak ”Bina Sarana Informatika”
END
2.4 Cara Menyajikan Algoritma
Ada dua cara dalam menyajikan Algortima, yaitu :
1. Pseudocode
Pseudocode merupakan salah satu cara untuk menuliskan algoritma
Karakteristik Pseudocode:
a. Statement / Perintah di tulis dalam bahasa Inggris / Indonesia sederhana.
b. Setiap perintah di tulis dalam baris terpisah
c. Keyword digunakan untuk menjelaskan control structure tertentu.
d. Setiap set/bagian instruksi memiliki awal dan akhir
e. Pengelompokkan statement bisa membentuk satu modul yang mempunyai
nama.
Struktur Pseudocode :
Algoritma terdiri dari tiga bagian yaitu :
a. Judul (Header) : mendefinisikan nama dengan menentukan apakah teks
tersebut adalah program, prosedur, fungsi.
14
b. Deklarasi : mendefinisikan nama variabel, nama konstanta, nama prosedur,
nama fungsi yang akan digunakan dalam algoritma.
c. 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 }. Berikut ini merupakan contoh dari 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
sebagai berikut :
15
Gambar 2.3 Contoh Flowchart
Adapun Simbol-simbol Flowchart Program, sebagai berikut :
Tabel 2.1 Simbol-Simbol Flowchart Program
16
2.5 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)
1. 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.
2. Konstanta adalah item data dengan nama dan nilai yang tetap sama selama
program di eksekusi. Contoh : define phi 3.14 atau phi = 3.14.
2.6 Elemen-Elemen Program
Elemen-elemen Program dapat diklasifikasikan menjadi 4, yaitu :
1. Aturan Leksikal
17
Adapun dalam Aturan Leksikal, yang perlu diperhatikan, antara lain :
a. 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.
1) 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 :
a) {komentar pada pascal}
b) //komentar pada c++
c) ‘komentar pada visual basic
2) 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.
18
c) Tidak boleh menggunakan karakter simbol (@ # $ % & *, dll)
kecuali underscore.
d) Tidak boleh menggunakan kata kunci (keywords/ reserved words).
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.
3) Keywords atau 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 kata-kata ini tidak
dapat digunakan sebagai identifier. Contoh Keyword : break, switch,
continue, repeat, until, function dll
4) Operator
Merupakan simbol-simbol khusus yang digunakan untuk
mengoperasikan suatu nilai data (operand). Operator yang digunakan
dalam pemrograman:
a) Arithmetic operator
b) Assignment operator
19
c) Logical operator
d) Relational operator
e) Pointer operator
f) Bitwise operator
2. 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.
Tabel 2.2 Contoh Tipe Data
Tipe data terstruktur yaitu tipe data yang dapat menampung lebih dari satu nilai,
sebagai berikut:
a. Array adalah tipe data berindeks yang terdiri dari satu atau lebih
elemen/komponen yang memiliki tipe data yang sama.
b. Record adalah tipe data yang digunakanuntuk merepresentasikan
kumpulan (set) elemen/komponen yang memiliki satu jenis atau lebih tipe
data. Tiap element disebut juga field atau property atau attribute.
20
3. 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.
4. 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:
a. Simple Statement
Yang digolongkan ke dalam simple statement (statement sederhana) yaitu
statement yang tidak berisi statement lainnya, sebagai berikut :
1) Assignment Statement yaitu statement yang digunakan untuk
memberikan nilai ke suatu variable, contohnya :
a := 10;
b := a * 2;
c := c * b;
21
2) 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);
3) Jump Statement yaitu statement yang digunakan untuk melompati
statement-statement lain. Contoh :
Melompat ke statement tertentu goto
Keluar dari iterative statement break
b. Compound Statement
Compound statement (kumpulan statement) adalah sekumpulan statement
yang terdiri dari statement-statement lain, termasuk juga selection
statement dan interaction.
1) Selection statement digunakan untuk melakukan pemilihan
sekumpulan statement (compound statement). Contoh :
a) If ……Then
b) Perintah Case
2) Iteration statement digunakan untuk melakukan perulangan
sekumpulan statement (compound statement). Contoh :
a) Do While
b) Repeat …….Until
c) For……EndFor
22
5. Function & 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.
23
BAB III
TAHAPAN PEMBANGUNAN PROGRAM
3.1 Definisi Masalah
Pada tahap ini memerlukan pemahaman terhadap permasalah dengan membaca
berulang kali sampai dengan mengerti apa yang dibutuhkan. Permasalahan dibagi
kedalam tiga komponen:
1. Input / Masukan
2. Output / Keluaran
3. Proses
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.
3.2 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:
24
1. Proses utama
2. Subtask utama
3. Struktur Kontrol
4. Variabel dan struktur record
5. Logic utama (mainline)
3.3 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.
25
3.4 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.
DESK CHECKS VS TEST PLANS
1. 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 ?
2. Desk Check, menekankan pada nilai variable dan logika. Contoh : Berapakah
nilai variabel x setelah pernyataan; Apa pernyataan berikutnya yang akan
dieksekusi ?
3.5 Pemerikasaan Algoritma
Langkah-langkah dalam Pemeriksaan algortima, sebagai berikut :
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
26
TABEL DESK CHECK
3.6 Memindahkan Algoritma Ke Dalam Bahasa Pemrograman
Setelah ke-empat langkah sebelumnya dilakukan, maka pencodingan dapat
dimulai dengan menggunakan bahasa pemrograman yang dipilih.
//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); }
27
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
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)
28
BAB IV
PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL
PEMILIHAN
4.1 Struktur Kontrol Pemilihan
Struktur kontrol pemilihan dalam pseudocode digunakan untuk
menggambarkan:
1. 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.
2. Untuk kondisi bernilai True atau False
Contoh : IF member THEN Diskon = 20% * Harga.
3. Kondisi berdasarkan perbandingan 2 item yang dinyatakan dengan salah satu
operator relasi berikut :
a. < lebih kecil dari
b. > lebih besar dari
c. = sama dengan
d. <= lebih kecil sama dengan
e. >= lebih besar sama dengan
f. <> tidak sama dengan
29
4.2 Variasi Dari Struktur Komtrol Selection
Ada beberapa variasi dari struktur control selection yaitu:
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, yaitu
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, sebagai berikut :
IF syarat THEN
instruksi1
ELSE
instruksi2
ENDIF
Contoh :
IF Saldo > 3000000 THEN
bunga = 0.05 * Saldo
ELSE
B unga = 0.01 * Saldo
ENDIF
30
Gambar 4.1 Simple Selection Bercabang
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, yaitu :
IF syarat THEN
instruksi
Contoh:
Diskon = 0
IF Subtotal > 100000 THEN
diskon = 0.1 * Subtotal
ENDIF
Total = Subtotal - Diskon
Gambar 4.2 Simple Selection Tanpa Cabang
31
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
PENGEMBANGAN OUTLINE KE DALAM ALGORITMA
32
PEMERIKSAAN ALGORITMA
TABEL DESK CHECK
2. Combined / Multiple 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, yaitu :
IF syarat1 operator logika syarat2 THEN
instruksi1
Else
instruksi2
ENDIF
Contoh :
IF ormik AND semot THEN
ket = ”LULUS”
ELSE
33
ket = ”GAGAL”
ENDIF
3. Nested Selection
Nested selection terjadi, jika di dalam IF terdapat statement IF yang lain. Ada
dua jenis nested selection, yaitu :
a. Linear Nested IF
Linear Nested IF terjadi jika satu kondisi di cek untuk beberapa nilai.
Format Struktur Linear Nested IF Statement, yaitu :
IF syarat1 THEN
instruksi1
ELSE IF syarat2 THEN
instruksi2
ELSE
instruksi3
ENDIF
Gambar 4.3 Linier Nested If
34
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, yaitu :
IF syarat1 THEN
IF syarat2 THEN
instruksi2a
ELSE
instruksi2b
ENDIF
ELSE
Instruksi 1b
ENDIF
35
Gambar 4.4 Non Linier Nested If
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.
36
Gambar 4.5 Switch Case
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”;
37
BAB V
PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL
PENGULANGAN
5.1 Struktur Kontrol Pengulangan
Struktur kontrol pengulangan digunakan untuk melaksanakan sederetan
instruksi berulang-ulang sesuai dengan persyaratan yang ditetapkan.
5.2 Jenis-Jenis Penempatan Pengulangan
Ada tiga cara penempatan keputusan pengulangan :
1. Pada awal pengulangan (Leading decision loop)
a. Kondisi diuji sebelum beberapa instruksi dieksekusi.
b. Perintah leading decision loop adalah struktur Do WHILE.
c. Format Struktur Kontrol pengulangan DO WHILE
DO WHILE kondisi k bernilai true
instruksi_1
instruksi_2
……………
instruksi_n
counter
ENDDO
38
Gambar 5.1 Leading decision loop
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) Definisi Masalah
Input : jumlah kamar
Output : 5 deret bilangan genap
Proses :
Jika I <= jumlah kamar lakukan pengulangan berikut
a = a+ 2
cetak a
2) Outline Solusi
39
3) Desk Checking
a) Data Masukan
b) Hasil yang diharapkan
2 4 6 8 10
4) Tabel Desk Checking
2. Pada akhir pengulangan (trailing the decision loop)
a. Beberapa instruksi dieksekusi sekali sebelum kondisi diuji. Jika kondisi
False, instruksi akan diulang sampai kondisi bernilai TRUE.
b. Perintah trailing decision loop adalah struktur REPEAT …. UNTIL.
c. Format Struktur Kontrol pengulangan REPEAT….UNTIL
REPEAT
instruksi_1
instruksi_2
…….
instruksi_n
counter
UNTIL kondisi k true
40
Gambar 5.2 trailing the decision loop
Contoh Kasus :
Sebuah Bank membuat nomor antrian berdasarkan bilangan ganjil.
Jumlah antrian maksimal 5. Berikan bilangan ganjil sesuai jumlah antrian
1) Definisi Masalah
Input : jumlah antrian
Output : 5 deret bilangan ganjil
Proses :
Jika i <= jumlah antrian lakukan pengulangan berikut
cetak a
a = a+ 2
2) Outline Solusi
41
3) Desk Checking
a) Data Masukan
b) Hasil yang diharapkan
1 3 5 7 9
4) Tabel Desk Checking
3. Menjumlahkan angka pada suatu waktu(counted loop)
a. Pencacah pengulangan digunakan jika jumlah iterasi pengulangan sudah
diketahui. Pelaksanaan loop dikendalikan oleh indeks pengulangan.
b. Perintah counted loop adalah struktur FOR
c. Format Struktur Kontrol pengulangan FOR
FOR loop_index=nilai_awal to nilai_akhir Step n
statement_1
statement_2
……………
statement_n
ENDFOR
42
Gambar 5.3 counted loop
Contoh Kasus :
Buatlah sebuah deret bilangan sebanyak 5 yang menampilkan angka 1, 4,
9, 14, 25
1) Definisi Masalah
Input : jumlah bilangan
Output : 5 deret bilangan akar kuadrat
Proses :
Jika i <= jumlah bilangan lakukan pengulangan berikut
cetak a
a = sqr(a)
2) Outline Solusi
43
3) Desk Checking
a) Data Masukan
b) Hasil yang diharapkan
1 4 9 16 25
4) Tabel Desk Checking
5.3 Nested Repitition
1. Nested Repetion terjadi, jika di dalam pengulangan terdapat statement
pengulangan yang lain.
2. Format Nested DO WHILE
DO WHILE kondisi k1 bernilai true
DO WHILE kondis k2 bernilai true
statement_1
statement_2
……………
statement_n2
ENDDO
44
statement_n1
ENDDO
3. Contoh Nested Repitition
Buatlah pseudocode untuk menampilkan output seperti berikut :
1 1 1
2 2 2
3 3 3
Jawaban :
a. Definisi Masalah
Input : jumlah baris dan jumlah kolom
Output : menampilkan angka sesuai baris dan kolom
Proses :
DO WHILE k <= 3
cetak k
k=k+ 1
Enddo
cetak
b=b+1
Enddo
b. Outline Solusi
45
c. Tabel Desk Checking
46
BAB VI
MODULARISASI DAN KOMUNIKASI ANTAR MODUL
6.1 Konsep Pemrograman Modular
1. 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
2. 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. Enam langkah dalam modular sebagai berikut:
a. Definisi masalah: klasifikasikan dalam input, proses dan output
b. Kelompokkan aktivitas ke dalam modul. Definisikan kegiatan dari modul-
modul yang ada
c. Buat bagan susun untuk menjelaskan hirarki dan hubungan antar modul
d. Buat logika dari main program dengan pseudocode. Terlebih dahulu
inventarisasi apa saja yang dikerjakan dalam main program
e. Buat logika untuk tiap tiap modul dengan pseudocode
f. Desk checking algoritma: mencek kebenaran algoritma dengan data
47
3. Jangkauan Data
a. Global Data adalah variabel yang dikenal diseluruh program tersebut, dan
dapat diakses dari setiap modul di program tersebut.
b. Local Data adalah variabel yang didefinisikan disebuah modul. Variabel
ini hanya dikenal di modul dimana variabel tersebut didefinisikan.
4. Side Effect
Side effect adalah sebuah bentuk komunikasi antar modul dengan bagian lain
dalam program.
a. Global Data (Data Global)
Perubahan nilai global data berdampak terhadap nilai data tersebut di
semua modul.
b. Local Data (Data Lokal)
Perubahan nilai local data hanya berdampak terhadap nilai data pada
modul secara lokal.
5. 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)
48
END
Sub luaspp(integer pj,
integer lb)
integer luas {local data}
luas = pj * lb
Cetak luas
EndSub
6. Parameter
a. Parameter Data
b. Parameter Status flag/Boolean
c. Dalam merancang modul sebaiknya lebih banyak menggunakan parameter
data
d. Hindari menggunakan parameter status sebanyak mungkin
7. 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.
Gambar 6.1 Penggunaan Parameter Passing
49
6.2 Komunikasi Antar Modul
1. Jenis Parameter
a. Parameter Aktual
Parameter yang disertakan pada saat prosedur dipanggil untuk
dilaksanakan. Contoh : tukar (a,b); //a dan b adalah parameter aktual
b. Parameter Formal
Parameter yang dituliskan pada definisi suatu prosedur atau fungsi. Contoh
: Prosedur tukar(x, y);
2. Jenis Pemanggilan
a. Pemanggilan Dengan Nilai (Call By Value)
Pemanggilan dengan nilai, nilai dari parameter actual akan ditulis ke
parameter formal. Dengan cara ini nilai parameter aktual tidak bisa
berubah, walaupun nilai parameter formal berubah.
b. Pemanggilan Dengan Acuan
Pemanggilan dengan reference merupakan upaya untuk melewatkan
alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk
mengubah isi suatu variable diluar fungsi dengan melaksanakan
pengubahan dilakukan didalam fungsi.
3. Contoh Kasus Modularisasi
Susunlah algoritma untuk mengurutkan beberapa bilangan dengan urutan
menaik (ascending) dan tampilkan bilangan hasil sort tersebut.
a. Definisi Masalah
Input : banyaknya data, bilangan yang akan diurutkan
50
Output : Bilangan yang terurut
Proses :
Baca data_1, data_2…data_n
Sort data bilangan tersebut
b. Outline Solusi
c. Hierarchy Chart
Gambar 6.2 Bagan Sortimg Bilangan
d. 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
51
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
52
SORTING_DATA
CETAK_DATA
END
6.3 Kohesi dan 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"
1. Kohesi
Kohesi adalah keeratan hubungan elemenelemen di dalam suatu modul.
Macam-macam Kohesi sebagai berikut :
a. Functional
b. Sequential
c. Communicational
d. Procedural
e. Temporal
f. Logical
g. Coincidental
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
53
dan didokumentasi. Pada modul dengan tingkat kohesi tinggi, informasi lebih mudah
disembunyikan, karena komunikasi antar modul diminimalkan.
a. Kohesi Functional
1) Mempunyai satu tugas
2) Menghasilkan satu hasil/satu parameter output
3) Bisa satu atau lebih parameter input
b. Kohesi Sequential
1) Mempunyai pekerjaan yang beruntun
2) Kegiatan yang dilakukan lebih dari satu
3) Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan
selanjutnya
4) Dapat dipecah menjadi Functional
54
c. Kohesi Komunikasional
1) Kegiatan lebih dari satu
2) Menggunakan data yang sama
3) Dapat dijadikan Functional
Contoh:
Sub Proses_perhitungan
C = A + B
D = A – 1
E = A * B
F = A / B
G = A mod B
EndSub
d. Kohesi Procedural
1) Satu kegiatan dengan kegiatan lain tidak berhubungan
2) Hubungan antara elemen yang satu dengan yang lainnya karena
urutan statement
3) 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
55
total_usia = usia + total_usia
no_record = no_record + 1
ENDDO
print no_record, total_usia
EndSub
e. Kohesi Temporal
1) Elemen-elemen terlibat dalam berbagai kegiatan yang mempunyai
hubungan dalam waktu
2) Urutan tidak penting
Contoh:
Sub Initialisasi
buka file transaksi
total_transaksi = 0
total_pen = 0
baris = 30
no = 0
hal = 0
EndSub
f. Kohesi Logical
1) ELemen-elemen melakukan kegiatan dengan kategori yang sama
2) Parameter masukan menentukan kegiatan yang dilaksanakan
3) Tidak semua kegiatan dikerjakan
Contoh:
56
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
g. 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
57
set error_flag to false
EndSub
2. Kopling
Kopling adalah keeratan hubungan antar modul. Tingkat saling ketergantungan
di antara dua modul. Faktor yang mempengaruhi kopling:
a. Jumlah data yang disalurkan
b. Jumlah kontrol data yang disalurkan
c. Jumlah elemen data global yang digunakan bersama-sama oleh beberapa
modul
Jenis-Jenis Kopling
a. Data
b. Stamp
c. Kontrol
d. External
e. Common
Keterangan:
Makin baik kopling, makin rendah ketergantungan suatu modul terhadap
modul lain. Modul dengan kopling yang baik adalah modul independence
a. Kopling Data
1) Komunikasi diantara modul menggunakan data. Diinginkan jumlah
data minimal
2) Parameter data yang disalurkan semakin sedikit semakin baik
58
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
b. KOPLING STAMP
1) Dua modul melakukan pass struktur data non global yang sama
59
2) Struktur data: record, array
3) Timbul bahaya bila modul memeriksa struktur data tetapi hanya
menggunakan sebagian
current_record hanya berupa penunjuk nomor record sekarang
c. Kopling Kontrol
Dua modul melakukan passing parameter menggunakan data kontrol
(flag/switch).
60
input_code berfungsi sebagai switch (berupa switch)
d. Kopling External
1) Dua modul atau lebih menggunakan data global yang sama
2) Tidak ada parameter yang digunakan dari modul pemanggil ke
subordinate dan sebaliknya
pajak_pen adalah variabel data global
61
e. Kopling Common
Dua modul atau lebih menggunakan struktur data global yang sama
record_pelanggan adalah struktur data global
62
BAB VII
ALGORITMA UNTUK MASALAH BISNIS
7.1 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
7.2 Struktur Chart
Algoritma di atas digambarkan dengan struktur chart berikut:
1. Tiga modul di atas dapat berisi statement yang dibutuhkan untuk memproses
data yang dibaca dari file
2. Main program dari struktur chart sudah ada sehingga dapat dikembangkan
proses dari ketiga modul tersebut
63
Gambar 7.1 Contoh Struktur Chart
7.3 Membuat Laporan Dengan Page Break
Suatu laporan membutuhkan:
1. Judul
2. Baris judul
3. Kolom judul
4. Detail
5. 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)
1. Single-Level Control Break
Single-Level Control Break adalah pemberhentian dalam logika program
(berhenti atau mengulang untuk mencetak judul baru) berdasarkan nilai sebuah
variabel. Contoh : no departemen.
64
Gambar 7.2 Contoh Bentuk Laporan Single Level Control Break
Berikut ini adalah Hierarchy Chart Singlelevel Break :
Gambar 7.3 Contoh Hierarchy Chart Singlelevel Break
2. Multiple-Level Control 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
Gambar 7.4 Contoh Bentuk Laporan Multiple-Level Control Break
65
Hierarchy Chart Multiplelevel Break
Gambar 7.5 Contoh Hierarchy Chart Multiplelevel Break
7.4 Contoh Algoritma Penyelesaian
Contoh Studi Kasus :
Gambar 7.6 Contoh Studi kasus
Hierarchy Chart
Gambar 7.7 Hierarchy Chart dari Studi Kasus
66
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
67
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
3. Process_Record
komisi = (realisasi – target ) * 10000
Total_gaji = komisi + gaji_pokok
Cetak_Detail
accumulate_total
END
4. Cetak_Detail
Baris = baris +1
Cetak baris, NIP, Nama, Target, Realisasi, Komisi. Gaji_Pokok,
Total_gaji
END
5. Accumulate_total
Total = total + total_gaji
END
68
6. Cetak_total_Report
Cetak “Total gaji Sales”, total
Tutup File
END
69
BAB VIII
PERANCANGAN PROGRAM UNTUK MASALAH BISNIS
8.1 Teknik Perancangan Program Berorientasi Bisnis
Berikut ini akan dijelaskan beberapa teknik perancangan program di dalam
sebuah pemrograman terstruktur untuk mendukung proses pembangunan atau
pengembangan sistem.
1. Teknik Perancangan File atau Database Dalam Bentuk Spesifikasi File
Adapun mengenai langkah-langkah di dalam perancangan file tersebut
adalah :
a. 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.
b. Menentukan parameter dari file yang akan dibuat. Parameter yang
dimaksud adalah elemen-elemen yang menjelaskan spesifikasi singkat
mengenai file.
Contoh Studi Kasus 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
70
Proses : Penghitungan Gaji, parameternya:
a. Tunjangan pegawai (dari status pegawai)
b. Gaji Pokok (dari golongan pegawai)
c. Lembur (dari kehadiran pegawai)
d. Potongan (jika pegawai mempunyai potongan yang dibebankan pada gaji)
Output: Laporan Gaji Bulanan dan Slip Gaji pegawai
Contoh Tabel Pegawai
Misal jika dijumlahkan panjang record pegawai 180 karakter, dari tabel diatas.
Parameter File
Untuk membuat spesifikasi file, dibutuhkan beberapa parameter, dibawah ini:
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
71
c. KODE FILE
Nama yang dibuat pada saat file digambarkan dalam bentuk diagram
(Normalisasi). Contoh: Tabel Pegawai, Tabel Lembur, Tabel Absen
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
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
72
2. Teknik Perancangan Program Dalam Bentuk Spesifikasi Program
Adapun mengenai langkah-langkah di dalam perancangan program adalah :
a. 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 yang
memanggil program lainnya, dan kemana program akan kembali setelah
selesai melakukan eksekusi.
b. Menentukan Parameter dari Program yang akan dibuat. Parameter yang.
dimaksud adalah elemen-elemen yang menjelaskan spesifikasi singkat
mengenai program. Parameter Program meliputi hal-hal sebagai berikut:
1) NAMA PROGRAM
Nama yang dibuat untuk menunjukkan identitas program. Contoh:
Program HitungGaji
2) AKRONIM PROGRAM
Nama yang dibuat untuk menyimpan source program. Contoh:
HitGaji.vbp
3) KODE PROGRAM
Nama yang dibuat pada saat file digambarkan dalam bentuk diagram
(HIPO). Contoh: Gj01
4) FUNGSI PROGRAM
73
Menjelaskan fungsi atau kegunaan dari program yang dibuat. Contoh:
Untuk program Gaji, maka fungsi program dituliskan: Program untuk
perhitungan gaji karyawan.
5) 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
6) PROGRAM FLOWCHART
Menggambarkan logika atau proses program dalam bentuk flowchart.
7) PROSES PROGRAM
Menjelaskan secara rinci mengenai isi dan proses program, termasuk
penjelasan dari command button apabila dijalankan.
8.2 Contoh Kasus Penggunaan Teknik Perancangan File dan Program
Contoh Program Bisnis pada Sistem Perpustakaan
Tabel pada sistem informasi perpustakaan sebagai berikut :
1. Tabel Anggota
2. Tabel Buku
3. Tabel User
4. Status
5. Tabel Peminjaman
6. Tabel Pengembalian dan
7. Tabel Detail Peminjaman
74
Spesifikasi File
Contoh pembuatan spesifikasi file dari tabel diatas, sebagai berikut : (untuk tabel
Anggota dan tabel Buku).
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
75
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
Pengkodean
Kode yang dibuat dalam pengkodean adalah field-field yang dijadikan sebagai
kunci primer (Primary Key/PK), sebagai contoh disini adalah Nomor Anggota dan
Kode Buku.
76
Nomor Anggota
Kode Buku
Spesifikasi Program (Diagram HIPO)
Gambar 8.1 HIPO
Spesifikasi Program
Berdasarkan HIPO, spesifikasi program diantaranya:
1. Spesifikasi Program Menu Utama
2. Spesifikasi Program Data Anggota
3. Spesifikasi Program Data Buku
77
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
Spesifikasi Program yang akan dibuatkan disini sebagai contoh, adalah
spesifikasi program transaksi peminjaman. Berikut ini spesifikasi program transakso
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
78
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
79
Gambar 8.2 Flowchart Menu Utama
80
BAB IX
KONSEP PEMROGRAMAN BERORIENTASI OBJEK
9.1 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.
9.2 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 dan membentuk interaksi antar objek. Objek bersifat
independen: tiap objek dapat dipandang sebagai sebuah entitas mandiri yang memiliki
peran atau tanggung jawab tertentu.
Gambar 9.1 Pengenalan OOP
81
9.3 Pengenalan Objek & Class
1. Objek
Objek adalah representasi sebuah entitas yang memiliki makna tertentu yang
menjadi perhatian si pemandang. Segala sesuatu yang ada di dunia adalah objek.
Contoh : Manusia, Bunga, Hewan, Mobil, Meja, Kursi, Sepeda, Kereta, Pesawat
terbang, dan lain sebagainya. 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.
2. 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.
Gambar 9.2 Gambaran Kelas
Contoh Kelas :
82
Struktur Kelas
Karakteristik Objek
Attributes :
Warna, Tahun Produksi, Manufaktur, kecepatan
Behavior/Tingkah Laku :
Akseleration(), Turn(direction), Stop(), Break() dll
Identitas :
B7471UL
83
a. 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.
1) Instance variable
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
2) Class variable:
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.
b. 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). Method
adalah serangkaian statements dalam suatu class yang menghandle suatu
task tertentu. Cara objek berkomunikasi dengan objek lain adalah dengan
menggunakan method.
84
c. 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.
d. 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().
1) Kata NEW menunjukkan pembuatan objek baru.
2) Nama kelas diawali dengan huruf besar. Contoh : Mobil, Siswa,
Pendaftaran, dll.
3) Nama objek diawali dengan huruf kecil. Contoh : mobil, siswa,
pendaftaran, dll
Konstruktor memungkinkan :
1) Memiliki parameter yang menginisilisasi atribut dengan nilai spesifik.
Contoh : Create mobil as new Car (”Ford”, ”Falcon”, 4, 300, 6, ”Biru”,
0); atau
85
2) Tidak memiliki parameter. Objek baru dengan nilai default untuk semua
atributnya.
e. 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().
f. Visibility
Visibility merupakan kemampuan suatu obyek untuk melihat atau
berhubungan dengan obyek lain. Atribut dan metoda dapat memiliki salah
satu sifat visibility berikut :
1) Private (-), tidak dapat dipanggil dari luar class yang bersangkutan
2) Protected (#), hanya dapat dipanggil oleh class yang bersangkutan dan
anak-anak yang mewarisinya
3) Public (+), dapat dipanggil oleh siapa saja
g. Pengiriman Pesan/Messaging
Objek-objek bekerjasama dengan mengirimkan pesan dari satu objek ke
objek lainnya. Suatu obyek mengirimkan pesan ke objek lain untuk
86
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. 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.
9.4 Karakteristik OOP
Karakteristik OOP antara lain :
1. 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.
87
Apa yang anda ingin segitiga lakukan ?
Gambar 9.3 Contoh Abstraksi
2. 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.
Gambar 9.4 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.
88
3. 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.
Gambar 9.5 Contoh Inheritansi
4. 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.
Gambar 9.6 Contoh Polimorfisme
89
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
9.5 Kelebihan OOP
Berikut ini merupakan kelebihan pemrograman Berorientasi objek :
1. Menyediakan struktur modular yang jelas untuk program sehingga bagus
digunakan untuk mendefinisikan tipe data abstrak di mana detil
implementasinya tersembunyi.
2. Mempermudah dalam memelihara dan memodifikasi kode yang sudah ada.
Objek yang baru dapat dibuat tanpa mengubah kode yang sudah ada.
3. 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.
4. Resiko kesalahan relative kecil (lebih sedikit mengetik), sintaks juga tidak perlu
dihafalkan, karena semuanya sudah disediakan.
5. Waktu debugging lebih singkat, karena setiap objek tidak perlu didebug setiap
kali digunakan
90
9.6 Pemrograman Terstruktur Versus Pemrograman Berorientasi Objek
Tabel 9.1 Pemrogramana Terstuktur Vs Pemrograman Berorientasi Objek
91
BAB X
TAHAPAN PERANCANGAN BERORIENTASI OBJEK
1. Identifikasi kelas, atribut, responsibility dan operasi
Sama seperti pendekatan topdown, untuk mendefinisikan garisbawahi kata
benda dan sifat yang relevan dengan masalah. Contoh :
a. Dibutuhkan program untuk membaca file karyawan yang berisikan berisi
nomor karyawan, tingkat upah, dan jumlah jam kerja per minggu.
b. Program kemudian memvalidasi upah dan jam kerja. Jika benar, hitung
upah mingguan pegawai dan cetak payslip. Validasi : menurut aturan
perusahaan, maksimal seorang pegawai bekerja 60 jam seminggu dan
maksimum 250,000 per jam. Jika jam bekerja atau 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.
Tabel 10.1 Kelas, Atribut, Responsibility dan Operasi
92
2. 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.
Gambar 10.1 Contoh Hubungan Antar Objek dan Kelas
3. 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.
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
93
ELSE payRate = inPayRate
END IF
END
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
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
94
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
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
95
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
4. Mengembangkan tes algoritma 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
96
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
97
BAB XI
PERANCANGAN BERORIENTASI OBJEK UNTUK MULTI
KELAS
11.1 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.
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.
11.2 Hubungan Antar Kelas
Berikut ini 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.
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 :
98
a. Asosiasi dua arah atau
b. Asosiasi satu arah (pasif)
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
Gambar 11.1 Contoh penggnaan Asosiasi
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
Tabel 11.1 Multiplisitas
99
Gambar 11.2 Contoh Asosiasi
public class A {
public B b;
public A(){
}
}
public class B {
public B(){
}
}
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.
100
Agregasi adalah hubungan suatu kelas yang merupakan bagian dari kelas lain
namun bersifat tidak wajib.
Simbol :
Contoh ;
Gambar 11.3 Contoh Agregasi
Komposisi adalah hubungan suatu kelas yang merupakan bagian yang wajib
dari kelas lain.
Simbol :
Contoh :
Contoh 11.4 Conoth 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. Generalisasi
diperlukan untuk memperlihatkan hubungan pewarisan antar objek atau kelas.
Simbol :
101
Contoh :
Gambar 11.5 Contoh Generalisasi
public class Person {
public Person(){
}
}
public class Employee
extends Person {
public Employee(){
}
}
102
11.3 Polimorfisme
Polymorphism adalah kemampuan untuk mempunyai beberapa bentuk yang
berbeda. Polymorphism diimplementasikan dengan mekanisme inheritance dan
overriding.
Gambar 11.6 Contoh Polimorfisme
1. 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 :
103
2. Overloading
Menuliskan kembali method dengan nama yang sama pada suatu class. Tujuan
: memudahkan penggunaan/pemanggilan method dengan fungsionalitas yang
mirip. Contoh :
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;
}
}
104
BAB XII
IMPLEMENTASI ALGORITMA KE DALAM BAHASA
PEMROGRAMAN BERORIENTASI OBJEK
12.1 Bahasa Pemrograman Yang Mendukung OOP
Bahasa pemrograman yang mendukung OOP antara lain: SmallTalk, C++,
Java, dan lain sebagainya.
1. Smalltalk
Smalltalk adalah bahasa pemrograman berorientasi objek yang pertama kali
populer. Smalltalk dikembangkan di Xerox PARCAmerika Serikat. Ide dasar Smalltalk
meliputi:
a. Semua adalah objek
b. Objek bisa saling berkomunikasi melalui messages atau berita
c. Semua tersedia untuk dimodifikasi
2. 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.
105
3. 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).
12.2 Implementasi OOP Dengan 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();
106
return 0;
}
12.3 Implementasi OOP Dengan Java
Mobil.java
class Mobil{
String warna;
int tahunProduksi;
void PrintMobil(){
System.out.println("Warna: " +
warna);
System.out.println("Tahun: " +
tahunProduksi);
}}
MobilBeraksi.java
public class MobilBeraksi {
public static void main(String[]
args){
// Membuat object
Mobil mobilku = new Mobil();
/* memanggil atribut dan memberi
nilai */
mobilku.warna = "Biru";
107
mobilku.tahunProduksi = 2009;
mobilku.PrintMobil();
}}
108
DAFTAR PUSTAKA
.
Binarto, Iwan. 2005. Konsep Bahasa Pemrograman. Yogyakarta: ANDI.
Kadir, Abdul. 2002. Pemrograman C++. Yogyakarta: ANDI.
Raharjo, Budi. 2009. Pemrograman C++. Bandung: Informatika.
Robertson, Lesley Anne. 2003. Simple Program Design: a Step by Step Approach.
Edisi ke-4. Course Technology Inc
Sutanta, Edhy. 2004. Algoritma : Teknik Penyelesaian Masalah Komputasi.
Yogyakarta:Graha Ilmu.
Suarga. 2006. Algoritma Pemrograman. Yogyakarta : ANDI.
Sutopo, Ariesto Hadi. 2002. Analisis dan Desain Berorientasi Objek. Yogyakarta: J&J
Learning