|

|
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
|
| |
| PO | PLO-2 | PLO-3 | PLO-5 | PLO-9 | PLO-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 :
|
|
- Lutz, M. (2025). Learning Python: Powerful object-oriented programming (6th ed.). O’Reilly Media.
- Phillips, D. (2018). Python 3 object-oriented programming (3rd ed.). Packt Publishing.
|
|
Pendukung :
|
|
- 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. |
- Menjelaskan pengertian dan karakteristik paradigma pemrograman
- Menjelaskan konsep dasar pemrograman berorientasi objek
- 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. |
- Membuat class menggunakan Python
- Membuat instance dari class
- Mendefinisikan attribute
- Mendefinisikan method
- 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. |
- Menjelaskan fungsi constructor
- Menggunakan self dengan tepat
- Menginisialisasi attribute melalui constructor
- Membuat method yang memanipulasi state object
- 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. |
- Menjelaskan konsep encapsulation.
- Membedakan public, protected, dan private secara konseptual.
- Menerapkan property.
- Membuat validasi terhadap attribute.
- 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. |
- Menjelaskan konsep abstraction.
- Membedakan abstraction dan encapsulation.
- Menentukan karakteristik umum dari beberapa object.
- Membuat abstract class.
- 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. |
- Menjelaskan konsep inheritance.
- Menentukan hubungan parent-child class.
- Membuat subclass.
- Menggunakan attribute dan method dari parent class.
- 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 |
- Menjelaskan konsep polymorphism.
- Mengimplementasikan method overriding.
- Menjelaskan konsep overloading dalam konteks Python.
- Membedakan association, aggregation, dan composition.
- 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. |
- Menjelaskan konsep modular programming.
- Membuat module Python.
- Menggunakan import.
- 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. |
- Membedakan error dan exception.
- Mengidentifikasi jenis exception
- Menggunakan try-except.
- 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 |
- Membuka dan membaca file.
- Menulis data ke file.
- Menggunakan context manager.
- 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. |
- Mengidentifikasi object dari permasalahan.
- Menentukan class, attribute, dan method.
- Menentukan relationship antar-class.
- Membuat class diagram sederhana.
- Mengimplementasikan GUI.
- 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. |
- Merumuskan permasalahan.
- Mengidentifikasi kebutuhan pengguna.
- Menentukan class, attribute, dan method.
- Menentukan relationship antar-class
- 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. |
- Mengimplementasikan class sesuai rancangan.
- Menerapkan prinsip OOP yang relevan.
- Mengorganisasi program dalam module/package.
- Mengintegrasikan beberapa class.
- 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 |
- Mengintegrasikan seluruh komponen aplikasi.
- Mengimplementasikan exception handling.
- Melakukan pengujian fungsi aplikasi.
- Mengidentifikasi error.
- 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. |
- Mendemonstrasikan aplikasi dengan baik.
- Menjelaskan rancangan class dan relationship.
- Menjelaskan penerapan prinsip OOP Menjelaskan hasil pengujian.
- Menunjukkan pemahaman dalam konsep dan implementasi
- 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% |