Modul Ajar Informatika Kelas 11 SMA: Pemrograman Berorientasi Objek (OOP) dengan Python (Bab 6)

Paradigma Pemrograman Berorientasi Objek (Object-Oriented Programming/OOP) dengan Python: Class, Object, Constructor (__init__), Enkapsulasi, Pewarisan (Inheritance), Polimorfisme, Error/Exception Handling, dan Operasi File I/O.

Capaian dan tujuan pembelajaran

  • Peserta didik mampu menganalisis konsep dan keunggulan paradigma Pemrograman Berorientasi Objek (OOP).
  • Peserta didik mampu mengimplementasikan class, enkapsulasi, pewarisan, dan polimorfisme dalam kode Python.
  • Peserta didik mampu merancang aplikasi berbasis OOP yang tangguh dengan penanganan exception dan manipulasi berkas.

Materi pokok & uraian konsep pembelajaran

Pemrograman Berorientasi Objek (*Object-Oriented Programming* / OOP) merupakan paradigma rekayasa perangkat lunak modern yang menyusun kode program ke dalam modul-modul objek nyata. Objek menggabungkan atribut (*state/variabel*) dan metode (*behavior/fungsi*) ke dalam satu kesatuan terpadu.

Empat pilar utama OOP meliputi: Abstraksi (menyembunyikan detail kerumitan internal), Enkapsulasi (*data hiding* menggunakan atribut privat/proteksi), Pewarisan (*Inheritance* yang memungkinkan kelas anak mewarisi sifat kelas induk demi efisiensi kode), dan Polimorfisme (*Polymorphism* atau *method overriding*).

Penerapan sintaks Python OOP mengkaji konstruktor `__init__`, parameter `self`, penanganan galat (*Exception Handling* `try-except-finally`), serta operasi pembacaan dan penulisan berkas (*File I/O*) teks/JSON secara persisten.

Peta subtopik bahasan

  • Konsep Class, Object, dan Constructor (__init__) pada Python

    Mendefinisikan cetak biru (class), instansiasi objek, dan inisialisasi atribut dengan parameter self.

  • Pilar Enkapsulasi dan Pengamanan Atribut Objek

    Menerapkan atribut privat (__variabel), method getter-setter, dan proteksi data internal.

  • Pewarisan (Inheritance) dan Polimorfisme (Method Overriding)

    Menyusun hierarki kelas induk-anak, fungsi super(), dan overriding metode antarkelas turunan.

  • Penanganan Eksepsi (Try-Except) dan Operasi File I/O Persisten

    Mencegah program crash akibat runtime error serta membaca dan menulis berkas data .txt/.csv/json.

Istilah kunci dan glosarium

Class
Cetak biru (*blueprint*) atau templat yang mendefinisikan atribut dan metode yang akan dimiliki oleh objek instansiasinya.
Object (Objek)
Wujud nyata (*instance*) dari suatu kelas yang memiliki keadaan (*state*) spesifik dan perilaku (*behavior*).
Enkapsulasi
Prinsip pembungkusan data atribut dan metode di dalam kelas serta pembatasan akses langsung dari luar kelas (*data hiding*).
Inheritance (Pewarisan)
Mekanisme di mana sebuah kelas baru (subclass) mewarisi atribut dan metode dari kelas yang sudah ada (superclass).
Polymorphism
Kemampuan metode dengan nama yang sama untuk melakukan aksi berbeda pada kelas-kelas turunan yang berlainan (*method overriding*).

Instrumen asesmen formatif & contoh soal pembelajaran

5 butir instrumen soal pilihan ganda berbasis HOTS untuk mengukur pemahaman konsep pada bab ini. Dilengkapi kunci jawaban dan uraian pembahasan analitis.

Soal 1

Metode spesial (*constructor*) dalam bahasa Python yang otomatis dieksekusi pertama kali saat sebuah objek baru diinstansiasi dari class adalah...

  • A. __init__(self, ...)
  • B. __main__(self)
  • C. create_object()
  • D. start_instance()
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: `def __init__(self):` adalah metode konstruktor bawaan Python untuk menginisialisasi atribut instansi objek baru.

Soal 2

Cara membuat atribut privat pada kelas Python agar tidak dapat diakses atau diubah sembarangan dari luar kelas adalah dengan memberi awalan...

  • A. Dua garis bawah (double underscore), contoh: self.__saldo
  • B. Tanda pagar (hashtag), contoh: self.#saldo
  • C. Tanda seru ganda, contoh: self.!!saldo
  • D. Huruf kapital semua, contoh: self.SALDO
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Awalan double underscore `__variabel` memicu *name mangling* di Python yang memproteksi variabel sebagai atribut privat.

Soal 3

Fungsi bawaan `super()` dalam kelas turunan (subclass) Python digunakan untuk...

  • A. Memanggil metode atau konstruktor dari kelas induk (superclass)
  • B. Menghapus seluruh memori program secara paksa
  • C. Mengubah hak akses komputer menjadi administrator
  • D. Menggandakan kecepatan eksekusi prosesor
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: `super().__init__()` memanggil konstruktor atau metode kelas induk untuk memastikan inisialisasi properti induk berjalan tertib.

Soal 4

Blok kode Python yang digunakan untuk menangkap potensi galat (*runtime exception*) seperti pembagian dengan nol agar program tidak berhenti mendadak (*crash*) adalah...

  • A. try ... except ... finally
  • B. if ... elif ... else
  • C. while ... do ... loop
  • D. switch ... case ... default
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Struktur `try-except` menangkap exception pada saat eksekusi (*runtime error*) dan mengeksekusi penanganan kesalahan secara anggun.

Soal 5

Sintaks Python yang paling disarankan dan aman untuk membuka berkas teks agar tertutup otomatis setelah operasi selesai adalah...

  • A. with open('data.txt', 'r') as file:
  • B. file = open('data.txt', 'r')
  • C. read_all_data('data.txt')
  • D. import data.txt
Lihat Kunci Jawaban & Pembahasan
Kunci Jawaban: Pilihan A

Pembahasan: Pernyataan `with open(...)` bertindak sebagai *context manager* yang menjamin berkas otomatis ditutup meski terjadi galat.

Petunjuk penggunaan berkas

Setelah mengunduh berkas perangkat ajar, ikuti langkah berikut untuk menggunakannya secara optimal:

  1. Buka dokumen menggunakan Microsoft Word, Google Docs, atau LibreOffice.
  2. Sesuaikan identitas satuan pendidikan, nama guru pengampu, NIP, serta alokasi waktu kelas.
  3. Cetak instrumen asesmen atau bagikan lembar kerja (LKPD) kepada peserta didik.

Bahan ajar Informatika lainnya

  • Berpikir Komputasional

    Informatika SMP Kelas 7 · Semester 1

  • Teknologi Informasi dan Komunikasi

    Informatika SMP Kelas 7 · Semester 1

  • Sistem Komputer

    Informatika SMP Kelas 7 · Semester 1