Universitas Negeri Surabaya
Fakultas Matematika dan Ilmu Pengetahuan Alam
Program Studi S1 Kecerdasan Artifisial

Kode Dokumen

SEMESTER LEARNING PLAN

Course

KODE

Rumpun MataKuliah

Bobot Kredit

SEMESTER

Tanggal Penyusunan

Pemrograman Berorientasi Objek

5528303010

Mata Kuliah Wajib Program Studi

T=2

P=1

ECTS=4.77

3

24 Agustus 2026

OTORISASI

Pengembang S.P

Koordinator Rumpun matakuliah

Koordinator Program Studi




Riskyana Dewi Intan Puspitasari,M.Kom




.......................................




ELLY MATUL IMAH

Model Pembelajaran

Project Based Learning

Program Learning Outcomes (PLO)

PLO program Studi yang dibebankan pada matakuliah

PLO-2

Menunjukkan karakter tangguh, kolaboratif, adaptif, inovatif, inklusif, belajar sepanjang hayat, dan berjiwa kewirausahaan

PLO-3

Mengembangkan pemikiran logis, kritis, sistematis, dan kreatif dalam melakukan pekerjaan yang spesifik di bidang keahliannya serta sesuai dengan standar kompetensi kerja bidang yang bersangkutan

PLO-5

Menguasai konsep matematika, statistika, dan ilmu komputer yang berkaitan dengan kecerdasan artifisial, menguasai teori bidang kecerdasan artifisial secara menyeluruh

PLO-9

Mampu mengkaji kasus penerapan ilmu pengetahuan dan teknologi di bidang kecerdasan artifisial dengan memperhatikan nilai humaniora (moral, tanggung jawab sosial, dan kemanusiaa) serta menjunjung etika profesional kecerdasan artifisial, untuk menghasilkan prototipe, prosedur baku, dan kajian ilmiah dalam bentuk kerta kerja, spesifikasi desain, atau esai

PLO-12

Menguasai teori dan konsep teknologi informasi, dan kecerdasan artifisial baik dari sisi komputasi maupun manajemen informasi untuk menyelesaikan masalah kecerdasan artifisial dengan AI human-centred mindset.

Program Objectives (PO)

PO - 1

Mahasiswa mampu menjelaskan konsep, prinsip, dan karakteristik pemrograman berorientasi objek serta membedakannya dengan paradigma pemrograman lainnya.

PO - 2

Mahasiswa mampu mengimplementasikan prinsip-prinsip pemrograman berorientasi objek menggunakan Python, meliputi class, object, encapsulation, dan abstraction

PO - 3

Mahasiswa mampu mengimplementasikan prinsip-prinsip pemrograman berorientasi objek menggunakan Python, meliputi inheritance, polymorphism, dan hubungan antar-class.

PO - 4

Mahasiswa mampu merancang struktur program berorientasi objek yang modular dan terorganisasi dengan menerapkan module/package, exception handling, file handling, dan class relationship.

PO - 5

Mahasiswa mampu mengembangkan aplikasi sederhana berbasis OOP menggunakan Python dan GUI melalui proses analisis kebutuhan, perancangan, implementasi, integrasi, pengujian, dan presentasi aplikasi.

Matrik PLO-PO

 
POPLO-2PLO-3PLO-5PLO-9PLO-12
PO-1    
PO-2    
PO-3    
PO-4    
PO-5    

Matrik PO pada Kemampuan akhir tiap tahapan belajar (Sub-PO)

 
PO Minggu Ke
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
PO-1
PO-2
PO-3
PO-4
PO-5

Deskripsi Singkat Mata Kuliah

Mata kuliah ini membekali mahasiswa dengan prinsip, konsep, dan teknik pemrograman berorientasi objek (object-oriented programming/OOP) pada bahasa pemrograman Python. Mahasiswa akan mempelajari konsep kelas, objek, abstraksi (abstraction), enkapsulasi (encapsulation), pewarisan sifat (inheritance), polimorphism (polymorphism), dan komposisi (composition) dalam membangun perangkat lunak yang modular, terstruktur, dapat digunakan kembali, dan mudah dikembangkan. Dalam konteks Program Studi Kecerdasan Artifisial, OOP diarahkan agar mahasiswa mampu menggunakan konsep tersebut untuk membangun komponen perangkat lunak yang mendukung pengembangan aplikasi kecerdasan artifisial

Pustaka

Utama :

  1. Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
  2. Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.

Pendukung :

  1. McLaughlin, B., Pollice, G., & West, D. (2007). Head first object-oriented analysis and design. O’Reilly Media.

Dosen Pengampu

Riskyana Dewi Intan Puspitasari, M.Kom.

Minggu Ke-

Kemampuan akhir tiap tahapan belajar
(Sub-PO)

Penilaian

Bantuk Pembelajaran,

Metode Pembelajaran,

Penugasan Mahasiswa,

 [ Estimasi Waktu]

Materi Pembelajaran

[ Pustaka ]

Bobot Penilaian (%)

Indikator

Kriteria & Bentuk

Luring (offline)

Daring (online)

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

1

Minggu ke 1

Mahasiswa mampu menjelaskan paradigma pemrograman dan karakteristik paradigma berorientasi objek serta membandingkannya dengan paradigma pemrograman prosedural.

  1. Menjelaskan pengertian dan karakteristik paradigma pemrograman
  2. Menjelaskan konsep dasar pemrograman berorientasi objek
  3. Mengidentifikasi karakteristik OOP pada suatu program sederhana
Kriteria:

Mahasiswa mampu memahami perbedaan paradigma pemrograman dan menentukan pendekatan yang sesuai untuk menyelesaikan permasalahan komputasi sederhana.


Bentuk Penilaian :
Aktifitas Partisipasif
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Konsep OOP
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
1%

2

Minggu ke 2

Mahasiswa mampu menjelaskan konsep class, object, attribute, dan method serta hubungan di antara komponen tersebut dalam pemrograman berorientasi objek.

  1. Membuat class menggunakan Python
  2. Membuat instance dari class
  3. Mendefinisikan attribute
  4. Mendefinisikan method
  5. Mengakses attribute dan method melalui object.
Kriteria:

Ketepatan struktur class, object, attribute, dan method serta keberhasilan program dijalankan.


Bentuk Penilaian :
Aktifitas Partisipasif, Praktik / Unjuk Kerja
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Konsep class; Konsep object/instance; Struktur class Python; Attribute; Method; Instance attribute dan class attribute; Instance method; Membuat object; Mengakses attribute dan method; Pemodelan objek dari permasalahan sederhana
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
2%

3

Minggu ke 3

Mahasiswa mampu menjelaskan konsep constructor dan object lifecycle serta menerapkannya dalam proses pembuatan dan inisialisasi object.

  1. Menjelaskan fungsi constructor
  2. Menggunakan self dengan tepat
  3. Menginisialisasi attribute melalui constructor
  4. Membuat method yang memanipulasi state object
  5. Membuat object dengan parameter yang sesuai
Kriteria:

Ketepatan implementasi constructor, attribute, method, dan state object pada program.


Bentuk Penilaian :
Aktifitas Partisipasif
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Instance attribute; Class attribute; Instance method; Constructor __init__; Parameter constructor; Inisialisasi object; self Object creation; Object lifecycle secara konseptual; Pengelolaan state object
Pustaka: Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
2%

4

Minggu ke 4

Mahasiswa mampu menerapkan prinsip encapsulation melalui pengelolaan attribute dan method serta penggunaan access control dan property pada class Python.

  1. Menjelaskan konsep encapsulation.
  2. Membedakan public, protected, dan private secara konseptual.
  3. Menerapkan property.
  4. Membuat validasi terhadap attribute.
  5. Memperbaiki class agar menerapkan encapsulation.
Kriteria:

Ketepatan penerapan encapsulation dan kemampuan mengontrol akses attribute.


Bentuk Penilaian :
Praktik / Unjuk Kerja
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Konsep encapsulation; Public, protected, dan private secara konseptual; Name mangling; Getter dan setter property; Pengendalian akses attribute; Validasi data melalui property
Pustaka: Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
5%

5

Minggu ke 5

Mahasiswa mampu menerapkan konsep abstraction menggunakan abstract class dan abstract method untuk merepresentasikan karakteristik umum suatu objek.

  1. Menjelaskan konsep abstraction.
  2. Membedakan abstraction dan encapsulation.
  3. Menentukan karakteristik umum dari beberapa object.
  4. Membuat abstract class.
  5. Memperbaiki class agar menerapkan encapsulation.
Kriteria:

Ketepatan menentukan abstraksi dan implementasi abstract class.


Bentuk Penilaian :
Aktifitas Partisipasif, Praktik / Unjuk Kerja
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Konsep abstraction; Abstraction vs encapsulation; Abstract class; Abstract method; Modul abc; Implementasi abstraction dalam Python; Studi kasus abstraction
Pustaka: Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
2%

6

Minggu ke 6

Mahasiswa mampu menerapkan inheritance untuk membangun hubungan hierarkis antar-class dan menggunakan mekanisme super() dalam implementasi Python.

  1. Menjelaskan konsep inheritance.
  2. Menentukan hubungan parent-child class.
  3. Membuat subclass.
  4. Menggunakan attribute dan method dari parent class.
  5. Memperbaiki class agar menerapkan encapsulation.
Kriteria:

Ketepatan struktur inheritance dan penggunaan super()


Bentuk Penilaian :
Aktifitas Partisipasif
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Konsep inheritance; Parent/base class; Child/derived class; Single inheritance; Multilevel inheritance; Multiple inheritance secara pengantar; super(); Reuse attribute dan method
Pustaka: Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
2%

7

Minggu ke 7

Mahasiswa mampu menerapkan polymorphism dan method overriding serta menjelaskan konsep method overloading dalam konteks Python, serta menganalisis dan menentukan penggunaan association, aggregation, dan composition dalam membangun hubungan antar-class

  1. Menjelaskan konsep polymorphism.
  2. Mengimplementasikan method overriding.
  3. Menjelaskan konsep overloading dalam konteks Python.
  4. Membedakan association, aggregation, dan composition.
  5. Menentukan relationship yang sesuai berdasarkan kasus.
Kriteria:

Ketepatan implementasi polymorphism dan kemampuan menentukan jenis hubungan antar-class.


Bentuk Penilaian :
Praktik / Unjuk Kerja
Ceramah interaktif, diskusi, studi kasus, demonstrasi.
150 menit
Diskusi online
150 menit
Materi: Konsep polymorphism; Method overriding; Method overloading secara konseptual; Polymorphism pada Python; Association; Aggregation; Composition; Class relationship; Pemilihan relationship berdasarkan kebutuhan sistem
Pustaka: Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
5%

8

Minggu ke 8

Ujian Tengah Semester (UTS)

Semua materi yang telah diajarkan di pertemuan 1-7

Kriteria:

Bisa menyelesaikan soal dengan benar


Bentuk Penilaian :
Tes
Tes Tulis
100 menit
Tes Live Code
100 menit
Materi: Pertemuan 1-7
Pustaka: Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
20%

9

Minggu ke 9

Mahasiswa mampu mengorganisasi program berorientasi objek ke dalam module dan package untuk menghasilkan struktur program yang modular dan mudah dipelihara.

  1. Menjelaskan konsep modular programming.
  2. Membuat module Python.
  3. Menggunakan import.
  4. Membuat package.
Kriteria:

Keteraturan struktur program, ketepatan import, dan keberhasilan integrasi module.


Bentuk Penilaian :
Aktifitas Partisipasif
Ceramah interaktif, demonstrasi coding, studi kasus, praktikum, diskusi.
150 menit
Diskusi online
150 menit
Materi: Konsep modular programming; Module; import; Package; Struktur folder project; Pemisahan class ke dalam module; Reusability; Maintainability
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
2%

10

Minggu ke 10

Mahasiswa mampu menerapkan exception handling untuk mengidentifikasi, menangani, dan mengelola kesalahan selama eksekusi program.

  1. Membedakan error dan exception.
  2. Mengidentifikasi jenis exception
  3. Menggunakan try-except.
  4. Menggunakan raise.
Kriteria:

Ketepatan identifikasi exception dan implementasi mekanisme penanganannya.


Bentuk Penilaian :
Aktifitas Partisipasif, Praktik / Unjuk Kerja
Ceramah interaktif, demonstrasi coding, studi kasus, praktikum, diskusi.
150 menit
Diskusi online
150 menit
Materi: Error dan exception; Jenis exception; try-except; Multiple exception; else; finally raise; Custom exception; Exception handling dalam class
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
2%

11

Minggu ke 11

Mahasiswa mampu menerapkan file handling untuk membaca, menyimpan, dan mengelola data serta mengintegrasikannya dengan class dalam aplikasi OOP

  1. Membuka dan membaca file.
  2. Menulis data ke file.
  3. Menggunakan context manager.
  4. Mengolah file CSV/JSON.
Kriteria:

Ketepatan proses membaca/menulis file dan integrasinya dengan object.


Bentuk Penilaian :
Aktifitas Partisipasif
Ceramah interaktif, demonstrasi coding, studi kasus, praktikum, diskusi.
150 menit
Diskusi online
150 menit
Materi: Konsep file handling; Read dan write file; open(); Context manager; File CSV; File JSON; Serialisasi data sederhana; Integrasi file handling dengan object
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
2%

12

Minggu ke 12

Mahasiswa mampu menganalisis kebutuhan aplikasi sederhana, merancang struktur class dan relationship, serta mengintegrasikannya dengan GUI menggunakan Python.

  1. Mengidentifikasi object dari permasalahan.
  2. Menentukan class, attribute, dan method.
  3. Menentukan relationship antar-class.
  4. Membuat class diagram sederhana.
  5. Mengimplementasikan GUI.
  6. Menghubungkan event GUI dengan object.
Kriteria:

Kesesuaian rancangan class dengan kebutuhan aplikasi dan keberhasilan integrasi GUI dengan OOP


Bentuk Penilaian :
Praktik / Unjuk Kerja
Ceramah interaktif, demonstrasi coding, studi kasus, praktikum, diskusi.
150 menit
Diskusi online
150 menit
Materi: Analisis kebutuhan aplikasi; Identifikasi object; Identifikasi class, attribute, dan method; Class relationship; Class diagram sederhana; Prinsip dasar GUI; Komponen GUI; Event handling; Integrasi GUI dengan class OOP
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
5%

13

Minggu ke 13

Mahasiswa mampu menganalisis permasalahan, menentukan kebutuhan aplikasi, merancang solusi berbasis OOP, serta mempertimbangkan kebutuhan dan kepentingan pengguna dalam pengembangan project secara kolaboratif.

  1. Merumuskan permasalahan.
  2. Mengidentifikasi kebutuhan pengguna.
  3. Menentukan class, attribute, dan method.
  4. Menentukan relationship antar-class
  5. Membuat class diagram.
Kriteria:

Kesesuaian solusi dengan permasalahan, kelengkapan rancangan OOP, pertimbangan pengguna dan etika, serta pembagian tugas tim.


Bentuk Penilaian :
Penilaian Hasil Project / Penilaian Produk
Presentasi ide project, diskusi.
150 menit
Diskusi online
150 menit
Materi: Analisis kebutuhan aplikasi; Identifikasi object; Identifikasi class, attribute, dan method; Class relationship; Class diagram sederhana; Prinsip dasar GUI; Komponen GUI; Event handling; Integrasi GUI dengan class OOP
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
10%

14

Minggu ke 14

Mahasiswa mampu mengimplementasikan rancangan aplikasi ke dalam program Python berbasis OOP secara modular dan kolaboratif.

  1. Mengimplementasikan class sesuai rancangan.
  2. Menerapkan prinsip OOP yang relevan.
  3. Mengorganisasi program dalam module/package.
  4. Mengintegrasikan beberapa class.
  5. Membuat class diagram.
Kriteria:

Kesesuaian implementasi dengan desain, kualitas struktur kode, modularitas, dan kontribusi anggota tim


Bentuk Penilaian :
Penilaian Hasil Project / Penilaian Produk
Presentasi progres kemajuan project, demonstrasi coding, diskusi.
150 menit
Diskusi online
150 menit
Materi: Implementasi class, encapsulation, inheritance/composition sesuai rancangan, polymorphism bila diperlukan, module/package, file handling, integrasi antar-class.
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
10%

15

Minggu ke 15

Mahasiswa mampu mengintegrasikan GUI, file handling, dan exception handling serta melakukan pengujian dan debugging pada aplikasi berbasis OOP

  1. Mengintegrasikan seluruh komponen aplikasi.
  2. Mengimplementasikan exception handling.
  3. Melakukan pengujian fungsi aplikasi.
  4. Mengidentifikasi error.
  5. Membuat class diagram.
Kriteria:

Kesesuaian implementasi dengan desain, kualitas struktur kode, modularitas, dan kontribusi anggota tim


Bentuk Penilaian :
Penilaian Hasil Project / Penilaian Produk
Presentasi progres kemajuan project, demonstrasi coding, diskusi.
150 menit
Diskusi online
150 menit
Materi: Implementasi class, encapsulation, inheritance/composition sesuai rancangan, polymorphism bila diperlukan, module/package, file handling, integrasi antar-class.
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
10%

16

Minggu ke 16

Mahasiswa mampu mempresentasikan dan mendemonstrasikan aplikasi berbasis OOP serta menjelaskan keterkaitan antara rancangan dan implementasi OOP yang digunakan.

  1. Mendemonstrasikan aplikasi dengan baik.
  2. Menjelaskan rancangan class dan relationship.
  3. Menjelaskan penerapan prinsip OOP Menjelaskan hasil pengujian.
  4. Menunjukkan pemahaman dalam konsep dan implementasi
  5. Menunjukkan kemampuan bekerja dan berkontribusi dalam tim.
Kriteria:

Kualitas aplikasi, kesesuaian implementasi dengan desain, kemampuan presentasi dan demonstrasi, penguasaan konsep OOP, kolaborasi, serta pertimbangan human-centred dan etika.


Bentuk Penilaian :
Penilaian Hasil Project / Penilaian Produk
Presentasi hasil project, demonstrasi coding, diskusi.
150 menit
Diskusi online
150 menit
Materi: Demonstrasi aplikasi, Presentasi desain OOP, Penjelasan class dan relationship, Demonstrasi GUI dan fitur Hasil pengujian, Refleksi proses pengembangan
Pustaka: Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
20%



Rekap Persentase Evaluasi : Project Based Learning

No Evaluasi Persentase
1. Aktifitas Partisipasif 12%
2. Penilaian Hasil Project / Penilaian Produk 50%
3. Praktik / Unjuk Kerja 18%
4. Tes 20%
100%

Catatan

  1. Capaian Pembelajaran Lulusan Program Studi (PLO - Program Studi) adalah kemampuan yang dimiliki oleh setiap lulusan Program Studi yang merupakan internalisasi dari sikap, penguasaan pengetahuan dan ketrampilan sesuai dengan jenjang prodinya yang diperoleh melalui proses pembelajaran.
  2. PLO yang dibebankan pada mata kuliah adalah beberapa capaian pembelajaran lulusan program studi (CPL-Program Studi) yang digunakan untuk pembentukan/pengembangan sebuah mata kuliah yang terdiri dari aspek sikap, ketrampulan umum, ketrampilan khusus dan pengetahuan.
  3. Program Objectives (PO) adalah kemampuan yang dijabarkan secara spesifik dari PLO yang dibebankan pada mata kuliah, dan bersifat spesifik terhadap bahan kajian atau materi pembelajaran mata kuliah tersebut.
  4. Sub-PO Mata kuliah (Sub-PO) adalah kemampuan yang dijabarkan secara spesifik dari PO yang dapat diukur atau diamati dan merupakan kemampuan akhir yang direncanakan pada tiap tahap pembelajaran, dan bersifat spesifik terhadap materi pembelajaran mata kuliah tersebut.
  5. Indikator penilaian kemampuan dalam proses maupun hasil belajar mahasiswa adalah pernyataan spesifik dan terukur yang mengidentifikasi kemampuan atau kinerja hasil belajar mahasiswa yang disertai bukti-bukti.
  6. Kreteria Penilaian adalah patokan yang digunakan sebagai ukuran atau tolok ukur ketercapaian pembelajaran dalam penilaian berdasarkan indikator-indikator yang telah ditetapkan. Kreteria penilaian merupakan pedoman bagi penilai agar penilaian konsisten dan tidak bias. Kreteria dapat berupa kuantitatif ataupun kualitatif.
  7. Bentuk penilaian: tes dan non-tes.
  8. Bentuk pembelajaran: Kuliah, Responsi, Tutorial, Seminar atau yang setara, Praktikum, Praktik Studio, Praktik Bengkel, Praktik Lapangan, Penelitian, Pengabdian Kepada Masyarakat dan/atau bentuk pembelajaran lain yang setara.
  9. Metode Pembelajaran: Small Group Discussion, Role-Play & Simulation, Discovery Learning, Self-Directed Learning, Cooperative Learning, Collaborative Learning, Contextual Learning, Project Based Learning, dan metode lainnya yg setara.
  10. Materi Pembelajaran adalah rincian atau uraian dari bahan kajian yg dapat disajikan dalam bentuk beberapa pokok dan sub-pokok bahasan.
  11. Bobot penilaian adalah prosentasi penilaian terhadap setiap pencapaian sub-PO yang besarnya proposional dengan tingkat kesulitan pencapaian sub-PO tsb., dan totalnya 100%.
  12. TM=Tatap Muka, PT=Penugasan terstruktur, BM=Belajar mandiri.