-
Notifications
You must be signed in to change notification settings - Fork 0
Modul 3 ‐ CPMK 0803 ‐ Function, OOP Fundamental, List Multi Dimention, Error Handling
Setelah menyelesaikan bab ini, peserta didik diharapkan dapat:
- Memahami konsep variabel lokal dalam pemrograman Python.
- Menguasai penggunaan pernyataan global untuk mengakses variabel di luar lingkup fungsi.
- Memahami konsep parameter wajib dan parameter opsional dalam fungsi.
- Menggunakan parameter tak berurut untuk memberikan nilai dengan urutan yang berbeda pada fungsi.
- Menguasai konsep dan implementasi fungsi rekursif dalam pemrograman Python.
- Menunjukkan pemahaman dalam membuat dan menggunakan fungsi dan metode melalui contoh program.
- Memahami dasar-dasar OOP dan menerapkan tipe data terstruktur.
- Mengerti perbedaan dan penggunaan list dan array.
- Memahami tuple, dictionary, dan cara implementasinya.
- Melakukan operasi aritmatika pada list/array.
- Mengaplikasikan perulangan pada list/array.
- Memahami konsep dan implementasi array multidimensi.
- Mengerti konsep dan penanganan exception.
- Paham hirarki exception dan menangani multiple exception.
- Menguasai penggunaan try-except untuk mengatasi error pada program.
Perintah fungsi adalah salah satu perintah dasar dalam bahasa pemrograman Python. Fungsi digunakan untuk mengelompokkan blok kode yang dapat digunakan kembali. Dengan menggunakan fungsi, kita dapat menulis kode yang lebih ringkas dan efisien.
Fungsi didefinisikan dengan menggunakan kata kunci def
. Berikut adalah sintaks untuk mendefinisikan fungsi:
def nama_fungsi(parameter):
blok kode
-
nama_fungsi
adalah nama fungsi. -
parameter
adalah daftar parameter yang diterima oleh fungsi. -
blok kode
adalah blok kode yang akan dijalankan saat fungsi dipanggil.
Berikut adalah contoh fungsi sederhana yang mendefinisikan fungsi hello()
:
def hello():
print("Hello, world!")
Untuk memanggil fungsi hello(), kita dapat menggunakan sintaks berikut:
hello()
Output:
Hello, world!
Fungsi dapat memiliki tipe data yang berbeda, termasuk tipe data void. Fungsi dengan tipe void tidak mengembalikan nilai apa pun.
Berikut adalah contoh fungsi dengan tipe void yang mendefinisikan fungsi print_hello():
def print_hello():
print("Hello, world!")
print_hello()
Output:
Hello, world!
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi rekursif dapat digunakan untuk menyelesaikan masalah yang dapat dipecah menjadi masalah yang lebih kecil.
Berikut adalah contoh fungsi rekursif yang mendefinisikan fungsi factorial()
:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5))
Output:
120
Latihan soal diberikan untuk menguji pemahaman peserta tentang materi perintah percabangan. Berikut adalah beberapa contoh soal yang mudah:
- Definisikan fungsi
sum()
yang menerima dua bilangan dan mengembalikan jumlah kedua bilangan tersebut. - Definisikan fungsi
average()
yang menerima tiga bilangan dan mengembalikan rata-rata ketiga bilangan tersebut. - Definisikan fungsi
fibo()
yang menerima bilangan positif N dan mengembalikan deret Fibonacci ke-N.
Pemrograman Berbasis Objek (PBO) adalah paradigma pemrograman yang menganggap bahwa perangkat lunak terdiri dari objek-objek yang saling berinteraksi. Objek-objek ini memiliki data dan perilakunya masing-masing.
Kelebihan PBO antara lain:
- Lebih mudah dipahami dan dikembangkan
- Lebih mudah diuji
- Lebih mudah dirawat
Kekurangan PBO antara lain:
- Lebih kompleks
- Memerlukan waktu lebih lama untuk dipelajari
Konsep dasar PBO antara lain:
- Objek: Suatu entitas yang memiliki data dan perilakunya masing-masing.
- Class: Suatu template yang digunakan untuk membuat objek.
- Atribut: Data yang dimiliki oleh objek.
- Method: Perilaku yang dimiliki oleh objek.
Class adalah suatu template yang digunakan untuk membuat objek. Class memiliki atribut dan method.
Class didefinisikan dengan menggunakan kata kunci class
. Berikut adalah contoh definisi class:
class Person:
# Atribut
name = ""
age = 0
# Method
def say_hello(self):
print("Hello, my name is", self.name)
Berikut adalah contoh class Sapi
:
class Sapi:
# Atribut
nama = ""
jumlahKaki = 0
umur = 0
# Method
def Makan(self):
print(self.name, "sedang makan.")
def Jalan(self):
print(self.name, "sedang jalan.")
def Bobo(self):
print(self.name, "sedang bobo.")
# Membuat objek
sapiSaya = Sapi()
# Mengisi atribut
sapiSaya.nama = "Unyil"
sapiSaya.umur = 10
sapiSaya.jumlahKaki = 4
# Memanggil method
sapiSaya.Jalan()
sapiSaya.Makan()
sapiSaya.Bobo()
Object adalah suatu instance dari class. Object memiliki data dan perilaku yang sesuai dengan class-nya.
Object dibuat dengan menggunakan kata kunci ()
. Berikut adalah contoh pembuatan object:
class Person:
# Atribut
name = ""
age = 0
# Method
def say_hello(self):
print("Hello, my name is", self.name)
# Membuat objek
person1 = Person()
person2 = Person()
Berikut adalah contoh object Person:
class Person:
# Atribut
name = ""
age = 0
# Method
def say_hello(self):
print("Hello, my name is", self.name)
# Membuat objek
person1 = Person()
person2 = Person()
# Mengisi atribut
person1.name = "John Doe"
person1.age = 20
# Memanggil method
person1.say_hello()
Access identifiers adalah kata kunci yang digunakan untuk menentukan visibilitas atribut dan method. Access identifiers terdiri dari tiga jenis, yaitu:
- Public: Atribut atau method dapat diakses dari mana saja.
- Private: Atribut atau method hanya dapat diakses dari dalam class.
- Protected: Atribut atau method hanya dapat diakses dari dalam class dan subclass.
Method getter/setter adalah method yang digunakan untuk membaca atau menulis nilai atribut. Method getter disebut juga dengan property getter, sedangkan method setter disebut juga dengan property setter.
Method getter adalah method yang digunakan untuk membaca nilai atribut. Method getter memiliki nama yang sama dengan atribut yang diaksesnya.
Berikut adalah contoh method getter:
class Person:
# Atribut
name = ""
age = 0
# Method getter
def get_name(self):
return self.name
# Membuat objek
person1 = Person()
person1.name = "John Doe"
# Membaca nilai atribut
print(person1.get_name())
Method getter/setter memiliki beberapa manfaat, antara lain:
- Menjaga integritas data: Method getter/setter dapat digunakan untuk memastikan bahwa nilai atribut hanya dapat diubah dengan cara yang benar.
- Meningkatkan kejelasan kode: Penggunaan method getter/setter dapat membuat kode lebih mudah dibaca dan dipahami.
- Meningkatkan fleksibilitas: Penggunaan method getter/setter dapat membuat kode lebih fleksibel untuk diperluas.
Encapsulation adalah teknik pemrograman yang digunakan untuk menyembunyikan data dan perilaku dari objek. Encapsulation dilakukan dengan menggunakan method getter/setter.
Manfaat Encapsulation
Encapsulation memiliki beberapa manfaat, antara lain:
- Meningkatkan keamanan: Encapsulation dapat membantu melindungi data dan perilaku objek dari akses yang tidak sah.
- Meningkatkan kejelasan kode: Encapsulation dapat membuat kode lebih mudah dibaca dan dipahami.
- Meningkatkan fleksibilitas: Encapsulation dapat membuat kode lebih fleksibel untuk diperluas.
Berikut adalah beberapa latihan soal untuk bab 5 Pemrograman Berbasis Objek:
- Buatlah class
Book
dengan atributtitle
,author
, danpages
. - Tambahkan method
get_title()
,get_author()
,get_pages()
,set_title()
,set_author()
, danset_pages()
ke dalam classBook
. - Buatlah objek
book1
dari classBook
dan isi nilai atributnya. - Membaca nilai atribut
title
,author
, danpages
dari objekbook1
. - Ubah nilai atribut
title
danpages
dari objekbook1
. - Membaca nilai atribut
title
danpages
dari objekbook1
.