2013 - 2014 01 pbo pertemuan 01

27
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

Upload: rangga-dov

Post on 17-Feb-2016

44 views

Category:

Documents


3 download

DESCRIPTION

Pemrograman orientasi obejek

TRANSCRIPT

Page 1: 2013 - 2014 01 PBO Pertemuan 01

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

Page 2: 2013 - 2014 01 PBO Pertemuan 01

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

Page 3: 2013 - 2014 01 PBO Pertemuan 01

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

Page 4: 2013 - 2014 01 PBO Pertemuan 01

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

Page 5: 2013 - 2014 01 PBO Pertemuan 01

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

Page 6: 2013 - 2014 01 PBO Pertemuan 01

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

Page 7: 2013 - 2014 01 PBO Pertemuan 01

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

Page 8: 2013 - 2014 01 PBO Pertemuan 01

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

Page 9: 2013 - 2014 01 PBO Pertemuan 01

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

Page 10: 2013 - 2014 01 PBO Pertemuan 01

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

Page 11: 2013 - 2014 01 PBO Pertemuan 01

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

Page 12: 2013 - 2014 01 PBO Pertemuan 01

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

Page 13: 2013 - 2014 01 PBO Pertemuan 01

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

Page 14: 2013 - 2014 01 PBO Pertemuan 01

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

Page 15: 2013 - 2014 01 PBO Pertemuan 01

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

Page 16: 2013 - 2014 01 PBO Pertemuan 01

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

Page 17: 2013 - 2014 01 PBO Pertemuan 01

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

Page 18: 2013 - 2014 01 PBO Pertemuan 01

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

Page 19: 2013 - 2014 01 PBO Pertemuan 01

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

Page 20: 2013 - 2014 01 PBO Pertemuan 01

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

Page 21: 2013 - 2014 01 PBO Pertemuan 01

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

Page 22: 2013 - 2014 01 PBO Pertemuan 01

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

Page 23: 2013 - 2014 01 PBO Pertemuan 01

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

Page 24: 2013 - 2014 01 PBO Pertemuan 01

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

Page 25: 2013 - 2014 01 PBO Pertemuan 01

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

Page 26: 2013 - 2014 01 PBO Pertemuan 01

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

Page 27: 2013 - 2014 01 PBO Pertemuan 01

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