Anda di halaman 1dari 20

Laporan Praktikum Pemprograman Lanjut

“Modul 9 : Object Oriented Progamming 2”

Disusun Oleh
Nama : Fernando Yoga Pratama
(22/492478/SV/20512)

Hari, Tanggal : Kamis, 4 Mei 2023


Kelas : 1K2AA
Dosen Pengampu : Budi Sumanto, S.Si., M.Eng
Asisten Dosen : 1. Bodhi Setiawan
2. Ahmad Jaelani

DIPLOMA IV TEKNOLOGI REKAYASA INSTRUMENTASI & KONTROL


DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
2023
Struktur Laporan Praktikum :
1. Cover
2. Tujuan
3. Dasar Teori
4. Pembahasan (Hasil Program Dan Flowchart)
5. Kesimpulan
6. Daftar Pustaka
TUJUAN

1. Mahasiswa memahami lebih dalam tentang properties method


2. Mahasiswa memahami build in function yang ada didalam python untuk class

DASAR TEORI

Pyhton merupakan bahasa pemrograman yang saat ini paling diminati oleh pengguna.
Hal ini dikarenakan python memiliki beberapa kelebihan diantaranya mudah digunakan,
bahasa yang sederhana, memiliki banyak library, dan open source sehingga tidak perlu
membeli lisensi. Pada python pun terdapat banyak fungsi yang bisa digunakan, salah satunya
adalah else if python. Else if python merupakan salah satu percabangan yang digunakan
dalam python untuk penentuan keputusan atau conditional statement.

Konsep dari else if python terbilang cukup sederhana, yaitu komputer akan
mengeksekusi sesuatu berdasarkan apa yang sebelumnya kita instruksikan dalam komputer.
Premis yang digunakan dalam else if python adalah premis jika-maka. Sebagai contoh, "jika"
nilai seorang siswa lebih atau sama dengan 80, "maka" siswa akan mendapat predikat A.
Dalam else if python, jika kondisi yang diinstruksikan telah terpenuhi maka ia akan
menampilkan output A dan jika kondisi tidak terpenuhi maka ia akan menampilkan output B.

Dalam method terdapat beberapa fungsi yang digunakan yaitu __init__. Dapat disebut
juga sebagai konstruktor yang berfungsi untuk mempersiapkan object baru, dengan menerima
argument untuk men-set beberapa variabel yang akan terbentuk pada class. Konstuktor tidak
memiliki return luaran. Object yang immutable atau tidak dapat dirubah umumnya
diinisialisasi pada konstruktor. Konstruktor berisi parameter diri, yang akan nanti dibawa ke
class turunannnya. Sedangkan fungsi __str__ pada method berfungsi untuk mengeluarkan
return dalam bentruk string. Jika luaran tidak dalam bentuk string maka object tidak akan
terbentuk.

Properties lainnya yang tedapat didalam method adalah __dict__ intruksi in


digunakan untuk memeriksa parameter yang ada pada class dan object. Output akan tertampil
dalam bentuk dictionar yang berisi parameter yang dimiliki oleh object maupun class. Hal ini
perlu dilakukan untuk mengetahui identitas dan komponen yang terbawa, namun tidak
digunakan. __name__ juga merupakan properties method yang digunakan untuk mengetahui
nama dari class dan juga tipe dari object. __module__ digunakan untuk memeriksa nama
module pada class. __bases__ merupakan intruksi yang digunakan untuk mengembalikkan
basis class dari class input. Kemudian yang terakhir adalah __call__, callable adalah sebuah
keadaan dimana objectnya dapat dipanggil. Untuk membuat object menajdi callable gunakan
intruksi __call__ketika membuat method.
PEMBAHASAN

1.Program

Hasil Run

Pembahasan
Program tersebut adalah contoh dari sebuah class Python yang diberi nama cobaClass. Di dalam
class tersebut, terdapat satu method khusus yang disebut __init__, yang dipanggil setiap kali
sebuah objek dibuat dari class tersebut. Method __init__ memiliki satu parameter yaitu argInput.
Di dalam method __init__, terdapat satu baris kode self.var = argInput. Kode ini membuat sebuah
atribut var pada objek yang dibuat, dengan nilai yang sama dengan nilai parameter argInput yang
diberikan saat objek dibuat. Setelah class cobaClass didefinisikan, program membuat sebuah objek
dari class tersebut dengan memanggil constructor cobaClass("objek"). Parameter "objek" akan
diberikan sebagai nilai untuk atribut var. Selanjutnya, program mencetak nilai dari atribut var pada
objek yang telah dibuat dengan menggunakan syntax print(objek_1.var). Jadi, program ini akan
mencetak "objek" pada output, karena nilai dari atribut var pada objek objek_1 adalah "objek".

Contoh Program Lainnya


Hasil Run

Pembahasan
Program di atas juga menggunakan sebuah class Python yang diberi nama Person. Class ini
memiliki satu method khusus, yaitu __init__, yang juga dipanggil setiap kali sebuah objek dibuat
dari class tersebut. Method __init__ pada class Person memiliki satu parameter yaitu name. Di
dalam method tersebut, terdapat satu baris kode self.name = name yang membuat sebuah atribut
name pada objek yang dibuat, dengan nilai yang sama dengan nilai parameter name yang
diberikan saat objek dibuat. Setelah class Person didefinisikan, program membuat sebuah objek
dari class tersebut dengan memanggil constructor Person("John"). Parameter John akan diberikan
sebagai nilai untuk atribut name. Selanjutnya, program mencetak nilai dari atribut name pada
objek yang telah dibuat dengan menggunakan syntax print(person_1.name). Jadi, program ini
akan mencetak "John" pada output, karena nilai dari atribut name pada objek person_1 adalah
"John".

2. Program
Hasil Run

Pembahasan
Ada beberapa kesalahan dalam program tersebut, di antaranya: Nama kelas tidak konsisten. Di
awal program, kelas didefinisikan sebagai classSTR, tetapi kemudian di deklarasikan sebagai
Classy saat membuat objek. Harus disamakan antara definisi kelas dan saat membuat objek.
Parameter value yang diterima di dalam metode _str_ seharusnya tidak ada. Metode _str_ tidak
perlu menerima parameter karena hanya perlu mengembalikan representasi string dari objek. Pada
saat membuat objek, nama variabel salah didefinisikan. Variabel objek_1 dan objek_2
didefinisikan, tetapi kemudian dipanggil dengan nama yang berbeda yaitu obj_1 dan obj_2. Pada
saat mencetak objek, nama variabel juga salah didefinisikan. Objek yang dicetak adalah objek_1
dan objek_2, tetapi yang dicetak adalah obj_1 dan obj_2. Metode _str_ harus mengembalikan nilai
bertipe string, tetapi di program tersebut mengembalikan nilai dari tipe None. Ini akan
menghasilkan error ketika mencoba mencetak objek.

Program Benar
Hasil Run

Pembahasan
Program tersebut adalah contoh dari sebuah class Python yang diberi nama `Classy`. Di dalam class
tersebut, terdapat dua method, yaitu __init__ dan __str__. Method __init__ memiliki satu
parameter yaitu value, dengan nilai default None. Di dalam method tersebut, terdapat satu baris
kode self.var = value. Kode ini membuat sebuah atribut var pada objek yang dibuat, dengan nilai
yang sama dengan nilai parameter value yang diberikan saat objek dibuat. Method __str__
memiliki satu parameter yaitu value, dengan nilai default None. Method ini mengembalikan nilai
atribut var dalam bentuk string. Setelah class Classy didefinisikan, program membuat dua objek
dari class tersebut dengan memanggil constructor Classy dengan parameter yang berbeda objek_1
= Classy("objek") dan objek_2 = Classy(5). Parameter "objek" akan diberikan sebagai nilai
untuk atribut var pada objek objek_1, sedangkan parameter 5 akan diberikan sebagai nilai untuk
atribut var pada objek objek_2. Selanjutnya, program mencetak nilai dari objek-objek tersebut
dengan menggunakan syntax print(objek_1) dan print(objek_2). Karena method __str__
diimplementasikan pada class Classy, maka program akan mencetak nilai atribut var dari objek-
objek tersebut dalam bentuk string. Jadi, program ini akan mencetak "objek" dan "5" pada output,
masing-masing untuk objek objek_1 dan objek_2.

Contoh Program Lainnya


Hasil Run

Pembahasan
Program di atas juga menggunakan sebuah class Python yang diberi nama Animal. Class ini
memiliki dua method, yaitu __init__ dan __str__. Method __init__ pada class Animal memiliki
satu parameter yaitu value, dengan nilai default None. Di dalam method tersebut, terdapat satu
baris kode self.var = value. Kode ini membuat sebuah atribut var pada objek yang dibuat, dengan
nilai yang sama dengan nilai parameter value yang diberikan saat objek dibuat. Method __str__
pada class Animal memiliki satu parameter yaitu value, dengan nilai default None. Method ini
mengembalikan nilai atribut var dalam bentuk string. Setelah class Animal didefinisikan, program
membuat dua objek dari class tersebut dengan memanggil constructor Animal dengan parameter
yang berbeda yakni animal_1 = Animal("cat") dan animal_2 = Animal(4). Parameter "cat" akan
diberikan sebagai nilai untuk atribut var pada objek animal_1, sedangkan parameter 4 akan
diberikan sebagai nilai untuk atribut var pada objek animal_2. Selanjutnya, program mencetak
nilai dari objek-objek tersebut dengan menggunakan syntax print(animal_1) dan print(animal_2).
Karena method __str__ diimplementasikan pada class Animal, maka program akan mencetak nilai
atribut var dari objek-objek tersebut dalam bentuk string. Jadi, program ini akan mencetak "cat"
dan "4" pada output, masing-masing untuk objek animal_1 dan animal_2.

3. Program
Hasil Run

Pembahasan
Program tersebut memiliki beberapa kesalahan. Pada metode _init_, variabel self.var tidak
diberikan nilai sehingga tidak dapat digunakan secara benar. Seharusnya variabel tersebut diberikan
nilai, misalnya self.var = None. Pada metode __hidden, nama metode tersebut dimulai dengan dua
garis bawah, sehingga dianggap sebagai metode pribadi (private). Akan tetapi, metode pribadi tidak
dapat diakses dari luar kelas dengan cara seperti ini, sehingga tidak dapat dipanggil. Ketika
mencetak atribut _dict_ dari objek dan kelas, seharusnya menggunakan nama variabel yang tepat
yaitu obj._dict_ dan Classy._dict_.

Program Benar
Hasil Run

Pembahasan
Pada program yang diperbaiki, nilai dari obj._dict_ adalah {'var': None}, karena saat membuat
objek, variabel var didefinisikan sebagai self.var = None di dalam metode _init. Sedangkan nilai
dari Classy.dict_ adalah {'varia': 1, '_init': <function Classy.init_ at 0x...>, 'method': <function
Classy.method at 0x...>, 'hidden': <function Classy._hidden at 0x...>, 'dict': <attribute 'dict' of
'Classy' objects>, 'weakref': <attribute 'weakref' of 'Classy' objects>, 'doc_': None}, karena ini
adalah atribut kelas yang menyimpan semua metode dan atribut yang didefinisikan dalam kelas.

Contoh Program Lainnya


Hasil Run

Pembahasan
Pada program ini, class Classy didefinisikan dengan 3 method yaitu __init__, method, dan
__hidden. Method __init__ adalah constructor class Classy yang tidak menerima parameter
apapun. Di dalam method ini, sebuah atribut var dibuat dan diinisialisasi dengan nilai None.
Method method adalah method kosong yang tidak melakukan apapun. Method ini hanya
digunakan sebagai contoh untuk menunjukkan bahwa class Classy memiliki lebih dari satu method.
Method __hidden adalah method private yang hanya dapat diakses dari dalam class Classy saja.
Method ini dibuat dengan menambahkan double underscore (`__`) di depan nama method. Setelah
class Classy didefinisikan, program membuat sebuah objek dari class tersebut dengan memanggil
constructor Classy() dan menyimpannya ke dalam variabel obj. Kemudian, program mencetak nilai
dari atribut __dict__ dari objek obj dan class Classy dengan menggunakan syntax
print(obj.__dict__) dan print(Classy.__dict__). Atribut __dict__ adalah sebuah dictionary yang
berisi semua atribut dan method yang dimiliki oleh objek atau class yang dipanggil. Dalam hal ini,
obj.__dict__ akan mencetak sebuah dictionary kosong, karena objek obj tidak memiliki atribut
atau method yang dimiliki selain dari yang ditentukan pada constructor __init__. Sedangkan
Classy.__dict__ akan mencetak sebuah dictionary yang berisi semua atribut dan method yang
dimiliki oleh class Classy, termasuk varia, __init__, method, dan __hidden. Jadi, program ini
akan mencetak `{}` dan sebuah dictionary yang berisi atribut varia, serta method __init__,
method, dan __hidden pada output.

4. Program

Hasil Run

Pembahasan
Pada program ini, sebuah class namaClass didefinisikan dengan hanya menggunakan kata kunci
pass yang menandakan bahwa class ini tidak memiliki atribut atau method apapun. Setelah class
namaClass didefinisikan, program mencetak nama class tersebut dengan menggunakan atribut
__name__ yang dimiliki oleh class. Atribut __name__ adalah sebuah string yang berisi nama dari
class tersebut. Sehingga, print(namaClass.__name__) akan mencetak namaClass pada output.
Kemudian, program membuat sebuah objek dari class namaClass dengan cara memanggil
constructor namaClass() dan menyimpannya ke dalam variabel objek. Selanjutnya, program
mencetak tipe data dari objek objek dengan menggunakan fungsi type() dan atribut __name__
yang dimiliki oleh tipe data tersebut. Atribut __name__ adalah sebuah string yang berisi nama dari
tipe data tersebut. Sehingga, print(type(objek).__name__) akan mencetak namaClass pada
output. Dengan demikian, program ini akan mencetak namaClass pada baris pertama output dan
namaClass pada baris kedua output.

Contoh Program Lainnya


Hasil Run

Pembahasan
Pada program ini, sebuah class namaClass didefinisikan dengan menggunakan kata kunci class
dan diikuti oleh nama class yang ingin didefinisikan. Pada contoh ini, nama class adalah
namaClass. Selanjutnya, program mendefinisikan constructor __init__() untuk class namaClass.
Constructor ini memiliki satu parameter self`, yang merujuk pada objek instance yang sedang
dibuat, dan memberikan nilai awal 123 ke atribut var pada objek tersebut. Setelah itu, program
membuat sebuah objek dari class namaClass dengan cara memanggil constructor namaClass() dan
menyimpannya ke dalam variabel objek. Selanjutnya, program mencetak nilai dari atribut var pada
objek objek, yaitu objek.var. Kemudian, program mencetak tipe data dari objek objek dengan
menggunakan fungsi type() dan atribut __name__ yang dimiliki oleh tipe data tersebut, yaitu
type(objek).__name__. Atribut __name__ akan mengembalikan nama dari tipe data objek
tersebut sebagai sebuah string. Dengan demikian, program ini akan mencetak 123 pada baris
pertama output dan namaClass pada baris kedua output.

5.Program

Hasil Run
Pembahasan
Program tersebut mendefinisikan sebuah class kosong bernama modClass. Setelah itu, program
mencetak nama modul tempat class tersebut didefinisikan, yaitu __main__, dengan menggunakan
atribut __module__ pada class modClass. Kemudian, program membuat sebuah objek dari class
modClass dengan cara memanggil constructor modClass() dan menyimpannya ke dalam variabel
objek. Selanjutnya, program mencetak nama modul tempat objek tersebut didefinisikan, yaitu juga
__main__, dengan menggunakan atribut __module__ pada objek `objek`. Dengan demikian,
program ini dapat digunakan untuk memeriksa modul mana yang mendefinisikan sebuah class atau
objek dengan cara menggunakan atribut __module__.

Contoh Program Lainnya

Hasil Run

Pembahasan
Pada program ini, sebuah class modClass didefinisikan dengan menggunakan kata kunci class dan
diikuti oleh nama class yang ingin didefinisikan. Pada contoh ini, nama class adalah modClass.
Selanjutnya, program mendefinisikan constructor __init__() untuk class modClass. Constructor ini
memiliki satu parameter self`, yang merujuk pada objek instance yang sedang dibuat, dan
memberikan nilai awal Ini adalah objek dari class modClass ke atribut var pada objek tersebut.
Setelah itu, program mencetak nama modul tempat class modClass didefinisikan, yaitu __main__,
dengan menggunakan atribut __module__. Kemudian, program membuat sebuah objek dari class
modClass dengan cara memanggil constructor modClass() dan menyimpannya ke dalam variabel
objek. Selanjutnya, program mencetak nilai dari atribut var pada objek objek, yaitu objek.var.
Dengan demikian, program ini akan mencetak __main__ pada baris pertama output dan Ini adalah
objek dari class modClass pada baris kedua output.

6.Program

Hasil Run

Pembahasan
Program tersebut mendefinisikan tiga buah class, yaitu SuperOne, SuperTwo, dan Sub. Class
SuperOne dan SuperTwo tidak memiliki atribut atau metode apa pun karena hanya
mendefinisikan class kosong dengan menggunakan kata kunci pass. Class Sub merupakan subclass
dari SuperOne dan SuperTwo. Hal ini ditunjukkan dengan cara mendefinisikan SuperOne dan
SuperTwo pada parameter superclass dari class Sub. Program juga mendefinisikan sebuah fungsi
printBases yang akan mencetak nama-nama class yang menjadi superclass dari suatu class yang
dilewatkan ke dalam parameter fungsi. Fungsi ini bekerja dengan cara mengakses atribut
__bases__ dari class tersebut, yang akan menghasilkan tuple berisi superclass dari class tersebut.
Kemudian, fungsi akan mencetak nama class superclass tersebut. Setelah mendefinisikan fungsi
printBases, program memanggilnya untuk mencetak nama superclass dari SuperOne, SuperTwo,
dan Sub. Pada baris terakhir, fungsi printBases dipanggil tiga kali dengan parameter SuperOne,
SuperTwo, dan Sub. Dengan demikian, program ini berguna untuk mengecek superclass dari
sebuah class menggunakan fungsi printBases.

Contoh Program Lainnya

Hasil Run

Pembahasan
Contoh program yang menggunakan instruksi yang sama dengan program sebelumnya, tetapi
dengan definisi class yang berbeda dan memanggil fungsi printBases dengan class yang berbeda
pula. Program ini menghasilkan output yang sama seperti program sebelumnya. Namun, program
ini menggunakan definisi class yang berbeda dan memanggil fungsi printBases dengan class yang
berbeda pula. Ini menunjukkan bahwa program ini dapat digunakan untuk mengecek superclass
dari sebuah class dengan mengubah definisi class dan class yang digunakan sebagai parameter
fungsi printBases.

7.Program

Hasil Run

Pembahasan
Program di atas adalah contoh penggunaan __call__ method pada class Python. __call__ method
dapat digunakan untuk membuat sebuah instance dari class bisa dipanggil layaknya sebuah
function. Class Human memiliki dua parameter yaitu first_name dan last_name. Pada saat
instance dari class Human dibuat dengan menggunakan Human("Virat", "Kohli"), maka method
__init__ akan dipanggil dan mencetak output "I am inside __init__ method" serta menyimpan
first_name dan last_name sebagai instance variable pada object. Kemudian, pada baris
selanjutnya, human_obj() dipanggil. Karena human_obj adalah sebuah instance dari class
Human dan class Human memiliki __call__ method, maka pemanggilan tersebut akan memanggil
method __call__ pada instance human_obj dan mencetak output "I am inside __call__ method".
Selanjutnya, pada baris berikutnya, human_obj.__call__() dipanggil, yang juga akan memanggil
method __call__ dan mencetak output yang sama. Terakhir, callable(human_obj) digunakan
untuk mengecek apakah human_obj dapat dipanggil seperti function. Karena instance human_obj
memiliki __call__ method, maka hasilnya akan True.

Contoh Program Lainnya

Hasil Run

Pembahasan
Class `Square` memiliki satu parameter yaitu side. Pada saat instance dari class Square dibuat
dengan menggunakan Square(5), maka method __init__ akan dipanggil dan menyimpan side
sebagai instance variable pada object. Selanjutnya, pada method __call__, object square_obj akan
mengembalikan nilai side yang telah dipangkatkan dua. Ketika square_obj() dipanggil, maka akan
memanggil method __call__ pada instance square_obj dan mengembalikan nilai side yang telah
dipangkatkan dua. Kemudian, hasil output dari square_obj() akan dicetak, yaitu 25. Terakhir,
callable(square_obj) digunakan untuk mengecek apakah square_obj dapat dipanggil seperti
function dan menghasilkan nilai True karena instance square_obj memiliki __call__ method.
KESIMPULAN

Kesimpulan dari praktikum pemrograman lanjut minggu kedua ini adalah


mahasiswa/i mampu memahami lebih dalam tentang properties method. Dalam method
terdapat beberapa properties yang digunakan yaitu __init__. Dapat disebut juga sebagai
konstruktor yang berfungsi untuk mempersiapkan object baru, dengan menerima argument
untuk men-set beberapa variabel yang akan terbentuk pada class. Konstuktor tidak memiliki
return luaran. Object yang immutable atau tidak dapat dirubah umumnya diinisialisasi pada
konstruktor. Konstruktor berisi parameter diri, yang akan nanti dibawa ke class turunannnya.
Sedangkan fungsi __str__ pada method berfungsi untuk mengeluarkan return dalam bentruk
string. Jika luaran tidak dalam bentuk string maka object tidak akan terbentuk.

Properties lainnya yang tedapat didalam method adalah __dict__ intruksi in


digunakan untuk memeriksa parameter yang ada pada class dan object. Output akan tertampil
dalam bentuk dictionar yang berisi parameter yang dimiliki oleh object maupun class. Hal ini
perlu dilakukan untuk mengetahui identitas dan komponen yang terbawa, namun tidak
digunakan. __name__ juga merupakan properties method yang digunakan untuk mengetahui
nama dari class dan juga tipe dari object. __module__ digunakan untuk memeriksa nama
module pada class. __bases__ merupakan intruksi yang digunakan untuk mengembalikkan
basis class dari class input. Kemudian yang terakhir adalah __call__, callable adalah sebuah
keadaan dimana objectnya dapat dipanggil. Untuk membuat object menajdi callable gunakan
intruksi __call__ketika membuat method. Mahasiswa/I juga diharapkan dapat memahami
build in function yang terdapat dalam python untuk class. Seperti class method() yang
digunakan untuk membuat method yang bisa dipanggil dari class itu sendiri, bukan dari
instance objek. Ada banyak lainnya beberapa contoh bulid in funcition yang digunakan untuk
class pada python.
DAFTAR PUSTAKA

Belajar Data Science di Rumah. 2021. 20 Desember. Fungsi Dalam Python, Kenali Else If Yuk.
https://www.dqlab.id/fungsi-dalam-python-kenali-else-if-
yuk#:~:text=Else%20if%20python%20merupakan%20salah,sebelumnya%20kita%20instruksikan
%20dalam%20komputer. Diakses pada Kamis, 23 Februari 2023.

Belajarpython. 2021. 12 Juli.. Tutorial List Python. https://belajarpython.com/tutorial/list-python/.


Diakses pada tanggal 9 Maret 2023.

Anggit Puguh. 2022. 15 September. Apa itu Python? Pengertian, Fungsi dan Contohnya.
https://blog.rumahweb.com/python-adalah/. Diakses pada tanggal, 2 Maret 2023

Huda Nurul. 2021. 22 Januari. Python Dasar : Mempelajari Perulangan For.


https://jagongoding.com/python/dasar/perulangan-for/. Diakses pada tanggal 2 Maret 2023

Anda mungkin juga menyukai