Skip to content

Modul 3 ‐ CPMK 0803 ‐ Function, OOP Fundamental, List Multi Dimention, Error Handling

Muhammad Sayyid Imaduddin edited this page Nov 20, 2023 · 11 revisions

Tujuan

Setelah menyelesaikan bab ini, peserta didik diharapkan dapat:

  1. Memahami konsep variabel lokal dalam pemrograman Python.
  2. Menguasai penggunaan pernyataan global untuk mengakses variabel di luar lingkup fungsi.
  3. Memahami konsep parameter wajib dan parameter opsional dalam fungsi.
  4. Menggunakan parameter tak berurut untuk memberikan nilai dengan urutan yang berbeda pada fungsi.
  5. Menguasai konsep dan implementasi fungsi rekursif dalam pemrograman Python.
  6. Menunjukkan pemahaman dalam membuat dan menggunakan fungsi dan metode melalui contoh program.
  7. Memahami dasar-dasar OOP dan menerapkan tipe data terstruktur.
  8. Mengerti perbedaan dan penggunaan list dan array.
  9. Memahami tuple, dictionary, dan cara implementasinya.
  10. Melakukan operasi aritmatika pada list/array.
  11. Mengaplikasikan perulangan pada list/array.
  12. Memahami konsep dan implementasi array multidimensi.
  13. Mengerti konsep dan penanganan exception.
  14. Paham hirarki exception dan menangani multiple exception.
  15. Menguasai penggunaan try-except untuk mengatasi error pada program.

Materi

Perintah Fungsi

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.

Definisi fungsi

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.

Contoh fungsi

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!

Tipe Void

Fungsi dapat memiliki tipe data yang berbeda, termasuk tipe data void. Fungsi dengan tipe void tidak mengembalikan nilai apa pun.

Contoh fungsi dengan tipe void

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

Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi rekursif dapat digunakan untuk menyelesaikan masalah yang dapat dipecah menjadi masalah yang lebih kecil.

Contoh Fungsi Rekursif

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

Latihan soal diberikan untuk menguji pemahaman peserta tentang materi perintah percabangan. Berikut adalah beberapa contoh soal yang mudah:

  1. Definisikan fungsi sum() yang menerima dua bilangan dan mengembalikan jumlah kedua bilangan tersebut.
  2. Definisikan fungsi average() yang menerima tiga bilangan dan mengembalikan rata-rata ketiga bilangan tersebut.
  3. Definisikan fungsi fibo() yang menerima bilangan positif N dan mengembalikan deret Fibonacci ke-N.

Konsep PBO

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 dan kekurangan PBO

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

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

Class adalah suatu template yang digunakan untuk membuat objek. Class memiliki atribut dan method.

Definisi Class

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)

Contoh Class

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

Object adalah suatu instance dari class. Object memiliki data dan perilaku yang sesuai dengan class-nya.

Pembuatan Object

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()

Contoh Object

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

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

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.

Pengertian Method Getter

Method getter adalah method yang digunakan untuk membaca nilai atribut. Method getter memiliki nama yang sama dengan atribut yang diaksesnya.

Contoh Method Getter

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())

Manfaat Method Getter/Setter

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

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.

Latihan Soal

Berikut adalah beberapa latihan soal untuk bab 5 Pemrograman Berbasis Objek:

  1. Buatlah class Book dengan atribut title, author, dan pages.
  2. Tambahkan method get_title(), get_author(), get_pages(), set_title(), set_author(), dan set_pages() ke dalam class Book.
  3. Buatlah objek book1 dari class Book dan isi nilai atributnya.
  4. Membaca nilai atribut title, author, dan pages dari objek book1.
  5. Ubah nilai atribut title dan pages dari objek book1.
  6. Membaca nilai atribut title dan pages dari objek book1.