Anda di halaman 1dari 55

1.

Yang bukan pemeliharaan program

adalah :

a.

Preventive

d.

Adptif

b.

Perfective

e.

Korektif

c.

Efektif

2. Penulisan program Data Oriented


bersifat :

memiliki tingkat fleksibitas yang tinggi dan

a.

Statis

d.

Dinamis

b.

Portabilitas

e.

Sederhana

c.

User Friendly

3. Mengkoreksi kesalahan sampai kesalahan di perbaiki, meliputi


penetapan lokasi dan kode error disebut :
a.

Debugging

d.

Testing

b.

Compilling

e.

Running

c.

Coding

4. Membuat menu tampilan yang informasi termasuk ke dalam standar


penyusunan program
a.

Waktu penulisan

d.

Perawatan

b.

Kebenaran logika

e.

Portabilitas

c.

User Friendly

5. Tujuan dokumentasi pada tahap pembuatan program adalah :


a. Sebagai Pedoman dan
penjelasan bagi user

d. Agar program mudah dimengerti

b. Agar program terlihat rapih

e. Sebagai pedoman dan


penjelasan bagi programmer

c. Untuk kemudahkan dalam


menjalankan program
6. Program aplikasi pengajian pada suatu perusahaan termasuk ke
dalam sifat penulisan program :
a.

Object Oriented

d.

Interactive Oriented

b.

Program Oriented

e.

Data Orinted

c.

Bussiness Oriented

7. Simbol di bawah ini termasuk operator pada C++ adalah :


a.

Int b

d.

Void

b.

&&

e.

default

c.

Long d

8. Algoritma beri langkah-langkah penyelesaian masalah ini berarti


algoritma adalah pergertian dari :
a.
Pemprograman berbasis
objeck

d.

Pemprograman Funtional

b.

Pemprograman Prosedural

e.

Pemprograman

c.

Pemprograman

Generik

9. Di bawah ini contoh dari token :


a.

Tipe data

d.

Reserved word

b.

Komentar

e.

Function

c.

Operator

10. Sifat penulisan program di mana penulisan program terstuktur


programnya selalu berubah, apabila kondisi data yang di proses di
dalam program tersebut, bertambah volume datanya adalah :
a.

Object Oriented

d.

Interactive Oriented

b.

Program Oriented

e.

Data Orinted

c.

Bussiness Oriented

11. Pembuatan back-up program dan pembuatan tampilan program


sesuai dengan kebutuhan program merupakan salah satu keteria
pemiliharaan dalam tahapan pembuatan program, yaitu :
a.

Preventive

d.

Adaptif

b.

Perfective

e.

Korektif

c.

Efektif

12. Bahasa program di bawah ini yang termasuk bahasa tingkat menengah adalah :
a.

Pascal

d.

C+

b.

Assembler

e.

c.

C++

13. Pada beberapa point di bawah ini, yang termasuk tipe data
majemuk adalah :
a.

Real/float

d.

Integer

b.

String

e.

Boolean

c.

Character

14. Bahasa pemograman yag menggunakan symbol-symbol yang


mudah di ingat (mnemonic) adalah bahasa pemograman :
a.

Assembler

d.

b.

Pascal

c.

PL/1

e.

Fortan

15. Program di susun dari pemecahan masalah yang kompleks,


kemudian menghubungkan prosedur-prosedur yang ada menjadi satu
kesatuan yang menjadi program sebagai penyelesaian masalah
tersebut, merupakan salah satu teknik penulisan program secara :
a.

Procedural

d.

Modular

b.

Bottom-up

e.

Top-down

c.

Sequence

16. Bahasa pemograman yang termasuk bahasa berorintasi objek


adalah :
a.

Basic

d.

Assembler

b.

Java

e.

Foxpro

c.

17. Berikut ini yang tidak termasuk bahasa pemograman yang berorrientasi pada
procedural (Procedure Oriented Language)
a.

Algol

d.

Basic

b.

RPG

e.

Pascal

c.

Cobol

18. Di bawah ini yang merupakan simple statement adalah :


a.

Loop statement

d.

Sequence statement

b.

Selection statement

e.

Assignment statement

c.

Iteration statement

19. Dokumentasi merupakan setiap langkah-langkah pekerjaan


membuat program dari awal sampai akhir, dan biasanya digunakan
untuk penulusuran kesalahan dan ..
a.

Penggunaan program

d.
Penulisan intruksi
program

b.

Perancangan program

e.
Pengembangan
program

c.

Perawatan program

20. Yang tidak termasuk dalam pembiayaan di dalam pembuatan


program adalah :
a.

Biaya kompilasi

d.

Biaya pemiliharaan

b.

Biaya penciptaan

e.

Biaya eksekusi

c.

Biaya disain

21. Perangkat lunak seperti Norton Anti Virus merupakan jenis


perangkat lunak :
a.

System software

d.

Application software

b.

Program software

e.

Utility software

c.

Package software

22. Untuk membuat program yang besar dan komplek di butuhkan :


a.

6 tahap

d.

7 tahap

b.

4 tahap

e.

8 tahap

c.

5 tahap

23. Ketika procedure atau function di panggil, dapat melewatkan suatu


nilai ke dalam function atau procedure, nilai yang di lewatkan di sebut :
a.

Konstanta

d.

Argument

b.

Data

e.

Value

c.

Variable

24. Ciri-ciri algoritma pemograman yang baik adalah :


a. Semua proses harus berakhir
setelah jumlah langkah di lakukan

d. Format penulisan sesuai jenis


computer di tulis dengan bahasa
Indonesia

b. Di tulis dengan format sesuai


dengan salah satu format bahasa
pemrograman

e.

c. Menghasilkan input yang


tepat
25. Perangkat lunak seperti MS.Office, Adobe, Macromedia merupakan
jenis perangkat
a.

System software

d.

Application software

b.

Program software

e.

Utility software

c.

Package software

26. Dalam membuat desain algoritma atau membuat rumusah masalah


dapat di buat dengan menggunkan beberapa alat (tool). Berikut alat
yang tidak dapat di gunakan untuk mendesain algoritma program :
a.

HIPO

d.

Flowchart

b.

Procedure

e.

Struktur Chart

c.

Normalisasi

27. Yang termasuk reserverd word pada C++ adalah :


a.

Cin

d.

Variable

b.

&&

e.

++

c.

Operator

28. Sifat penulisan program di mana penulisan program terstuktur


programnya tidak selalu berubah, walau pun volume data yang di
proses di dalam program tersebut, dalam jumlah besar adalah :
a.

Object Oriented

d.

Interactive Oriented

b.

Program Oriented

e.

Data Orinted

c.

Bussiness Oriented

1. Tahap dalam SDLC dimana system dievaluasi dan di pisahkan bedasarkan


prioritas akan di pilih untuk pengembangan ,di lakukan pada tahap :
a.

Design

d.

b.

Implementation

e.

c.

Maintenance

Planning
Analysis

2. Yang tidak termasuk langkah-langkah dalam merancang program dan merancang file adalah :
a. Menentukan banyaknya jumlah kebutuhan

d. Menentukan parameter file

data
b. Menentukan parameter dari program

e. Menentukan banyaknya jumlah program

c. Menentukan banyaknya jumlah kebutuhan file

3. Nama yang di buat pada saat file digambarkan dalam bentuk diagram
(normalisasi) adalah parameter file:
a.

Nama file

b.

Kode file

c.

Akronim file

d.

Organisasi file

e.

Type file

4. Dalam system pengajian dikenal istilah batch. Manakah dari spesifikasi


kebutuhan di bawah ini yang memerlukan pemrosesan secara batch:
a.
b.
c.

Absensi
Slip gaji

d.

Golongan

e.

Tunjangan

Laporan gaji

5. Model dalam SDLC yang melibatkan pemakai secara intensif, sehingga


pendefinisian kebutuhan pemakai menjadi lebih baik adalah:

a.

Model Prototyping

b.

Model Waterfall

c.

Model Spiral

d.

Model Incremental

e.

Model RAD

6. Di bawah ini yang merupakan Akronim file dari system pengajian adalah:
a.
b.
c.

Nomor induk pegawai


Pegawai.myd

d.

Parameter gaji

e.

Pegawai.prg

Siswa01

7. Tidak bisa di lakukan pembacaan secara langsung, adalah ciri organisasi file:
a.

Index sequential

d.

Acak

b.

Sequential

e.

Index

c.

Random

8. Dalam model operasi file, pengaksesan sebuah file dengan tujuan untuk
mendapatkan informasi merupakan pengertian dari
a.

Insert

d.

Retrieaval

b.

Creation

e.

Maintenance

c.

Update

9. Yang termasuk jenis table dinamik adalah :


a.

Tabel dosen

d.

b.

Tabel nilai

e.

c.

Table mahasiswa

Table matakuliah
Table karyawan

10. Dibawah ini akronim file dari database pegawai adalah :


a.
b.
c.

Pegawai.com
Pegawai.myd

d.

Pegawai.exe

e.

Pegawai.doc

Pegawai.xls

11. Pada metode file random,dapat terjadi munculnya alamat lebih dari satu kali
yang dapat di atasi dengan teknik:
a.

Penembahan record baru

d.

Penyimpanan sekunder

b.

Overflow location

e.

Pengalamatan absolute

c.

Pengalamatan relative

12. Yang tidak termasuk kategori tipe file dinamik dalam sistem pengajian adalah:
a.

File gaji

d.

File golongan

b.

File transaksi

e.

File absensi_pegawai

c.

File laporan

13. Tahapan dalam SDLC yang bertujan untuk memastikan bahwa sistem yang
di gunakan oleh pihak pengguna benar-benar telah stabil dan terbebas dari
error dan bug, adalah:
a.

Analysis

d.

b.

Design

e.

c.

Implementation

Maintenance
Planning

14. Table yang digunakan untuk memperbarui table master dengan informasi
yang baru :
a.

Tabel output

d.

b.

Table kerja

e.

c.

Tabel pustaka

Tabel transaksi
Tabel referensi

15. Tahap dalam SDLC di mana sumber daya baru direncanakan dan tanpa dana
di sesuaikan untuk mendukung pengembangan sistem, adalah :
a.
b.
c.

Design
Planning

d.

Maintenance

e.

Implementation

Analysis

16. Nilai dan record-recordnya sering berubah atau sering di mutakhirkan


(update) sebagai akibat dari suatu transaksi, merupakan jenis table :
a.

Table kerja

d.

b.

Table referensi

e.

c.

Table transaksi

Table dinamik
Table back-up

17. Model dalam SDLC yang di sebut linear sequintail model adalah:
a. Model waterfall

d. Model spiral

b. Model incremental

e. Model RAD

c. Model prototyping

18. Pada media penyimpanan SASD, data di simpan dalam bentuk


a.

Karakter

d.

Sector

b.

Record

e.

Karakter atau blok

c.

Blok

19. Table yang di gunakan sebagai pelindung atau cadangan apabila table
master hilang adalah :
a.

Table pustaka

d.

b.

Table output

e.

Table history
Table back-up

c.

Table master

20. Yang tidak perlu di pertimbangkan dalam organisasi file adalah:


a. Efisiensi penggunaan media

d. Kecepatan akses dalam pengambilan

penyimpanan (storage)

data

b. Kemudahan beroerganisasi data

e. Kemudahan peremajaan
(update/insert/delete)

c. Kemudahan pembuatan file

21. Nama yang di buat untuk menyimpan source program adalah parameter
progam:
a.

Nama program

d.

b.

Organisasi program

e.

c.

Kode program

Fungsi program
Akronim

22. Akses data pada organisasi file random menggunakan


a.

Nomor indeks

d.

Field kunci

b.

Record

e.

Data masukan

c.

Data akses

23. Langkah-langkah dalam merancang file adalah:


a. Menentukan akronim file

d. Menentukan nama file

b. Membuat SDLC (Daur hidup

e. Menentukan banyaknya jumlah

system)

kebutuhan file dan parameter

c. Analisa kebutuhan file

24. Yang merupakan table jenis master


a. Table transaksi dan table
referensi
b. Table referensi dan table kerja

d. Table dinamik dan table transaksi


e. Table referensi dan table dinamik

c. Table dinamik dan table static

25. Di bawah ini yang merupakan field key dari suatu table pegawai perusahaan
adalah:
a.

nama pegawai (napeg)

d.

jabatan pegawai (japeg)

b.

gaji pegawai (gepeg)

e.

nomor induk pegawai (nipeg)

c.

golongan pegawai (gopeg)

26. Salah satu kekurangan SDLC adalah hasil yang di peroleh sangat tergantung
dari hasil pada tahap
a.

design

d.

planning

b.

maintenance

c.

analysis

e.

implementasikan

27. Dalam system pengajian di kenal istilah batch, maksud dari istilah tersebut yang paling tepat
adalah
a.

gambaran kerja suatu aplikasi

d.

pemrosesan data offline

b.

pemrosesan data dengan metode

e.

pemrosesan data yang di tunda sesuai

interaktif
c.

jadwal yang di tentukan

pemrosesan data secara online

28. Table yang beri data di masa lalu yang di pakai sebagai bahan pengecekan
dan pencocokan ke validasi an data di masa mendatang adalah:
a.

table history

b.

table back-up

c.

table master

d.

table output

e.

table dinamik

29. Table pegawai termasuk ke dalam kelompok parameter file


a.

kode file

d.

type file

b.

nama file

e.

organisasi file

c.

akronim file

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
Print_
control_
total_line
Produce_
Single_level
control_break
Process
_this_
records
Print_page
_headings
Initialize
variable
_fields
Print_
report_
total
Print_
detail_line
Accumulate_
control_total
Reset_

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
Print_page
_headings
Reset_
major_control
_ total
Proceduce_
multiple_level
control_break
Process
_this_
records
Initialize
variable
_fields
Print_major
_control_
total
Print_minor
_control_
total
Accumulate_

control
Reset_
minor_control
_ total
Print_
detail_line
Print_
report_
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
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
SUBORDINATE MODUL (lanjutan)
TUGAS 6
Buatlah program lengkap dengan pseudocode dan
flowchart untuk menampilkan daftar gaji gaji karyawan,
dengan ketentuan sebagai berikut :
Kode
Jabatan
Jabatan Gaji
Pokok
Kode
Status
Status Tunjangan
1 Administrasi 800.000
M Menikah 200.000
S Single 100.000
2 Operasional 850.000
M Menikah 250.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 extensionnya.
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
2. Spesifikasi Tabel Buku
Nama File

: Tabel Buku

Akronim File
Fungsi File
Tipe File

: tbl_buku.myd
: untuk menyimpan data buku perpustakaan

: File Master

Organisasi File : Index Sequential

Akses File

: Random

Media File

: Harddisk

Panjang Record : 161 karakter


Kunci Field
Software

: kdbuku
: MySQL

SPESIFIKASI FILE/DATABASE
(lanjutan)
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
Tabel II.2
Tabel Buku
PENGKODEAN
Kode yang dibuat dalam pengkodean adalah field-field
yang dijadikan sebagai kunci primer (Primary Key/PK):
1.Nomor Anggota
2.Kode Buku
Catatan: Login tidak
perlu digambarkan di
dalam HIPO
Spesifikasi Program (Diagram
HIPO
Catatan: hanya no.5 yang dijelaskan dalam pertemuan ini
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
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

Catatan: hanya no.2 yang dijelaskan dalam pertemuan ini, selebihnya


Dosen mengembangkan sendiri bentuk flowchart di atas
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
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.
7
satu template
banyak instance
(wujud nyata)
CONTOH KELAS
Bank
Sebuah kelas
(Konsep)
Rekening Bank Udin
Saldo: Rp5.257.000
Sebuah objek
(Realisasi)
Rekening Bank Ali
Saldo :Rp13.245.069
Rekening Bank Susi
Saldo : Rp366.891.833
Beberapa objek
dari kelas yang sama
CONTOH KELAS (lanjutan)

Class Mobil
Class Mobil B7471UL B851OK
Variabel Instance
Warna Biru Merah
Tahun 2009 2008
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
Warna
Tahun
Manufaktur
Kecepatan
+Akseleration()
+Turn(direction)
+Stop()
+Break()
Nama
Class
Atribut
Method
/behavior
B7471UL: Mobil
Biru
2009

Toyota
K80 km/jam
+Akseleration()
+Turn(direction)
+Stop()
+Break()
B851OK:Mobil
Merah
2008
Mitsubishi
60 km/jam
+Akseleration()
+Turn(direction)
+Stop()
+Break()
KARAKTERISTIK OBJEK
Attributes :
Warna, Tahun Produksi, Manufaktur,
kecepatan
Behavior/Tingkah Laku :
Akseleration(), Turn(direction),
Stop(), Break() dll
Identitas :
B7471UL
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
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.
ATRIBUT (lanjutan)
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
Method adalah serangkaian statements dalam
suatu class yang menghandle suatu task

tertentu.
Cara objek berkomunikasi dengan objek lain
adalah dengan menggunakan method.
TINGKAH LAKU (lanjutan)
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.
Segitiga
Memiliki :
Tinggi
Alas
Apa yang anda ingin segitiga lakukan ?
Hitung Luas
Hitung Keliling
ABSTRAKSI (lanjutan)
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 didebug setiap
kali digunakan
Pemrograman Terstruktur OOP
a. Penekanan pada urutan yang
harus dikerjakan (algoritma
pemecahan masalah)
a. Pendekatan lebih pada data
bukanya pada fungsi/prosedur
b. Program berukuran besar
dipecah-pecah menjadi programprogram yang lebih kecil
(Modular)
b. Program besar dibagi ke dalam
Objek-objek. Struktur data
dirancang dan menjadi
karakteristik dari objek-objek
c. Kebanyakan fungsi/prosedur
berbagi data global
c. Fungsi-fungsi yang
mengoperasikan data tergabung
dalam suatu objek yang sama
PEMROGRAMAN TERSTRUKTUR VS
PEMROGRAMAN BERORIENTASI OBJEK
Pemrograman Terstruktur PBO
d. Data bergerak secara bebas
dalam sistem, dari satu fungsi ke

fungsi yang lain saling terkait


d. Data tersembunyi dan terlindung
dari fungsi/prosedur yang ada di
luar
e. Fungsi-fungsi mentransformasi
data dari satu bentuk ke bentuk
yang lain
e. Objek-objek dapat saling
berkomunikasi dengan saling
mengirim message satu sama
lain
f. Pendekatan adalah pendekatan
top down (dari atas ke bawah)
f. Pendekatanya adalah bottom up
(dari bawah ke atas)
PEMROGRAMAN TERSTRUKTUR VS
PEMROGRAMAN BERORIENTASI OBJEK
(lanjutan)

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

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
absen yang valid
+printPaySlip()
Payroll File data
absen
Baca file data absen +runTimeSheet()
+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 Payslip
Uses
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)
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
Input Proses Output
Data Absen
empNumber
hoursWorked

payRate
Baca data absen
Buat payslip dari data
absen
Cetak paySlip yang valid
Cetak paySlip
Pesan kesalahan
untuk paySlip yang
tidak valid
MENGEMBANGKAN TES ATAU DRIVER
ALGORITMA (lanjutan)
Payroll
-timesheetFile
+run()
Payslip
empNumber
payRate
hoursWorked
validInput
weeklyPay
+setEmpNumber(EmpNumb
er)
+setpayRate(PayRate)
+setHoursWorked(HoursWo
rked)
-setPay()
+getValidInput(validInput)
+printPayslip
Uses
1..*

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 Garasi
menggunakan
1..2 1
multiplisitas
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
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.

ASOSIASI (lanjutan)
9
ASOSIASI (lanjutan)
ASSOCIATIONS
class Association
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
stered Trial Version EA 9.0 Unregistered Trial Version
AB
1
+b
1
public class A {
public B b;
public A(){
}
}
public 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
Person
Employee
public class Person {
public Person(){
}
}
public class Employee
extends Person {
public Employee(){
}
}
POLYMORPHISM
Polymorphism adalah kemampuan untuk
mempunyai beberapa bentuk yang berbeda.

Polymorphism diimplementasikan dengan


mekanisme inheritance dan overriding
hewan
anjing
menggonggong
kucing
mengeong
kuda
meringkik
bersuara
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.
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;
}
}
CONTOH OVERLOADING

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 PARCAmerika 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).
T ahun 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).


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 BAHASA C++
class Mobil{
String warna;
int tahunProduksi;
void PrintMobil(){
System.out.println("Warna: " +
warna);
System.out.println("Tahun: " +
tahunProduksi);
}}
public class MobilBeraksi {
public static void main(String[]
args){
// Membuat object
Mobil mobilku = new Mobil();

/* memanggil atribut dan memberi


nilai */
mobilku.warna = "Biru";
mobilku.tahunProduksi = 2009;
mobilku.PrintMobil();
}}
Mobil.java MobilBeraksi.java
IMPLEMENTASI ALGORITMA
DENGAN JAVA

Anda mungkin juga menyukai