2
MODUL I
Gambaran Umum Penggunaan PBO
I.1 Maksud dan Tujuan
I.1.1 Maksud
Modul ini membahas tentang penggunaan pemrograman berorientasi
obyek pada Python. Modul ini belum membahas pembuatan obyek, tetapi
baru pada tahap penggunaan class yang sudah ada untuk memberi
gambaran tentang bagaimana memanfaatkan class yang sudah ada.
I.1.2 Tujuan
1. Mahasiswa memahami cara menggunakan class yang sudah ada pada
Python.
Dokumentasi
Setiap built-in class pada Python biasanya menyediakan dokumentasi. Jika
Python terinstall lengkap, bisa digunakan executable script pydoc <nama- class>
untuk menampilkan dokumentasi, atau bisa juga dengan menggunakan method
doc__.
I.3 Praktik
Untuk praktik berikut ini, kita akan menggunakan bult-in class str yang bisa
digunakan untuk operasi yang berkaitan dengan string (huruf alfanumerik) dan os
yang digunakan untuk berbagai operasi yang berkaitan dengan sistem
3
operasi (seperti melihat isi direktori, menghapus file, dan lain-lain). Modul str
merupakan bagian dari modul builtin sedangkan os tidak.
>>> import os
4. doc__ adalah method khusus yang bisa dipanggil pada level class dan pada
level method. Coba panggil method tersebut dan perhatikan hasilnya! Jelaskan
hasil yang anda lihat!
5. Ketikkan perintah berikut ini pada prompt Python dan perhatikan kemudian
jelaskan hasilnya:
>>> myOS = os
>>> myOS.name
>>> myOS
>>> myOS.curdir
>>> myOS.sep
>>> myOS.defpath
>>> myOS.getcwd
>>> myOS.getcwd()
>>> myOS.mkdir('direktoriku')
>>> myOS.listdir('.')
>>> myOS.rmdir('direktoriku')
>>> myOS.listdir('.')
4
MODUL II
Class dan Instance
II.1 Maksud dan Tujuan
II.1.1 Maksud
Modul ini membahas tentang class yang merupakan cetak biru suatu obyek
serta bagaimana membuat suatu instance yaitu obyek spesifik yang
mempunyai karakteristik seperti yang didefinisikan oleh class.
II.1.2 Tujuan
1. Mahasiswa memahami dan bisa mempraktikkan pembuatan class
dengan menggunakan Python.
2. Mahasiswa bisa membedakan class dengan instance.
3. Mahasiswa bisa membuat suatu instance berdasarkan definisi obyek
yang telah dibuat oleh class.
“manusia” “Zaky”
Mempunyai mata Mempunyai mata (dan matanya berwarna
hitam)
Berlari Bisa berlari (cepat)
Mempunyai hidung Mempunyai hidung (mancung)
... ...
5
Definisi Atribut
Atribut merupakan karakteristik yang melekat pada suatu obyek. Dalam
kehidupan sehari-hari, bisa dicontohkan suatu obyek manusia mempunyai atribut
telinga, kepala, perut, nama, status, dan lain-lain. Atribut bisa didefinisikan
seperti halnya pemrogram mendefinisikan suatu variabel (pada dasarnya, atribut
pada suatu class memang merupakan variabel). Berikut ini adalah contoh definisi
atribut:
class mahasiswa:
jurusan = 'Komputerisasi Akuntansi'
Definisi Instance
Setiap instance yang didefinisikan mempunyai identitas. Untuk mengetahui
identitas dari instance, kita bisa menggunakan fungsi id (namaInstance). Untuk
membuat suatu instance, pemrogram melakukan penugasan ke suatu pengenal
(identifier), jika diperlukan / diwajibkan, penugasan ini dapat disertai dengan
parameter tertentu. Contoh:
Untuk mengetahui apakah suatu identifier merupakan instance atau bukan, bisa
digunakan perintah isinstance(identifier, class).
II.3 Praktik
1. Ketikkan dan jalankan script berikut ini:
#!/usr/bin/python
class mahasiswa:
kampus = 'STMIK AKAKOM'
jurusan = 'Komputerisasi Akuntansi'
bambang = mahasiswa()
print bambang.kampus
print bambang.jurusan
class Product:
__vendor_message = "Ini adalah rahasia"
name = ""
price = ""
6
size = ""
unit = ""
def get_vendor_message(self):
print self.__vendor_message
p = Product("Ultora Milek")
p.set_price(5500)
print "%s dengan ukuran %s %s harganya Rp. %d" % (p.name, p.size, p.unit,
p.price)
# print p.__vendor_message
p.get_vendor_message()
p1 = Product("Indomilek")
p1.set_price(5000)
print "%s dengan ukuran %s %s harganya Rp. %d" % (p.name, p.size, p.unit,
p.price)
print p == p
print p1 == p1
print p == p1
3. Buatlah class baru bernama karyawan dan definisikan berbagai atribut dari
seorang karyawan. Buat juga instance dari karyawan serta buat perintah untuk
mengetahui apakah instance tersebut memang benar-benar instance dari
karyawan!
7
Tulislah listing program dan Lakukan kompilasi pada program diatas dan jalankan.
Jika tampilan di layar tampak seperti dibawah ini, maka program anda sudah
benar. Jika tidak sama, benahi kembali program anda dan lakukan hal yang sama
seperti diatas.
8
MODUL III
Method
III.1 Maksud dan Tujuan
III.1.1 Maksud
Modul ini membahas tentang method, yaitu suatu bagian dari class yang
digunakan untuk mendefinisikan berbagai aksi yang bisa dilakukan oleh
obyek.
III.1.2 Tujuan
1. Mahasiswa memahami pengertian method.
2. Mahasiswa memahami cara mendefinisikan method.
3. Mahasiswa memahami dan dapat membuat script Python yang
menyertakan suatu method.
class namaclass:
atribut = nilai
atribut = nilai
Contoh:
class mahasiswa:
scoobydoo = mahasiswa()
print scoobydoo.mataKuliah
print scoobydoo.status
9
.
spongebob = mahasiswa()
spongebob.belajar('Sistem Informasi Akuntansi','Paham')
print spongebob.mataKuliah
print spongebob.status
Catatan:
Untuk keperluan kemudahan pemahaman, struktur di atas bukan
merupakan struktur yang lengkap. Perhatikan struktur dari class tersebut
agar memperoleh gambaran bagaimana mendefinisikan suatu class.
Jika diperhatikan pada script di atas, terdapat suatu kata kunci (keyword) self. self
digunakan untuk memberitahu Python bahwa method tersebut merupakan
anggota dari class. Jika pemrogram ingin mengakses atribut maupun suatu
method dari method, maka pengaksesan tersebut harus disertai dengan self pada
bagian depan, dipisahkan dengan titik kemudian baru nama atribut dan method
yang akan diakses. Perhatikan contoh pada definisi method belajar di atas.
Paramater Method
Suatu method bisa mempunyai parameter yang bisa diakses oleh anggota
method dan setiap parameter tersebut bisa juga diberi nilai default. Perhatikan
contoh pada definisi method belajar yang menyertakan dua parameter dengan
nilai default berupa none
III.3 Praktik
1. Ketikkan dan jalankan script berikut ini:
#!/usr/bin/python
class kalkulator:
def tambah(angka1, angka2):
hasil = angka1 + angka2
return hasil
calc = kalkulator
print calc.tambah(2,6)
Adakah error yang terjadi? Mengapa? Jika memang terjadi error, carilah
10
bagian yang error kemudian betulkan bagian tersebut sehingga script tersebut
dapat berjalan dengan baik.
2. Ketikkan dan jalankan suatu script yang berisi class mahasiswa di atas.
Mengapa definisi instance scoobydoo dan spongebob mempunyai hasil yang
berlainan? Jelaskan!
11
MODUL IV
Constructor
IV.1 Maksud dan Tujuan
IV.1.1 Maksud
Modul ini membahas tentang method yang akan dikerjakan langsung oleh
Python pada saat suatu instance diciptakan. Method tersebut adalah
constructor
IV.1.2 Tujuan
1. Mahasiswa memahami pengertian constructor
2. Mahasiswa memahami kapan suatu constructor digunakan.
3. Mahasiswa memahami dan mampu membuat script Python yang
menyertakan constructor.
Definisi Konstruktor
Definisi konstruktor pada Python dilakukan dengan menempatkan
berbagai inisialisasi tersebut ke dalam suatu method khusus yang bernama
init . Secara default, sama seperti method lainnya, init
menyertakan parameter self. Perhatikan contoh berikut:
class mahasiswa:
kampus = ''
print mahasiswa.kampus
Latihan
class Car:
_wheel = 4
_type = ""
_merk = ""
_owner = ""
color = ""
def get_owner(self):
return self._owner
12
def __init__(self, owner="unknown", color="green", merk="unknown",
self._owner = owner
self.color = color
self._merk = merk
self._type = types
self._wheeldrive = wheeldrive
def start_engine(self):
car = Car(wheeldrive=8)
car.start_engine()
car2.start_engine()
owner = car.get_owner()
owner = car2.get_owner()
IV.3 Praktik
1. Ketik dan jalankan script yang berisi class mahasiswa di atas, jelaskan script
tersebut!
2. Tambahkan atribut jurusan, angkatan pada class tersebut kemudian isikan
jurusan dan angkatan sesuai dengan jurusan dan angkatan anda pada
konstruktor. Buktikan dengan menggunakan print bahwa atribut tersebut telah
masuk ke dalam konstruktor.
3. Buatlah suatu class bernama keluarga dengan ketentuan sebagai berikut:
13
ibu, alamat, dan pekerjaan ayah.
➢ buat konstruktor untuk mendefinisikan jumlah anak = 0
➢ buat 3 method, masing-masing untuk mendefinisikan nama ayah, nama
ibut, dan pekerjaan ayah
14
MODUL V
Dokumentasi Class dan Method
IV.1 Maksud dan Tujuan
IV.1.1 Maksud
Modul ini membahas tentang cara membuat dokumentasi secara
langsung pada script.
IV.1.2 Tujuan
1. Mahasiswa memahami kemudahan membuat dokumentasi pada
Python dengan menuliskan dokumentasi langsung pada script.
2. Mahasiswa mampu mendefinisikan dokumentasi pada level class dan
method untuk mempermudah pekerjaan pemrograman.
Mendefinisikan Dokumentasi
Dokumentasi bisa diletakkan pada level class maupun pada level method.
Caranya dengan meletakkan string komentar (diapit tanda petik tunggal atau
ganda untuk satu baris dan tanda petik tiga untuk lebih dari satu baris). String
komentar tersebut diletakkan tepat di bawah kata kunci class atau def. Berikut ini
adalah contohnya:
class mahasiswa:
''' class ini digunakan untuk mendefinisikan
obyek mahasiswa.
'''
def belajar(self,mk='none',st='none'):
'''method ini digunakan untuk
menyimpan status belajar mahasiswa'''
Mengakses Dokumentasi
Untuk mengakses dokumentasi, pemrogram bisa mengakses method
doc pada class atau method seperti yang dikehendaki. Berikut ini adalah
contohnya:
15
Membuat File Dokumentasi
Jika pemrogram telah mendefinisikan string dokumentasi, maka Python
menyertakan script pydoc yang bisa digunakan untuk membuat dokumentasi
dalam format HTML. Script tersebut mirip dengan javadoc yang ada pada bahasa
Java. Berikut ini adalah cara membuat dokumentasi (dengan asumsi nama file
script yang akan dibuat dokumentasinya adalah modul4.py):
Hasil modul4.html tersebut bisa dilihat pada browser. Berikut ini adalah tampilan
pada browser:
IV.3 Praktik
1. Buat string dokumentasi untuk masing-masing method dan class dari semua
file script Python yang telah anda buat.
2. Cobalah menggunakan doc__!
3. Buat dokumentasi HTML dari masing-masing file tersebut!
16
MODUL VI
Dasar-dasar Inheritance
VI.1 Maksud dan Tujuan
VI.1.1 Maksud
Inheritance atau pewarisan merupakan konsep untuk membuat suatu class
baru dari template class yang sudah ada. Modul ini membahas pengertian
dasar dari pewarisan serta bagaimana pewarisan dilakukan dengan
menggunakan Python.
VI.1.2 Tujuan
1. Mahasiswa memahami konsep pembuatan class melalui penurunan
class induk.
2. Mahasiswa mempu mengaplikasikan konsep tersebut menggunakan
Python.
Makhluk Hidup -> Mamalia -> Manusia -> Bule -> mr. X
Dari sintaksis tersebut, kita bisa mengetahui bahwa sebenarnya kita bisa
menggunakan lebih dari satu class sebagai dasar dalam pembuatan class baru.
Penggunaan lebih dari satu class dasar disebut dengan multiple inheritance dan
merupakan materi pembahasan praktikum Pemrograman Berorientasi Obyek II.
VI.3 Praktik
1. Ketikkan dan jalankan script berikut ini:
class manusia:
default_asal_negara = "Indonesia"
def setAsalNegara(self, negara):
self.default_asal_negara = negara
class mahasiswa(manusia):
default_umur = 20
17
default_kompetensi = ""
default_nama = ""
def init (self, umur):
self.default_umur = umur
def setNama(self, namaMhs):
self.default_nama = namaMhs
def setKompetensi(self, kompetensi='SIA, PBO, Linux'):
self.default_kompetensi = kompetensi
def tampilkanIdentitas(self):
print self.default_umur
print self.default_nama
print self.default_asal_negara
print self.default_kompetensi
18
Dari data kedua class diatas, desainlah class-class tersebut dengan konsep
inheritance. Cari hubungan antar kedua class tersebut lalu tentukan superclass-
nya dan subclass-nya. Setelah itu implementasikan class-class yang telah anda
desain dan buatlah program sederhana yang memiliki fasilitas entri data vcd film,
entri data cd musik serta melihat daftar vcd film dan cd musik yang telah
dientrikan.
VII.3 Praktik
1. Ketikkan dan jalankan script berikut ini:
class C:
def init (self, value):
self.value = value
varA = C(4)
varB = C(2)
varC = varA - varB
print varC
20
MODUL VIII
Kasus Terpadu
VIII.1 Maksud dan Tujuan
VIII.1.1 Maksud
Modul ini membahas tentang pembuatan suatu aplikasi dengan
menggunakan PBO di Python.
VIII.1.2 Tujuan
1. Mahasiswa memahami secara utuh bagaimana
cara membangun suatu aplikasi dengan
menggunakan teknik PBO.
Catatan:
Dalam kenyataan, seringkali langkah ini akan dianggap sebagai langkah
penyederhanaan karena masalah yang dihadapi akan lebih kompleks,
tetapi anda harus memahami langkah tersebut untuk masalah kecil lebih
dahulu.
Contoh:
Masalah:
Pengelolaan data karyawan
Atribut:
21
manusia -> nama, usia
karyawan->gaji, pekerjaan, keluarga
Method
#!/usr/bin/python
class mahasiswa:
'''Kelas ini digunakan untuk
mendefinisikan mahasiswa'''
kampus = 'STMIK AKAKOM'
jurusan = 'Komputerisasi Akuntansi'
mataKuliah = '--kosong--'
status = '--kosong--'
spongebob = mahasiswa()
spongebob.belajar('Sistem Informasi Akuntansi','Paham')
print spongebob.mataKuliah
print spongebob.status
22
VIII.3 Praktik
5. Implementasikan solusi masalah di atas sesuai dengan hasil analisis.
23
LATIHAN :
1. Kelas
class Karyawan:
'''Dasar kelas untuk semua karyawan'''
jumlah_karyawan = 0
def tampilkan_jumlah(self):
print("Total karyawan:", Karyawan.jumlah_karyawan)
def tampilkan_profil(self):
print("Nama :", self.nama)
print("Gaji :", self.gaji)
print()
class Karyawan:
'''Dasar kelas untuk semua karyawan'''
jumlah_karyawan = 0
def tampilkan_jumlah(self):
print("Total karyawan:", Karyawan.jumlah_karyawan)
def tampilkan_profil(self):
24
print("Nama :", self.nama)
print("Gaji :", self.gaji)
karyawan1.tampilkan_profil()
karyawan2.tampilkan_profil()
print("Total karyawan :", Karyawan.jumlah_karyawan)
class Karyawan:
'''Dasar kelas untuk semua karyawan'''
jumlah_karyawan = 0
def tampilkan_jumlah(self):
print("Total karyawan:", Karyawan.jumlah_karyawan)
def tampilkan_profil(self):
print("Nama :", self.nama)
print("Gaji :", self.gaji)
print("Karyawan.__doc__:", Karyawan.__doc__)
print("Karyawan.__name__:", Karyawan.__name__)
print("Karyawan.__module__:", Karyawan.__module__)
print("Karyawan.__dict__:", Karyawan.__dict__)
print("Karyawan.__bases__:", Karyawan.__bases__)
SOAL :
Proses :
Jika kode pelanggan =’1’ maka status pelanggan =Tetap
Jika Kode Pelanggan=’2’ maka status pelanggan=Tidak Tetap
Selain kode pelanggan 1, 2 maka tampilkan pesan “SALAH KODE”
Output:
Daftar Penjualan
No Nama Pelanggan status Pelanggan nama barang jumlah pesan Total
harga diskon
1 …
…
5
Total Harga Keseluruhan :
26
1 Borobudur 1000000
2 Prambanan 750000
3 Plaosan 500000
Total bayar= lama menginap * tarif permalam
Pajak = 10%*total bayar
Jika total bayar >=1000000 maka mendapatkan diskon 5 %
Jika total bayar <1000000 maka tidak mendapat diskon
Jumlah yang harus dibayar=total bayar+pajak-diskon
Keluaran/output :
LAPORAN PENGINAPAN HOTEL SALSABILA
TAHUN 2011
Nama Kode Nama Tarif Lama Diskon Pajak Total
pelanggan kamar kamar permalam menginap bayar
3. Buat Program untuk menghitung dan mencetak gaji dosen dengan konsep
inheritance, Adapun spesifikasi program sebagai berikut :
27
4. Seorang penjual alat tulis menjual 10 bolpoint, 10 pensil dan 10 penghapus.
1 biji bolpoint harganya Rp. 2000, 1 biji pensil harganya Rp. 1.000 dan 1
penghapus harganya Rp. 500.
Gunakanlah objek untuk menyelesaikan soal dibawah ini!
a. Buatlah method untuk memasukkan (setter) nama, stok, harga satuan,
dan harga (stok x harga satuan) alat tulis tersebut! (40 point)
b. Buatlah method untuk menampilkan (getter) nama, stok, harga satuan,
dan harga (stok x harga satuan) alat tulis tersebut! (40 point)
c. Buatlah method Total Harga (setter getter) untuk menampilkan uang
yang diterima penjual jika semua alat tulis tersebut terjual semuanya!
cetakReguler()
28
proses hitung :
- biaya per sks= 85000
- biaya ujian permatakuliah = 100000
- total uang sks= biaya per sks* jumlah sks
- total biaya ujian = jumlah matakuliah * biaya ujian per
matakuliah.
- Total pembayaran= Biaya angsuran BOP+total uang sks+total
biaya ujian
- jika total pembayaran >=1500000 maka dapat diskon 5 % ,
selain itu diskon=0
- Total yang harus dibayar=total pembayaran - diskon
cetakEksekutif()
29