Lompat ke konten

B.3 · Pemrograman berorientasi objek

International Baccalaureate · IB Diploma · Computer Science · SL · Topik 7

7.1

Cakupan dan prasyarat

Fokus SL yang didukung. Target penilaian pertama 2027; PDF resmi mengembalikan 403; brief perolehan lama adalah penilaian akhir 2026. Panduan, persyaratan penilaian, dan praktis lainnya tetap mempertahankan catatan yang tercatat.

Prasyarat: baca kuantitas dan satuan yang disebutkan, gunakan aritmatika, dan kondisi model di bawah ini. Setiap pelajaran mengembangkan metodenya sendiri sebelum transfer mandiri.

Ini adalah contoh pengajaran asli atau fiksi eksplisit, bukan pengukuran aktual atau penyelidikan pembelajaran yang selesai dan dinilai.

7.2

Objek: keadaan, perilaku, dan antarmuka

Apa yang akan menjelaskan observasi ini?

  • Dua objek model rekening bank dapat merespons operasi deposit yang sama sementara memiliki saldo yang berbeda.
  • Mulailah dengan prediksi. Nyatakan besaran atau fitur apa yang akan Anda bandingkan, lalu tentukan bukti apa yang dapat membedakan dua penjelasan.

Bangun modelnya

  • Sebuah kelas mendefinisikan tipe dengan keadaan dan perilaku. Sebuah objek adalah instans. Enkapsulasi mengontrol akses melalui antarmuka agar operasi dapat mempertahankan invarian. Pewarisan memodelkan hubungan tipe yang sesuai; komposisi memodelkan objek yang mengandung atau menggunakan objek lain.
  • enkapsulasi: Mengontrol akses ke status melalui antarmuka; instance: Objek individu dari sebuah kelas.
Objek: keadaan, tingkah laku dan antaramuka: rajah kes latihan asal

Pilih bukti yang dapat mengujinya

  • Panggilan kaedah bertindak ke atas satu实例 tertentu. Perubahan keadaan harus memenuhi pra-syarat dan pasca-syarat. Polimorfisme membolehkan kod menggunakan antaramuka bersama dengan implementasi berbeza apabila kontrak dihormati.
  • Terapkan model akaun atau inventori sintetik yang kecil. Uji dua instance bebas, tolak operasi tidak sah dan nilai sempadan. Jauhkan model ini daripada akaun kewangan sebenar dan kelayakan akses.

Bekerja dari kuantitas yang diketahui

  • Nyatakan nilai yang diketahui dan unitnya. Pilih hubungan kerana asumsinya sesuai dengan kes ini, kemudian susun semula sebelum menggantikan.
  • Diketahui: objek A dimulai pada 40 unit dan menerima 15; objek B dimulai pada 20 dan menerima 5. Saldo akhir adalah 55 dan 25. Jumlah totalnya adalah 80, namun saldo objek individu mana pun bukan 80.

Contoh:

Satu instance bermula pada 12 unit, menambah 8 dan menyingkirkan 3. Cari nilainya yang akhir. Gunakan urutan yang sama: kuantiti diketahui → model → hubungan → substitusi → unit dan tafsiran.


Periksa kesimpulan dan batasannya

  • Satu kelas bukan perkara yang sama dengan satu instance. Pewarisan tidak secara automatik lebih baik daripada komposisi. Menyembunyikan medan saja tidak membuktikan bahawa semua operasi mengekalkan keadaan yang sah.
  • Kembali ke pengamatan awal. Jelaskan apa hasil tersebut mendukung, kondisi apa yang diasumsikannya, dan satu cara untuk menguji penjelasan saingan.

Peringatan:

Dua instance bagi satu kelas mesti selalu berkongsi satu baki. Klaim ini adalah salah: Satu kelas bukan perkara yang sama dengan satu instance. Pewarisan tidak secara automatik lebih baik daripada komposisi. Menyembunyikan medan saja tidak membuktikan bahawa semua operasi mengekalkan keadaan yang sah.

Kunci:

Objek: keadaan, tingkah laku dan antaramuka: Panggilan kaedah bertindak ke atas satu instance tertentu. Perubahan keadaan harus memenuhi pra-syarat dan pasca-syarat. Polimorfisme membolehkan kod menggunakan antaramuka bersama dengan implementasi berbeza apabila kontrak dihormati.

Jejak dan batas dapat dijalankan

class Account:
    def __init__(self, balance):
        self.balance = balance
    def withdraw(self, amount):
        if amount < 0 or amount > self.balance:
            return False
        self.balance -= amount
        return True
a, b = Account(15), Account(20)
print(a.withdraw(30), a.balance, b.balance)
print(a.withdraw(15), a.balance, b.balance)

Output yang diharapkan:

False 15 20
True 0 20

Penolakan terjadi sebelum mutasi. Dengan saldo awal nonnegatif, penarikan dana yang divalidasi menjaga balance≥0. Kelas pengajaran kecil ini mengekspos atribut; desain produksi harus mengendalikan semua jalur mutasi, bukan berasumsi bahwa metode saja menerapkan enkapsulasi.

Kosa kata Latih
English Bahasa Indonesia
instance/ˈɪnstəns/ instansi
encapsulation/ɪnˌkæpsjʊˈleɪʃn/ pengkapsulan

Topik lain dalam International Baccalaureate · IB Diploma · Computer Science · SL

Masuk atau buat akun

IGCSE, A-Level & AP