Anda di halaman 1dari 26

MODUL PRAKTIKUM

PEMROGRAMAN BERORIENTASI OBJEK

Disusun Oleh:
Arif Fadllullah

LABORATORIUM SISTEM INFORMASI DAN KOMPUTASI CERDAS


JURUSAN TEKNIK KOMPUTER, UNIVERSITAS BORNEO TARAKAN |
Jalan Amal Lama No. 1, Tarakan, Kalimantan Utara
MODUL 6 TAHUN 2022

DECORATOR, STATIC METHOD DAN KELAS


METHOD DALAM OOP PYTHON
MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

A. TUJUAN

 Dapat memahami konsep dasar decorator dalam OOP Python.


 Dapat memahami konsep static method dalam OOP Python.
 Dapat memahami konsep class method dalam OOP Python.
 Dapat menerapkan static dan class method dalam OOP Python.

B. PETUNJUK

- Awali setiap praktikum dengan berdoa agar mendapatkan keberkahan dan kemudahan
dalam mengerjakan praktikum.
- Baca modul dengan seksama dan pahami tujuan dan dasar teori dengan baik.
- Kerjakan latihan-latihan dan tugas-tugas praktikum dengan baik, benar, sabar, teliti, dan
jujur.
- Tanyakan kepada asisten praktikum/dosen pengampu apabila ada hal dalam modul yang
kurang jelas.

C. DASAR TEORI

1. Decorator

Decorator merupakan komponen penting dalam Python yang mendukung fleksibilitas


dalam manipulasi fungsi. Secara definisi, decorator adalah fungsi yang melakukan operasi
terhadap fungsi lain dan memodifikasi perilakunya tanpa harus mengubah secara eksplisit.
Oleh karena itu, decorator merupakan fungsi yang menerima fungsi lain sebagai argumennya
(first-class object). Dengan menggunakan decorator, proses mendekorasi fungsi menjadi lebih
ringkas dan relatif simpel.
Decorator bekerja menggunakan prinsip metaprogramming karena ia akan memodifikasi
bagian program lainnya pada saat eksekusi. Secara konsep, decorator menggunakan metode
inner function dan Python closure. Sebelum membahas lebih lanjut tentang decorator, berikut
ini akan mencoba untuk memahami definisi dari inner function dan python closure.
Inner Function?
Inner function atau juga dikenal dengan nested function merupakan fungsi yang
didefinisikan di dalam fungsi. Pada dasarnya, sebuah fungsi dibuat sebagai inner function
untuk memisahkan/membatasi dari semua yang terjadi di luar fungsi induk (outer function).
Artinya, inner function hanya bisa mengakses variabel dari lingkup fungsi induk, dan tidak
dapat berinteraksi dengan variabel di luar fungsi induk. Contoh sederhana pembuatan inner
function dapat dilihat pada Gambar 6.1

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 2


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Gambar 6.1 Contoh Sederhana Inner Function

Perlu digarisbawahi dalam penggunaan inner function, meskipun inner function


didefinisikan seperti fungsi pada umumnya, fungsi ini tidak bisa dipanggil secara langsung. Hal
ini karena fungsi tersebut tidak terdefinisi secara global. Inner Function merupakan fungsi
lokal yang hanya akan terdefinisi jika fungsi induknya dipanggil.
Selain dapat mengembalikan nilai, inner function juga dapat mengembalikan fungsi dari fungsi
dengan parameter/argumen. Untuk lebih jelasnya perhatikan Gambar 6.2, dimana fungsi utama,
yaitu menu() menerima argumen berupa huruf. Apabila pengguna memasukkan huruf a maka
fungsi akan mengembalikan fungsi pizza. Proses ini merupakan proses pengembalian fungsi
dari fungsi.

Output:

Gambar 6.2 Proses Pengembalian Inner Function dari Fungsi Induknya


Python Closure?
Konsep Python Closure sangat berhubungan dengan inner function dan variabel non-
lokal. Variabel non-lokal adalah variabel yang tidak didefinisikan di dalam lingkup lokal.
Variabel ini digunakan di dalam fungsi bersarang. Contoh penggunaan variabel non-lokal
dalam fungsi bernama mahasiswaUBT() dapat dilihat pafa Gambar 6.3.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 3


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Output:

Gambar 6.3 Inner Function dalam Mengakses Variabel Non-Lokal

Pada contoh di atas, fungsi tampil() dapat mengakses variabel nama yang terdapat
yang terdapat pada fungsi induknya (di luar fungsinya sendiri). Dalam hal ini, fungsi
tampil() mengakses variabel non-lokal. Sehingga, output fungsi mahasiswaUBT(“Rio
Marsonly”) dapat ditampilkan pada layar. Untuk bisa menjalankan fungsi
mahasiswaUBT(), pengguna harus memberikan argumen wajib pada fungsi tersebut, karena
dari awal sudah didefinisikan sebagai fungsi dengan argumen.
Apabila pengguna tidak memasukkan argumen, maka fungsi tersebut tidak dapat
dijalankan alias akan muncul pesan kesalahan. Pertanyaannya adalah apakah program bisa
mengingat sebuah argumen yang telah dimasukkan? sehingga fungsi tersebut dapat dipanggil
tanpa argumen. Disini peran closure, Python menyediakan cara untuk mengingat nilai
dimasukkan pada fungsi dengan cara seperti yang telah kita gunakan pada Gambar 6.4 di
bagian inner function: menyimpan referensi fungsi ke dalam sebuah variabel.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 4


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Output:

Gambar 6.4 Cara Menyimpan Referensi Fungsi ke dalam Variabel Cek.

Gambar 6.4 menunjukkan bagaimana fungsi mahasiswaUBT() dengan argumen “Rio


Marsonly” disimpan ke dalam variabel bernama cek sehingga cek secara otomatis menjadi
fungsi. Pada saat pemanggilan cek(), pesan “Hello Rio Marsonly” masih tetap eksis
meskipun fungsi mahasiswaUBT() telah selesai dijalankan. Padahal pada fungsi biasa,
seharusnya argumen pada fungsi akan terhapus begitu eksekusi terhadap fungsi selesai. Metode
penyimpanan argumen pesan "Hello Rio Marsonly" terhadap suatu variabel inilah yang
disebut dengan closure. Pada contoh fungsi pada Gambar 6.4, bagian yang menunjukkan
sebagai fungsi closure adalah:

cek = mahasiswaUBT(“Rio Marsonly”)


print(cek())

Dengan demikian, jelas bahwa closure adalah sebuah fungsi yang dapat disimpan dalam
variabel dan biasa dimanfaatkan untuk mewakili (enclose) sebuah proses pada blok tertentu.
Variabel yang menyimpan closure memiliki sifat seperti fungsi yang disimpannya. Dengan
menggunakan closure, fungsi dapat mengembalikan objek (atau fungsi lain) dan mengingat
lingkungan tempat fungsi tersebut diinisiasi. Nilai yang ada pada outer-scope masih diingat
meskipun fungsi tersebut telah dihapus. Closure memiliki peran yang sangat penting dalam
decorator. Closure digunakan untuk menyimpan nilai fungsi yang telah didekorasi.

 Decorator Sederhana pada Fungsi Tanpa Parameter


Setelah kita memahami cara kerja inner function dan python closure untuk membuat
decorator. Maka selanjutnya, kita mencoba memahami contoh decorator untuk sebuah
fungsi sederhana tanpa parameter pada Gambar 6.5.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 5


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Output:

Gambar 6.5 Fungsi Decorator untuk Fungsi Sederhana Tanpa Parameter

Pada contoh di atas, perkenalan() adalah fungsi yang akan dibuat sebagai decorator.
Fungsi decorator akan menerima argumen yang juga merupakan fungsi dengan nama
kabar() sebagai fungsi sederhana tanpa parameter yang berisi cetak “Refanti”.
Fungsi kabar() yang diterima kemudian didekorasi oleh fungsi decorator
perkenalan() dengan menambahkan kata “Hallo” dan “Semoga Sukses Lomba
Karatenya”. Hasil dekorasi kemudian disimpan kembali ke dalam variabel kabar.
Alhasil, ketika kita ingin mencetak kembali fungsi kabar(), isian yang dicetak tidak lagi
berupa nama “Refanti” saja, tetapi berubah menjadi:

Hallo
Refanti
Semoga Sukses Lomba Karatenya

Python memiliki cara yang lebih sederhana untuk mendekorasi fungsi yaitu dengan
menggunakan simbol @ diikuti dengan nama fungsi decorator tersebut. Nama fungsi
decorator ditempatkan di atas fungsi yang akan didekorasi seperti pada Gambar 6.6.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 6


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Output:

Gambar 6.6 Mengaktifkan Fungsi Decorator dengan Simbol @ diikuti dengan Nama Fungsi
Decoratornya

Gambar 6.6 menunjukkan cara mengaktifkan fungsi dekorator perkenalan() yang sudah
didefinisikan sebelumnya dengan cara menambahkan simbol @nama_decorator dan
dibawahnya diletakkan fungsi yang dimodifikasi isinya yaitu fungsi kabar(). Kita juga
dapat melihat pada Gambar 6.6 bahwa fungsi kabar() sebelum didekorasi menghasilkan
nilai “Refanti” saja. Sedangkan fungsi kabar() yang telah didekorasi (yang diatasnya
disisipkan @perkenalan) menghasilkan nilai:

Hallo
Refanti
Semoga Sukses Lomba Karatenya
 Decorator pada Fungsi Dengan Parameter
Decorator @nama_decorator dapat mendekorasi fungsi dengan argumen. Caranya perlu
ditambahkan argumen *args dan **kwargs di dalam inner function pada fungsi
decoratornya.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 7


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Output:

Gambar 6.7 Fungsi Decorator untuk Fungsi Dengan Parameter

2. Static Method
Pada pertemuan yang lalu, kita pernah membahas tentang static variable atau yang
biasa disebut juga sebagai class variable atau attribute, yaitu variabel yang berada di dalam
kelas yang tidak disandarkan kepada objek atau instan dari kelas tersebut, sehingga bisa
diakses langsung tanpa perlu melakukan instansiasi. Nah, pada kesempatan kali ini, kita
akan membahas hal yang serupa dengan static variable: yaitu static method.

Apa itu static method?


Static method di dalam python adalah sebuah fungsi atau method pada sebuah kelas
yang bersifat statis. Bersifat statis di sini berarti kita bisa memanggil fungsi tersebut secara
langsung tanpa harus membuat instan dari kelas yang bersangkutan. Selain itu, static
method hanya memiliki informasi sebatas dari parameter yang ia terima, ia tidak akan
memiliki informasi tambahan tentang kelas apa yang dia ada di dalamnya (berbeda dengan
classmethod).
Untuk membuat static method pada python, kita perlu mendefinisikan decorator
@staticmethod tepat di atas fungsi dalam Kelas yang ingin kita jadikan statis.
Perhatikan Gambar 6.8 berikut ini.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 8


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Output:

Gambar 6.8 Membuat Static Method Bernama “nama” di dalam Kelas Mahasiswa

Kita perhatikan bahwa method nama() tidak terlalu membutuhkan properti atau
attribute dari kelas Mahasiswa. Ia hanya membutuhkan sebuah parameter string, baik dari
dalam kelas Mahasiswa atau pun nilai dari luar yang tidak ada sangkut pautnya dengan
kelas Mahasiswa itu sendiri. Untuk itu, method nama() jika ditambahkan argumen
@staticmethod di atasnya, maka method nama() bisa diakses secara langsung
dengan diikuti nama Kelasnya saja atau bisa juga method nama() diakses melalui proses
instansiasi Kelas ke dalam Objek.

Kapan harus Menggunakan Static Method?


Ada beberapa kondisi yang membuat static method diperlukan, diantaranya:
a. Membuat fungsi utilitas pada sebuah kelas
Static method bersifat terbatas. Ia tidak memiliki informasi tambahan kecuali hanya
parameter yang ia terima. Dan ketika kita merasa sebuah method hanya bersifat “utilitas”
dan ia tidak membutuhkan properti dari kelas tersebut, di saat itulah kita bisa
menggunakan static method.
b. Mengumpulkan berbagai fungsi sejenis ke dalam sebuah kelas
Kasus yang kedua adalah kita bisa menggunakan static method jika kita memiliki banyak
fungsi sejenis, dan kita ingin mengelompokkannya menjadi satu Kelas.
c. Ketika kita ingin suatu fungsi dalam parentclas tidak ditimpa kelas turunananya
Static method juga bisa kita gunakan ketika kita ingin sebuah fungsi tidak akan ditimpa
oleh kelas lain yang menjadi kelas turunannya.
Dari hasil percobaan sederhana, maka ada catatan penting tentang static method,
diantaranya:
a. Static method kurang lebih hampir sama dengan fungsi biasa, hanya saja ia diletakkan
dalam sebuah kelas.
b. Static method tidak memiliki informasi apa pun selain dari parameter yang diterimanya.
c. Pemanggilan static method bisa dilakukan tanpa harus membuat sebuah instan/objek dari
kelas yang bersangkutan.
d. Pendefinisian static method menggunakan decorator @staticmethod tepat sebelum
nama fungsi diinisiasi.

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 9


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

3. Class Method
Class method pada python adalah method statis yang disandarkan langsung kepada
sebuah kelas, artinya kita bisa memanggil fungsi tersebut tanpa harus membuat objek terlebih
dahulu. Class method kurang lebih sama dengan staticmethod, sama-sama statis dan sama-
sama bisa dipanggil secara langsung oleh kelasnya maupun dipanggil melalui instansiasi objek.
Meskipun memiliki banyak kemiripan dengan static method, akan tetapi keduanya tetap
saja berbeda. Berikut ini di antara perbedaan antara class method dan static method:
 Static method dibuat dengan tidak memiliki informasi tentang kelasnya sendiri, karena
memang tidak membutuhkan properti atau attribute dari dalam kelas. Sedangkan class
method dibuat jika kita perlu memiliki informasi tambahan seperti properti atau attribute
dari kelasnya sendiri untuk kemudian dimasukkan ke dalam class method.
 Untuk mendefinisikan static method kita menggunakan decorator @staticmethod,
sedangkan untuk mendefinisikan class method, kita menggunakan decorator
@classmethod.
 Keduanya sama-sama bisa dipanggil secara langsung oleh kelasnya maupun dipanggil
melalui instansiasi objek.
Untuk membuat class method pada python, kita cukup menuliskan decorator
@classmethod tepat sebelum mendefinisikan sebuah fungsi dengan catatan sudah membuat
informasi atau mendefinisikan terlebih dahulu tentang kelasnya. Perhatikan Gambar 6.9 berikut
ini.

Output:

Gambar 6.9 Membuat Class Method Bernama “pengertian” di dalam Kelas Manusia

Gambar 6.9 menujukkan parameter pertama dari @classmethod selalu merupakan


kelasnya sendiri. Misalkan class method dengan nama pengertian() berada dalam kelas

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 10


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Manusia, maka parameter pertama (yaitu parameter cls) akan berisi properti atau attribute
kelas Manusia yaitu jumlah_tangan dan nama. Parameter pertama ini tidak harus
bernama cls, bisa bernama apa saja akan tetapi isinya tetap sama yaitu properti atau attribute
kelasnya sendiri, berbeda dengan static method yang tidak memiliki parameter tambahan apa
pun dari kelasnya kecuali parameter asli dari dirinya sendiri.

Kapan harus menggunakan instance method, static method, dan class method?
 Untuk fungsi-fungsi yang berkaitan secara langsung dengan instance variable dari suatu
objek, gunakan instance method.
 Untuk fungsi-fungsi yang bersifat utilitas (helper/bantuan) dan tidak berkaitan secara
langsung dengan instance variable dan juga attribute kelas, gunakanlah static method.
 Dan untuk membuat factory method (hampir sama seperti konstruktor dengan use case
berbeda) dengan menyertakan dan memodifikasi nilai properti atau attribute kelas, kita bisa
menggunakan class method.

Membuat factory method menggunakan class method


Factory method adalah sebuah fungsi/method yang digunakan untuk membuat instan dari
suatu kelas. Hampir sama seperti konstruktor, hanya saja kita bisa membuat variasi berbeda
dari konstruktor yang asli. Perhatikan Gambar 6.10 berikut.

Output:

Gambar 6.11 Perbedaan Akses Static Method dan Class Method

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 11


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Sekarang kita bisa membuat instans dari kelas Mahasiswa dengan mengakses secara otomatis
__str__ method untuk menampilkan data dengan dua cara:
 Langsung dari konstruktornya, yaitu __init__ contructor.
 Lewat @classmethod yang bernama nilaiBobot()
Dari Gambar 6.1, terlihat bahwa hasil dari konstruktor, karena nilai bobot yang
dimasukkan 0, maka hasil dari nilai tetap 60. Sedangkan ketika menggunakan @classmethod,
nilai bobot dimodifikasi menjadi 20, sehingga hasil dari nilai menjadi 60. Disini terlihat
@classmethod dapat memodifikasi nilai yang akan ditampilkan pada method __str__
melalui method nilaiBobot(). Dengan kata lain method yang didefinisikan di bawah
@classmethod dapat memodifikasi properti dengan nilai berbeda dari konstruktor asal
(__init__ constructor).
Berbeda dengan @classmethod, dimana method yang didefinisikan dengan
@staticmethod tidak dapat mengakses properti atau attribute dan method yang lain dalam
kelas. @staticmethod hanya berfokus parameter yang dimasukkan ke dalam dirinya
sendiri (bukan dari kelasnya) dan tidak bisa diparsing ke method yang lain.
Dari contoh-contoh di atas bisa kita simpulkan bahwa:
a. Class method hampir sama dengan static method di mana keduanya dapat disandarkan
kepada sebuah kelas secara langsung alih-alih kepada instan atau objeknya
b. Class method dapat menangkap dan memiliki informasi tentang kelasnya sendiri sedangkan
static method tidak
c. Class method didefinisikan dengan decorator @classmethod sedangkan static method
menggunakan decorator @staticmethod
d. Class method cocok digunakan untuk factory method (seperti konstruktor akan tetapi dengan
variasi berbeda). Sedangkan static method lebih cocok digunakan untuk fungsi-fungsi
utilitas yang tidak berhubungan secara langsung dengan properti atau attribute kelasnya.

D. LATIHAN PRAKTIKUM
1. Menerapkan Inner Function

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 12


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Tuliskan skrip python di atas pada lembar kerja visual studio code Anda, kemudian running
(tekan ctrl + F5), lihat dan identifikasi apa yang terjadi. Berikan komentar/penjelasan di setiap
baris skrip Python yang penting dan screenshot hasil eksekusi tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 13


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

2. Menerapkan Decorator Python Tanpa Parameter

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 14


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Tuliskan skrip python di atas pada lembar kerja visual studio code Anda, kemudian modifikasi
pada bagian fungsi decoratornya sehingga ketika running (tekan ctrl + F5), luaran output yang
dihasilkan adalah:

Hallo, Refanti Semoga Sukses Lomba Karatenya, Mahasiswa Teknik


Komputer Mendukungmu

Lihat dan identifikasi apa yang terjadi. Berikan komentar/penjelasan di setiap baris skrip
Python yang penting dan screenshot hasil eksekusi tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 15


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

3. Menerapkan Decorator Manual Dengan Parameter

Tuliskan skrip python di atas pada lembar kerja visual studio code Anda, kemudian running
(tekan ctrl + F5), lihat dan identifikasi apa yang terjadi. Berikan komentar/penjelasan di setiap
baris skrip Python yang penting dan screenshot hasil eksekusi tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 16


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

4. Menerapkan Decorator Python Dengan Parameter

Tuliskan skrip python di atas pada lembar kerja visual studio code Anda, kemudian running
(tekan ctrl + F5), Bandingkan dan jelaskan perbedaannya dengan skrip latihan nomor 3.
Berikan komentar/penjelasan di setiap baris skrip Python yang penting dan screenshot hasil
eksekusi tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 17


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Lakukan modifikasi skrip pada fungsi decorator yang ditandai dengan kotak berwarna hijau
(bukan pada fungsi tegangan() yang dimodif), sehingga ketika di running akan
menghasilkan output seperti di bawah ini:

Lihat dan identifikasi apa yang terjadi. Berikan komentar/penjelasan di setiap baris skrip
Python yang penting dan screenshot hasil eksekusi tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 18


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

5. Menerapkan Static Method

Tuliskan skrip python di atas pada lembar kerja visual studio code Anda, running (tekan ctrl +
F5), jelaskan apa yang berbeda dari tiga print yang dilakukan. Berikan
komentar/penjelasan di setiap baris skrip Python yang penting dan screenshot hasil eksekusi
tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 19


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 20


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

6. Menerapkan Class Method

Tuliskan skrip python di atas pada lembar kerja visual studio code Anda, running (tekan ctrl +
F5), jelaskan apa yang berbeda dari dua print yang dilakukan. Berikan
komentar/penjelasan di setiap baris skrip Python yang penting dan screenshot hasil eksekusi
tampilkan disini:

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 21


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 22


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

TUGAS PRAKTIKUM
1. Buatlah program sederhana dengan tema bebas yang memanfaatkan fungsi decorator (Skrip
Python disertai penjelasan dan screenshot hasil eksekusi tampilkan disini)

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 23


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

2. Buatlah sebuah program sederhana dengan tema bebas yang menerapkan @staticmethod
dan @classmethod (Skrip Python disertai penjelasan dan screenshot hasil eksekusi
tampilkan disini)

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 24


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

E. KESIMPULAN
Pengalaman apa yang kamu peroleh setelah mempelajari Modul 6 ini. Silahkan tulis disini:

F. DAFTAR PUSTAKA

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 25


MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

© 2022 Jurusan Teknik Komputer, Fakultas Teknik, UBT 26

Anda mungkin juga menyukai