2013 - 2014 01 pbo pertemuan 01
DESCRIPTION
Pemrograman orientasi obejekTRANSCRIPT
MATERI TEORI & LAB PBO
MINGGU Ke-1
PENGANTAR OOP
Jam ke 1 (Teori di kelas)
Jam ke 2 (Praktikum di Lab)
Sebelum memulai praktikum mahasiswa dilengkapi dengan pemahaman
akan materi yang akan dipraktikumkan. Pada pertemuan minggu ke-1 ini
yang dibahas tentang abstraksi.
6
MATERI TEORI & LAB PBO
Jam ke-1
1.1. Pendahulan Pendekatan berorientasi objek merupakan pendekatan yang lagi trend dalam
pengembangan perangkat lunak. Dengan semakin berkembangannya bahasa
pemrograman yang berorientasi objek maka para praktisi pengembang perangkat
lunak mulai beralih ke pendekatan berorientasi objek (Object Oriented).
1.2. Sejarah Berorientasi Objek Pemrograman berorientasi objek mulai dibicarakan sekitar akhir tahun 60’an.
Pertama kali diperkenalkan oleh Ole Johan Dhal dan Kristen Nygaard dari
Universitas Oslo, Norwegia pada tahun 1966 dalam jurnal dengan judul
“SIMULA An Algol Based Simulation Language”.
Jadi OOP bukan hal baru. Pada tahun 1970 bahasa SMALTALK dikembangkan
oleh XEROX PARC. Pada saat itu sebagian dari dunia menggunaan COBOL
dan FORTRAN dengan metode dekomposisi dan fungsional.
Perubahan terjadi selama beberapa dekade sampai dikenalnya faktor utama
berorientasi objek, yaitu :
1. Konsep dasar berorientasi objek, konsep berorientasi objek mulai populer
dimana memulai Analisis dan Desain menjadi lebih diperhatikan daripada
Coding.
2. Teknologi dasar pengembangan sistem, coding sangat dipengaruhi oleh
bahasa pemrograman yang tersedia. Untuk pengembangan program
terstruktur lebih mudah dikembangkan dengan pascal, atau C, dan
pembuatan coding berorientasi objek akan lebih mudah dikembangkan
dengan bahasa pemrograman VB.Net, C#, C++, DELPHI, JAVA, PHP.
3. Konsep dasar berorientasi objek, konsep berorientasi objek mulai populer
dimana memulai Analisis dan Desain menjadi lebih diperhatikan daripada
Coding.
4. Teknologi dasar pengembangan sistem, coding sangat dipengaruhi oleh
bahasa pemrograman yang tersedia. Untuk pengembangan program
terstruktur lebih mudah dikembangkan dengan pascal, atau C, dan
pembuatan coding berorientasi objek akan lebih mudah dikembangkan
dengan bahasa pemrograman VB.Net, C#, C++, DELPHI, JAVA, PHP.
1.3. Pengembangan Berorientasi Objek Pengembangan berorientasi objek merupakan cara berpikir baru tentang
perangkat lunak berdasarkan abstraksi alam dunia nyata.
Hal yang lebih penting dalam pengembangan berorientasi objek adalah konsep
mengidentifikasi objek dan mengorganisasi domain aplikasi dibandingkan
dengan fokus penggunaan bahasa pemrograman berorientasi objek atau tidak.
7
MATERI TEORI & LAB PBO
1.3.1. Konsep Pemodelan Kebanyakan usaha akhir dalam lingkungan berorientasi objek dipusatkan pada
bahasa pemrograman. Pengembangan berorientasi objek adalah proses
konseptual terpisah dari bahasa pemrograman samapi tahap akhir.
Pengembangan berorientasi objek secara mendasar merupakan cara berpikir baru
dan bukan suatu teknik pemrograman. Hal ini dapat berfungsi sebagai media
spesifikasi, analisis, dokumentasi dan interface seperti halnya pemrograman.
1.3.2. Metodologi Berorienasi Objek Metodologi berorientasi objek diperkenalkan pada tahun 1980, menggunakan
teknik-teknik yang dibutuhkan dalam pengembangan sistem, yaitu: dynamic dan
static object oriented model, state transtion diagram dan case scenario.
Fukus utama metodologi pada objek, dengan melihat suatu sistem terdiri dari
objek yang saling berhubungan. Objek dapat digambarkan sebagai benda, orang,
tempat dan sebagainya yang mempunyai atribut dan metoda.
Metodologi terdiri dari pembuatan model dari domain aplikasi, kemudian
menambahkan rincian implementasi. Tahapan-tahapan metodologi berdasarkan
system development life cycle dengan memperhatikan khusus berorientasi objek.
1.4. OOA, OOD, OOP OOA (Object Oriented Analysis) Analisis Berorientasi Objek / Object Oriented Analysis (OOA) dimulai dengan
menyatakan suatu masalah, analisis membuat model situasi dari dunia nyata.
Model analisis adalah abstraksi yang ringkas dan tepat apa yang harus dilakukan
oleh sistem, dan bagaimana melakukannya.
Empat kesulitan dalam pengembangan sistem adalah: mamahami problem
domain, komunikasi kepada pihak yang berkaitan, perubahan, dan reuse
(penggunaan kembali).
OOD (Object Oriented Design)
Desain Berorientasi Objek / Object Oriented Design (OOD) merupakan tahapan
lanjutan setelah OOA dimana tujuan sistem diorganisasikan kedalam sub sistem
berdasar struktur analisis dan arsitektur yang dibutuhkan.
Fokus dari desain objek adalah perencanaan struktur data dan algoritma
yang diperlukan untuk implementasi setiap class. Objek domain aplikasi dan
objek domain komputer dijelaskan dengan menggunakan konsep dan notasi
berorientasi objek yang sama.
OOP (Object Oriented Programming) / Implementasi
Class, objek dan realisasinya di kembagkan dalam tahap pembuatan desain
objek yang akhirnya diterjemahkan kedalam bahasa pemrograman, basis data
dan implementasi perangkat keras.
8
MATERI TEORI & LAB PBO
1.5. Konsep Pemrograman Berorientasi Objek Dalam konsep pemrogramam berorientasi objek ada 4 hal yang utama yaitu:
1. Abstraksi (Abstraction).
2. Pewarisan (Inheritance).
3. Pembungkusan (Encapsulation).
4. Banyak Bentuk (Polymorphism).
Abstraksi (Abstraction) Abstraksi suatu cara melihat suatu objek dalam bentuk yang lebih sederhana,
contoh: Bila kita melihat sebuh mobil bukan sebagai sebuah kumpulan atau
ribuan komponen elektronik , mekanik dengan empat buah ban, besi, jok stir dan
sebagaiya.
Walau kenyataanya demikian namum kita melihat mobil sebagai sengle entity
yang merupakan suatu objek yang mempunyai sifat dan karakteristik tersendiri.
Kita tidak perlu tahu bagaimana kompleknya mobil itu, tidak perlu tahu
bagaimana cara bekerja mesin, dll. Kita tidak meihat bagian-bagian dalam
sebuah mobil sebagai suatu bagian yang berdiri sendiri-sendiri, tetapi sebagai
satu kesatuan.
Dengan abstraksi kita melihat suatu sistem yang komplek sebagai kumpulan
subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan
suatu sistem yang terdiri atas subsistem-subsistem.
Class Class merupakan template untuk obyek. Sintak mendeklarasikan class
pada VB.net adalah:
Class <nama class>
<isi dari class: variable, function, sub-procedure>
End Class
Semua objek didalam VB.Net diturunkan dari class. Class ini bisa disebut
sebagai superclass atau nenek moyang dari suma class yang ada didalam
VB.Net.
Objek Objek merupakan representasi nyata atau instance (perwujudan) dari dari
class. Objek juga memiliki method yaitu tindakan yang dilakukan oleh
objek. Sedangkan event adalah pemberitahuan yang diterima objek atau
dikirimkan ke objek atau aplikasi lain. Event akan memicu suatu aksi. Sintak
pendeklarasian objek dari suatu class.
Dim <Nama_objek> As New <Nama_Class>
Contoh:
Kita memiliki class dengan nama Karyawan dan kita akan menciptakan
objek dari class Karyawan. Dim objKaryawan As New Karyawan
9
MATERI TEORI & LAB PBO
Field Field adalah variabel yang didefinisikan didalam class, dan disebut juga
sebagai member variabel. Pada umumnya field merupakan variabel-
variabel private dalam block class. Apabila menggunakan class yang
memungkinnkan untuk memodifikasi nilai suatu field, sebaiknya
menggunakan property yang berkaitan. Property yang nantinya yang akan
menyedikan akses ke field.
Level akses yang dikenal adalah:
Acess Modifier Keterangan Public Untuk mendefinisikan tipe yang bisa diakses oleh
siapa saja, baik class itu sendiri atau class lain di
dalam aplikasi.
Friend Untuk mendefinisikan tipe yang hanya bisa diakses
dari current project, atau dari assembly dimana tipe
tersebut dideklarasikan.
Protected Mendefinisikan tipe yang hanya bisa diakses oleh
member-member class itu sendiri atau member class
turunan.
Protected Friend Untuk mendefinisikan tipe yang bisa diakses oleh
member-member dalam satu assembly atau class
turunnanya. Access modifier ini merupakan
gabungan dari Protected dan Friend.
Private Mendefiniskan tipe yang hanya bisa diakses oleh
member-member di mana tipe tersebut
dideklarasikan.
Pada saat mendeklarasikan field, sebaiknya menggunakan level akses
private, dengan tujuan agar tidak dapat diakases oleh class-class lainnya.
Public Class Karyawan
'Deklarasi field atau member variabel
Private NIK As String = 4 'Panjang string 4 karakter
Private Nama As String = 30
Private Alamat As String
Private TglLahir As Date
Private NoHP As String = 13
Private GajiPokok As Long
End Class
Field digunakan pada beberapa kasus antara lain:
Ketika nilai merupakan tipe yang divalidasi sendiri. Sebagai
contoh, suatu kesalahan atau konversi data otomatis terjadi jika nili
selain True dan False di-assign ke variabel bertipa boolean.
Setiap nilai didalam range didukung oleh tipe data variabel.
Ketika properti memiliki tipe data String, dan tidak ada batasan
(constraint) pada ukuran atau nilai string.
10
MATERI TEORI & LAB PBO
Property
Property adalah sebuah Method khusus yang digunakan untuk
mendapatkan atau mengubah nilai dari sebuah Field dalam Class.
Penggunaan Property biasanya ditunjukkan pada Field yang bersifat
Private. Field yang bersfiat Public dapat diakses langsung dari luar Class,
sedangkan Field yang bersifat Private hanya dapat diakses dari luar Class
melalui Property.
Sintak penulisan Property adalah sebagai berikut:
<KataKunci> Property <NamaProp> As <TipeData>
Get
...
Return <NamaField>
End Get
Set(<T_P> <Arg> As <T_D>
...
...
End Set
End Property
Dimana: Katan Kunci, biasanya Public atau Private.
NamaProp, adalah nama Property-nya.
TipaData, Adalah tipe data Property.
Bagian Get sampai End Get,adalah bagian Property yang digunakan untuk
mendapatkan nilai dari Field.
Return, digunakan untuk mendapatkan isi dari sebuah field.
Bagian Set dan End Set adalah bagian Property yang digunakan untuk mengatur
atau mengubah nilai field tertentu.
T_P, adalah Tipe Parameter bagi argumen bagian Set biasanya ByVal.
Arg, adalah nama Argumen yang akan digunakan bagian Set untuk menampung
parameter input.
T_D, adalah tipe data dari argumen tersebut.
Contoh penerapan property pada class Mahasiswa.
Public Class Mahasiswa
'Variabel untuk memasukkan nama mahasiswa
Private idNamaMahasiswa As String
'Property yang membolehkan fungsionalitas Get dan Set
'pada variable idNamaMahasiswa
Public Property NamaMahasiswa() As String
Get
Return idNamaMahasiswa
End Get
Set(ByVal Value As String)
idNamaMahasiswa = Value
End Set
End Property
End Class
(Catatan: Property akan dibahas khusus pada pertemuan ke 4)
11
MATERI TEORI & LAB PBO
Method
Method atau metode adalah Sub (Prosedur) dan Function yang dimiliki
subuah Class. Dengan kata lain Method adalah Prosedur dan Fungsi di
lingkungan Class. Method menunjukkan apa saja yang dapat dilakukan
oleh objek hasil instantiasi Class tersebut, Method juga biasanya memiliki
kata kunci Public atau Private.
Method memiliki daftar paramter formal atau tanpa prameter, nilai
kembalian atau tanpa nilai kembalian, dan shared atau non non-shared.
Dimana method sahred diakses melalui Class, sedangkan method non-
shared atau biasa disebut instance method, akan diakases melalui
instantiasi Class.
Perbedaan presedur dan fungsi adalah: fungsi dapat mengembalikan satu
nilai kepada nama fungsinya sedangkan pada sub atau prosedur tidak bisa
mengembalikan nilai.
Fungsi
Fungsi mirip dengan subrutin, bedanya fungsi menghasilkan return value /
mengembalikan nilai. Suatu fungsi adalah blok kode yang dapat dipanggil
untuk mengerjakan suatu tugas tertentu dan menghasilkan nilai kembalian.
Fungsi dapat memiliki parameter atau tanpa parameter. Cara
mendeklarasikan fungsi.
[Public|Private] Function namafungsi (daftar parameter) Tipedata
....
....
Namafungsi = nilaikembalian
End Function
Fungsi tanpa parameter Contoh fungsi tanpa parameter untuk hitung luas lingkaran.
'Method dengan fungsi tanpa parameter
Public Function HitungLuas() As Single
Return pi * JariJari * JariJari
End Function
Fungsi dengan parameter Contoh fungsi dengan parameter untuk hitung luas lingkaran.
'Method / fungsi dengan parameter
Public Function HitungLuas(ByVal JariJari As Single)As
Single
Return pi * JariJari * JariJari
End Function
Catatan: Pelajari dengan baik pengunaan Function dan Sub (Prosedur) karena dalam
pemrograman berorientasi objek sebenarnya kita bekerja dengan fungsi dan
prosedur untuk menceptakan method.
12
MATERI TEORI & LAB PBO
Sub / Prosedur
Subrutin adalah blok pernyataan untuk mengerjakan suatu tugas yang
didefinisikan dengan baik. Blok pernyataan di antara pernyataan Sub....End
Sub. Subrutin dapat dipanggil melalui namanya.
[Public|Private] Sub namaprosedur (daftar parameter)
....
....
End Sub
Sub / Prosedur tanpa parameter
Contoh sub / prosedur tanpa parameter untuk hitung luas lingkaran.
'Method dengan sub tanpa parameter
Public Sub HitungLuas()
Dim Tinggi, Alas, Luas As Long
Tinggi = 10
Alas = 10
Luas = 0.5 * Alas * Tinggi
Msgbox (“Luas : “,Luas)
End Function
Sub / Prosedur dengan parameter Contoh sub / prosedur tanpa parameter untuk hitung luas lingkaran.
'Method dengan sub dengan parameter
Public Sub HitungLuas(ByVal Tinggi As Long, ByVal Alas As
Long)
Dim Luas As Long
Luas = 0.5 * Alas * Tinggi
Msgbox (“Luas : “,Luas)
End Function
Konstruktor dan Destruktor
Constructor digunakan untuk menciptakan suatu objek, dan untuk
menghancurkan suatu objek disebut destructor. Untuk materi Constructor dan
Destructor ini akan dibahas secara mendalam pada pertemuan ke 5.
Catatan:(akan dibahas khusus pada pertemuan ke 5)
Event Event adalah kejadian yang terjadi terhadap sebuah objek. Contoh event dalam
program yang sering kita temukan adalah mengclick objek Button event yang
diberikan pada objek button adalah click. Dalam objek textbox misalnya kita
memberikan event keypress, dan masih banyak contoh event dalam program
sesuai dengan objeknya. Contoh:
Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdKeluar.Click
Me.Close()
End Sub
13
MATERI TEORI & LAB PBO
Pewarisan (Inheritance)
Enkapuslasi adalah satu mekanisme untuk menyembunyikan atau memproteksi
suatu proses dari kemungkinan interfensi atau penyalahgunaan dari luar sistem
dan sekaligus menyederhanakan sistem itu sendiri, akses ke internal sistem
diatur sedemikian rupa melalui seperangkat interface.
Contoh
Seperti mobil sistem transmisi didalam mobil, sistem transmisi ini
memyembunyikan dari anda bagaimana cara ia bekerja. Anda sebagai
pengguna hanya cukup memindahkan tongkat transimis untuk mendapat
percepatan yang anda inginkan.
Tongkat transmisi inilah yang satu-satunya yang menjadi interface dalam
mengatur transmisi dalam mobil tersebut. Kita tidak bisa menggunakan
pedal rem untuk mengakses sistem transmisi tersebut, konsep yang sama
dapat diterapkan dalam pemrograman.
Pembungkusan (Encapsulation) Kita sebenarnya terbiasa melihat objek tersusun secara hierarki berdasarkan
calss-nya masing-masing. Dari sini muncul konsep tentang pewarisan yang
merupakan suatu proses dimana suatu class diturunkan dari class lainnya
sehingga ia mendapatkan ciri atau sifat dari class tersebut.
Contoh
Dari hierarki diatas dapat dilihat bahwa semakin kebawah, class akan bersifat
semakin spesifik dan semakin ke atas class akan bersifat semakin umum
(general).
14
MATERI TEORI & LAB PBO
Gambar diatas menunjukkan sifat dan hubungan atar class dan objek secara
lebih konkrit.
Class manusia merupakan class tertinggi, dimana semua state dan behaviour
dari class tersebut juga dimiliki oleh class wanita dan class peria yang
merupakan turunannya.
Class wanita dan peria sendiri memiliki sekumpulan state dan behaviour yang
spesifik hanya dimiliki oleh class mereka masing-masing.
Dari gambar juga terlihat perbedaan atara class dan objek, dimana class
digunakan untuk menggambarkan suatu model atau spesifikasi dari sutau entitas,
sedangkan objek merupakan kenyataan, realitas atau perwujudan dari class itu
sendiri.
Banyak Bentuk (Polymorphism) Polymorphism berasal dari bahasa yunani yang berarti banyak bentuk. Dalam
OOP konsep ini memungkinkan digunakannya suatu interface yang sama untuk
memerintahkan suatu objek agar melaksanakan suatu aksi atau tindakan yang
mungkin secara prinsip sama tetapi secara proses berbeda.
Contoh yang konkrit kembali ke masalah mobil, mobil yang ada dipasaran
terdiri atas beberapa tipe dan merek, namun semunya memiliki interface kemudi
yang sama, seperti stir, pedal gas dan rem.
15
MATERI TEORI & LAB PBO
Harus diperhatikan bahwa interface yang sama tidak berarti cara kerjanya juga
sama. Contoh bila anda menekan pedal gas maka mobil akan melaju cepat tetapi
bagaimana proses ini terjadi dapat berbeda-beda untuk setiap jenis mobil.
Dengan menggunakan interface yang sama anda akan mendapatkan hasil yang
sama, tetapi bagaimana proses yang terjadi dari aksi menjadi hasil mungkin saja
berbeda.
1.6. Definisi OOP Ada dua metode dalam mendesain dan membuat konstruksi perangkat lunak
yaitu pemrograman terstruktur dan pemrograman berorientasi objek.
Pemrograman berorientasi objek (Inggris: object-oriented programming
disingkat OOP) merupakan paradigma pemrograman yang berorientasikan
kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam
kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman
terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim
pesan ke objek lainnya
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih,
kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak
skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih
mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan
pendekatan OOP lebih mudah dikembangkan dan dirawat.
Salah satu keunggulan OOP dibanding dengan terstruktur adalah OOP
memungkinkan untuk mebuat modul yang tidak perlu berubah ketika suatu tipe
objek yang baru ditambahkan. Pengembang dapat membuat suatu objek baru
yang mewarisi beberapa fitur dari objek yang sudah ada. Hal ini membuat
program yang berorientasi objek mudahdimodifikasi.
Suatu bahasa pemrograman dikatakan mendukung secara penuh OOP jika
memiliki semua fitur berikut:
Class — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk
suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri
atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai
macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas
dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal
sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait
dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah
class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode
tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur
dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan
diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan
pemetaan dari masalah ke sebuah program ataupun sebaliknya.
Objek - membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah
program komputer; objek merupakan dasar dari modularitas dan struktur dalam
sebuah program komputer berorientasi objek.
16
MATERI TEORI & LAB PBO
Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang
diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek
dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat
melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi
dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan
ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan
beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan
subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang
berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu
di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan
"gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa
menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari.
Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan
kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel
tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi
program berjalan, dan teks program yang sama dapat memanggil beberapa
metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal
ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui
penggunaan fungsi kelas-pertama.
Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti
keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode
dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek
mengakses interface yang menyebutkan bagaimana objek lainnya dapat
berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung
kepada representasi dalam objek tersebut.
Inheritas- Mengatur polimorfisme dan enskapsulasi dengan mengijinkan objek
didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada -
objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru
mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu
memiliki inheritas.)
Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah
kita tidak melihat bagaimana cara menyelesaikan suatu masalah
tersebut(terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan
masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang
memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal
manager tersebut ingin memperoleh data dari bag administrasi maka manager
tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag
administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak
harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa
mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk
menyelesaikan suatu masalah dengan kolaborasi antar objek -objek yang ada
karena setiap objek memiliki job descriptionnya sendiri.
17
MATERI TEORI & LAB PBO
1.7. Perbedaan Dengan Metodologi Non Objek Pengembangan berorientasi objek berlawanan dengan metodologi berorientasi
fungsional. Dalam metodologi fungsional perhatian utama pada pembuatan
spesifikasi dan dekomposisi sistem secara fungsional.
Pendekatan berorientasi objek menitik beratkan pada saat melakukan identifikasi
objek dari domain aplikasi, kemudian membuat prosedur yang sesuai
dengannya.
Perbedaan spesifik dengan metodologi objek dan non objek adalah:
Penggunaan Alat
Non objek menggunakan beberapa alat bantu untuk menggambakan
model seperti flow chart diagram, entiti relationship diagram, dll. Pada
metodologi berorientasi objek meggunakan satu jenis model dari tahap
analisis sampai implementasi yaitu objek diagram.
Data dan Proses Pada non objek data dan proses dianggap sebagai dua komponen yang
berlainan, sedangkan pada metodologi objek data dan proses
merupakan satu kesatuan yaitu bagian dari objek.
Bahasa Pemrograman
Metodologi non objek digunakan untuk melengkapi pemrograman
terstruktur pada bahasa generasi ketiga, sedangkan metodologi
berorientasi objek dipergunakan untuk pemrograman berorientasi objek
dan bahasa generasi keempat.
Pemrograman terstruktur memandang sebuah program sebagai suatu prosedur
besar yang selanjutnya dapat dibagi-bagi menjadi prosedur-prosedur yang lebih
kecil dan saling berinteraksi satu sama lain. Contoh bahasa pemrograman
terstruktur (COBOL, FORTRAN, BASIC, PASCAL, C).
Pemrograman berorientasi objek, konsep yang membagi program mejadi objek-
objek yang saling berinterakasi satu sama lain. Objek adalah benda, baik benda
yang berwujud nyata maupun yang tidak nyata (konsep). Bahasa yang
menduklung pemrograman berorientasi objek (JAVA, VB.NET, PHP, Visual C,
Visual C++, C#, DELPHI).
Keuntungan berorientasi objek (Alami / Natural, Dapat diandalkan, Dapat
digunakan kembali, Mudah untuk di maintenance, dapat diperluas, dan efisien
waktu).
1.8. Keuntungan OOP 1. Maintainability (kemampuan untuk mudah dikelola). Aplikasi perangkat
lunak modern cendrung membesar sehingga akan sulit untuk mengolahnya.
2. Extensibility (kemampuan untuk dapat diperluas).
3. Reusability (kemampuan untuk digunakan kembali).
18
MATERI TEORI & LAB PBO
1.9. Pemodelan Berorientasi Objek
1.9.1. Pemodelan Sebagai Teknik Desain Teknik pemodelan objek menggunakan tiga macam model untuk
menggambarkan sisem yaitu: model objek, model dinamik, dan model
fungsional.
Model objek menggambarkan objek dalam sistem dan relasinya, model dinamik
menggambarkan interaksi antar objek dalam sistem, model fungsional
menggambarkan transformasi data dalam sistem.
1. Penggunaan Pemodelan
Pemodelan memerlukan abstraksi, dengan tujuan membatasi aspek yang
penting untuk beberapa kebutuhan dan mengabaikan aspek tidak penting.
Desain membuat banyak macam model untuk berbagai kebutuhan sebelum
membangun sesuatu. Contoh: Model pesawat terbang dibuat sebelum
membuat pesawat terbang, model mobil dibuat sebelum membuat
mobil, dan model bangunan dibuat sebelum membuat bangunannya, dll.
2. Teknik Pemodelan
Model mempunyai dua dimensi untuk melihat suatu sistem yang ada dan
tahapan pengembangan sistem yaitu desain dan implementasi setiap model
menggambarkan suatu aspek dari sistem, tetapi mengandung hubungan
dengan model lain.
1.9.2. Model Berorientasi Objek Sebuah model objek menangkap struktur status dari sistem dengan
menggambarkan objek dalam sistem, hubungan antara objek, serta atribut dan
operasi yang merupakan karakteristik setiap class dan objek.
Model berorientasi objek lebih mendekati keadaan nyata dan dilengkapi dengan
penyajian grafik dari sistem yang bermanfaat untuk komunikasi dengan
pengguna dan pembuat dokumentasi struktur dari sistem.
1. Object dan Class
Objek adalah kesatuan entitas (benda), baik yang berwujud nyata ataupun
hanya suatu sistem atau konsep yang memiliki sifat karakteristik dan fungsi,
contoh:
Objek mobel Objek Kue
19
MATERI TEORI & LAB PBO
Class adalah pemodelan dari objek yang berisi informasi (aturan) tentang
sifat karakteristik (data) dan tingkah laku (method yang dimiliki oleh objek
tersebut).
Hubungan antara class dan objek dapat diilustrasikan sebagai resep kue
dengan kuenya, dimana resep kue adalah class dan kue adalah objeknya.
Resep Kue
2. Diagram Objek Diagram objek melengkapi notasi grafik untuk pemodelan objek, class dan
relasinya dengan yang lain.
A. Class dan Objek
Sebuah objek adalah sebuah entitas yang mencakup data dan metoda,
metoda yang biasa disebut sevice dapat berupa fungsi atau prosedur.
Class merupakan satu atau lebih objek dengan persamaan atribut dan
metoda. Class dan objek adalah class dengan satu atau lebih objek
didalamnya. Gambar berikut menggambarkan gambar notasi untuk class
dan class & objek.
Class Class dengan Objek
20
MATERI TEORI & LAB PBO
B. Struktur Objek dan Hirarki Class
Setelah menentukan class maka langkah berikutnya adalah menyusunnya
sehingga merupakan suatu hierarki yang berguna dalam pewarisan.
Struktur class dibagi 2 macam yaitu whole-part structure dan gen-spec
structure.
Whole-part structure memperlihatkan hirarki dari suatu class sebagai
komponen dari class lain yang juga disebut sub objek. Contoh: Class
mobil adalah whole dan komponennya mesin, rangka dll merupakan
Part1, Part2 … Part n.
Gen-spec structure memperlihatkan class sebagai spesialisasi dari class
diatasnya. Class yang mempunyai sipfat umum disebut generalization,
super class atau top class, sedangkan class yang mempunyai sifat khusus
disebut specialization.
Contoh: Class mobil adalah generalization sedangkan sedan, truk,
minibus adalah specialization.
Notasi untuk whole-part structure
Notasi untuk gen-spec structure
21
MATERI TEORI & LAB PBO
C. Atribut
Atribut menggambarkan data yang dapat memberikan informasi dengan
class atau objek dimana atribut tersebut berada.
D. Method Metoda (method) disebut juga service atau operator adalah prosedur atau
fungsi seperti yang terdapat pada bahasa pascal, tetapi cara kerjanya agak
berlainan.
Method adalah sub program yang tergabung dalam objek bersama-sama
dengan atribut. Method digunakan untuk pengaksesan terhadap data yang
terdapat dalam objek tersebut.
Notasi Contoh
E. Message
Message (pesan) merupakan cara untuk berhubungan antara satu objek
dengan objek lain.
Catatan:
Mengenai tipe data dalam VB.Net akan dibahas pada pertemuan ke2.
Materi Teoritis Minggu Ke-1 Berakhir
-~oOo~-
22
MATERI TEORI & LAB PBO
Jam ke-2
1.2. Praktikum Class, Field, Method dan Objek Pada praktikum kita kali ini akam menerapkan konsep OOP dengan VB.Net.
Praktikum 1A
Pada praktikum 1A ini akan membuat program mencari luas segitiga. Analisalah
class diragram berikut.
Tinggi
Alas Diagram Class
Methods Luas = 0.5 * Alas * Tinggi
Rancangan Form Rancanglah sebuah form seperti tampilan berikut:
Gambar 1.1.Form hitung luas segitiga
23
MATERI TEORI & LAB PBO
Setting Property
Nama Objek Property Setting Property Form1 Name
Text frmHitungLuasSegitiga
Hitung Luas Segtiga
GroupBox1 Name
Text GroupBox1
Kosongkan
Label1 Name
Text Label1
Alas :
TextBox1 Name
Text txtAlas
Kosongkan
Label2 Name
Text Label2
Tinggi :
TextBox2 Name
Text txtTinggi
Kosongkan
Label3 Name
Text Label3
Luas :
Label4 Name
Text
AutoSize
BorderStyle
lblLuas
Kosongkan
False
FixedSingle
Button1 Name
Text cmdHitung
&Hitung
Button2 Name
Text cmdKeluar
&Keluar
Program
Buatlah class dengan nama : HitungLuasSegitiga.
Public Class HitungLuasSegitiga
'Deklarasi field dgn jangkauan nilai public
Public Alas As Single
Public Tinggi As Single
'Method
'Menggunakan fungsi tanpa parameter
Public Function LuasSegitiga() As Single
Return 0.5 * Alas * Tinggi
End Function
End Class
Double Clik cmdHitung, buat program berikut.
Private Sub cmdHitung_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdHitung.Click
'Ciptakan objek dari class HitungLuasSegitiga
Dim objSegitiga As New HitungLuasSegitiga
End Sub
With objSegitiga
.Alas = txtAlas.Text
.Tinggi = txtTinggi.Text
lblLuas.Text = .LuasSegitiga()
End With
24
MATERI TEORI & LAB PBO
Double Click cmdKeluar, buat program berikut.
Private Sub cmdKeluar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles cmdKeluar.Click
Me.Close()
End Sub
Praktikum 1B
Pada praktikum 1B ini akan membuat program mencari luas segitiga. Latihan ini
sama dengan latihan 1A hanya pada method (fungsi) menggunakan prameter
untuk pengiriman nilai.
Pogram Buat class dengan nama: HitungLuasSegitiga
Public Class HitungLuasSegitiga
'Deklarasi field dgn jangkauan nilai public
Public Alas As Single
Public Tinggi As Single
'Method
'Menggunakan fungsi tanpa parameter
Public Function Hitung(ByVal mAlas, ByVal mTinggi) As Single
Return 0.5 * mAlas * mTinggi
End Function
End Class
Double click cmdHitung, buat program berikut.
Private Sub cmdHitung_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdHitung.Click
'Ciptakan objek dari class HitungLuasSegitiga
Dim objSegitiga As New HitungLuasSegitiga
With objSegitiga
.Alas = txtAlas.Text
.Tinggi = txtTinggi.Text
lblLuas.Text = .Hitung(.Alas, .Tinggi)
End With
End Sub
Double clikck cmdKeluar, buat program beriut.
Private Sub cmdKeluar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdKeluar.Click
Me.Close()
End Sub
Praktikum 1C
Pada praktikum 1C ini akan membuat program mencari luas segitiga. Analisalah
class diragram berikut.
r
Objek Lingkarang
25
MATERI TEORI & LAB PBO
Methods
Luas = Pi*r*r
Keliling = 2*Pi*r
Form Rancanglah sebuah form seperti beriut:
Gambar 1.2. Form Lingkaran
Setting Property
Nama Objek Property Setting Property Form1 Name
Text frmLingkaran
Lingkaran
GroupBox1 Name
Text GroupBox1
Kosongkan
Label1 Name
Text Label1
Jarijari :
TextBox1 Name
Text txtJariJari
Kosongkan
Label2 Name
Text Label2
Luas :
Label3 Name
Text Label3
Keliling :
Label4 Name
Text
AutoSize
BorderStyle
lblLuas
False
FixedSingle Label5 Name
Text
AutoSize
BorderStyle
lblKeliling
False
FixedSingle
Button1 Name
Text cmdHitung
&Hitung
Button2 Name
Text cmdKeluar
&Keluar
26
MATERI TEORI & LAB PBO
Program
<latihan mandiri>
Praktikum 1D Pada praktikum 1D ini akan membuat program mencari luas dan keliling
lingkaran. Latihan ini sama dengan latihan 1C hanya pada method (fungsi)
menggunakan prameter untuk pengiriman nilai.
Program
<latihan mandiri>
Praktikum 1E Sebuah perusahaan PT XYZ dalam sistem penggajiannya adalah sebagai
berikut: Karyawan mendapatkan GajiPokok. Disamping gaji pokok karyawan
juga mendapatkan Bonus dan Tunjangan. Potongan yang dikenakan pada
karyawan adalah potongan PPH. Keteangan: Tunjangan = 10% dari gaji pokok
Bonus = 1 kali dari gaji pokok
PPH = 2% dari gaji pokok
Total Gaji = Gaji pokok + Tunjangan + Bonus
Gaji Bersih = Total gaji – PPH
Dari deskripsi diatas rancanglah class diagram untuk PT XYZ.
Jawab: Rancangan class diagaram untuk PT XYZ adalah:
Gambar 1.4. Class diagaram PT XYZ
28
MATERI TEORI & LAB PBO
Form
Rancanglah form seperti tampilan berikut:
Gambar 1.5. Form karyawan.
Setting Property
Nama Objek Property Setting Property Form1 Name
Text frmHitungLuasSegitiga
Hitung Luas Segtiga
GroupBox1 Name
Text GroupBox1
Kosongkan
Label1 Name
Text Label1
Nama :
TextBox1 Name
Text txtNama
Kosongkan
Label2 Name
Text Label2
Gaji Pokok :
TextBox2 Name
Text txtGajiPokok
Kosongkan
Label3 Name
Text Label3
Tunjangan :
Label4 Name
Text
AutoSize
BorderStyle
lblTunjangan
Kosongkan
False
FixedSingle
Label5 Name
Text Label5
Bonus
Label6 Name
Text
AutoSize
BorderStyle
lblBonus
Kosongkan
False
FixedSingle
29
MATERI TEORI & LAB PBO
Label7 Name
Text Label7
PPH
Label8 Name
Text
AutoSize
BorderStyle
lblPPH
Kosongkan
False
FixedSingle
Label9 Name
Text Label8
Total Gaji :
Label10 Name
Text
AutoSize
BorderStyle
lbltotalGaji
Kosongkan
False
FixedSingle
Label11 Name
Text Label11
Gaji Bersih :
Label12 Name
Text
AutoSize
BorderStyle
lblGajiBersih
Kosongkan
False
FixedSingle
Button1 Name
Text cmdHitung
&Hitung
Button2 Name
Text cmdKeluar
&Keluar
Program Buatah class dengan nama: Karyawan
Public Class Karyawan Public
Nama As String Public
GajiPokok As Single
Public Function Tunjangan() As Single
Return 10 / 100 * GajiPokok
End Function
Public Function Bonus() As Single
Return 1 * GajiPokok
End Function
Public Function PPH() As Single
Return 2 / 100 * GajiPokok
End Function
Public Function TotalGaji() As Single
Return GajiPokok + Tunjangan() + Bonus()
End Function
Public Function GajiBersih() As Single
Return TotalGaji() - PPH()
End Function
End Class
30
MATERI TEORI & LAB PBO
Double click cmdHitung, buat program berikut.
Private Sub cmdHitung_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdHitung.Click
Dim objKaryawan As New Karyawan
With objKaryawan
.Nama = txtNama.Text
.GajiPokok = Val(txtGajiPokok.Text)
End Sub
lblTunjangan.Text = Format(.Tunjangan, "Rp 0,00")
lblBonus.Text = Format(.Bonus, "Rp 0,00")
lblPPH.Text = Format(.PPH, "Rp 0,00")
lblTotalGaji.Text = Format(.TotalGaji, "Rp 0,00")
lblGajiBersih.Text = Format(.GajiBersih, "Rp 0,00")
End With
Double click cmdKeluar, buat program berikut.
Private Sub cmdkeluar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdkeluar.Click
Me.Close()
End Sub
Praktikum 1F Pada latihan 1F ini kita memodeifikasi latihan 1E, fungsi-fungsi yang ada pada
latihan 1E tidak menggunakan parameter. Pada latihan 1F ini pada fungsinya
kita menggunakan paramter.
Program Buat class dengan nama:
Public Class Karyawan Public
Nama As String Public
GajiPokok As Single
Public Function Tunjangan(ByVal mGajiPokok As Single) As Single
Return 10 / 100 * mGajiPokok
End Function
Public Function Bonus(ByVal mGajiPokok As Single) As Single
Return 1 * mGajiPokok
End Function
Public Function PPH(ByVal mGajiPokok As Single) As Single
Return 2 / 100 * mGajiPokok
End Function
Public Function TotalGaji(ByVal mGajiPokok As Single, ByVal
mTunjangan As Single, ByVal mBonus As Single) As Single
Return mGajiPokok + mTunjangan + mBonus
End Function
Public Function GajiBersih(ByVal mTotalGaji As Single, ByVal
mPPH As Single) As Single
Return mTotalGaji - mPPH
End Function
End Class
31
MATERI TEORI & LAB PBO
Double click pada cmdHitung, buat program berikut.
Private Sub cmdHitung_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdHitung.Click
Dim objKaryawan As New Karyawan
Dim iPPH As Single
Dim iTotalGaji As Single
With objKaryawan
.Nama = txtNama.Text
.GajiPokok = Val(txtGajiPokok.Text)
lblTunjangan.Text = Format(.Tunjangan(.GajiPokok),
"Rp 0,00")
lblBonus.Text = Format(.Bonus(.GajiPokok), "Rp
0,00")
lblPPH.Text = Format(.PPH(.GajiPokok), "Rp 0,00")
lblTotalGaji.Text = Format(.TotalGaji(.GajiPokok,
.Tunjangan(.GajiPokok), .Bonus(.GajiPokok)),
"Rp 0,00")
End Sub
iPPH = lblPPH.Text
iTotalGaji = lblTotalGaji.Text
lblGajiBersih.Text = Format(.GajiBersih(iTotalGaji,
iPPH), "Rp 0,00")
End With
Double click cmdKeluar, buat program berikut.
Private Sub cmdkeluar_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles cmdkeluar.Click
Me.Close()
End Sub
Latihan 1G
CV Maju memiliki sistem penjualan barang sebagai berikut: KodeBarang,
NamBarang, HargaBarang, JumlahBarang, Doskon, TotalPenjualan,
TotalDoskon, YangHarusDibayar. Rancanglah class diagram dan buat
programnya.
Keterangan:
Diskon dalam bentuk bilangan bulat contoh diskon = 10 artinya 10%
TotalPenjualan = HargaBarang * JumlahBarang
TotalDiskon = TotalPenjualan – ((Diskon/100) * TotalPenjualan)
YangHarusDibayar = TotalPenjualan – TotalDiskon
Materi Praktikum Minggu Ke-1 Berakhir
-~oOo~-
Dikutip dari : Object Oriented Programming (OOP) dengan VB.Net 2008 oleh I Gusti Ngurah Suryantara, S.Kom, M.Kom