Ratified November 3, 2026 — version 1; the content was frozen on that date.
ce522851 · 0d21c88dAn English version of this document has not been published. The Indonesian version is the official, signed document.
The scope of this course and where it sits in the curriculum.
Taken from the study programme's curriculum book and fixed — CPMK and Sub-CPMK cannot be changed while writing an RPKPS.
Time is allocated minute by minute and checked against the invariant of 45 hours per credit per semester.
Assignment design together with its timeline and marking criteria.
The weight of each component and the thresholds used to declare a pass.
Three consecutive signatures on the published round. Each one names the content fingerprint it signed.
The trail from drafting to ratification.
Mata kuliah Algoritma Pemrograman merupakan mata kuliah inti pada semester 1 yang membekali mahasiswa dengan dasar-dasar pemikiran algoritmik dan implementasinya dalam pemrograman. Mata kuliah ini mencakup konsep dasar algoritma, struktur kontrol, struktur data sederhana, serta pengenalan machine learning dan analisis kompleksitas. Melalui mata kuliah ini, mahasiswa diharapkan mampu menerapkan logika komputasi untuk memecahkan permasalahan sederhana hingga kompleks, sejalan dengan CPL03 dan CPL06 yang menekankan kemampuan analitis, logis, dan inovatif dalam bidang teknologi informasi. Penerapan konsep-konsep ini juga mendukung pengembangan keterampilan dalam merancang solusi efisien dan efektif untuk permasalahan computing.
Mempunyai pengetahuan matematika, computing, dan ilmu pengetahuan lain yang relevan untuk menyelesaikan permasalahan computing yang kompleks dengan pendekatan teknologi informasi.
Mampu menerapkan pemikiran logis, kritis, sistematis, dan inovatif dalam konteks pengembangan atau implementasi ilmu pengetahuan dan teknologi yang memperhatikan dan menerapkan nilai humaniora yang sesuai dengan bidang keahlian.
Setelah menyelesaikan mata kuliah Algoritma Pemrograman, mahasiswa mampu menerapkan konsep algoritma dan pemrograman untuk memecahkan permasalahan computing dengan pendekatan logis, kritis, dan sistematis.
Mampu menerapkan konsep matematika, algoritma, dan teori komputasi dalam perancangan dan pengembangan solusi untuk permasalahan computing yang kompleks.
Mahasiswa mampu menjelaskan konsep dasar algoritma dan pemrograman, termasuk tipe data, variabel, dan struktur kontrol.
Mahasiswa mampu menyusun algoritma pemecahan masalah sederhana menggunakan pseudocode dan flowchart.
Mahasiswa mampu mengimplementasikan struktur kontrol seleksi dan perulangan dalam kode program untuk menyelesaikan masalah logika.
Mahasiswa mampu menggunakan array dan string untuk mengelola data dalam program dengan efisien.
Mahasiswa mampu menerapkan fungsi/prosedur dan rekursi untuk membangun solusi modular dan efisien.
Mahasiswa mampu menerapkan konsep struktur data dasar seperti stack dan queue dalam algoritma pemrograman.
Mampu mengidentifikasi dan mengevaluasi pendekatan berbasis machine learning, data science, dan kecerdasan buatan untuk menyelesaikan tantangan komputasi yang kompleks.
Mahasiswa mampu menjelaskan peran algoritma dalam pengolahan data dan pengambilan keputusan dalam konteks AI dan data science.
Mahasiswa mampu menjelaskan konsep dasar machine learning dan jenis-jenis pembelajaran (supervised, unsupervised).
Mahasiswa mampu mengidentifikasi dan mengimplementasikan algoritma dasar machine learning seperti regresi linear dan klasifikasi sederhana.
Mahasiswa mampu melakukan analisis data sederhana (cleaning, transforming, visualizing) untuk mendukung pemrograman berbasis data.
Mampu mengidentifikasi dan menganalisis masalah dalam pengembangan teknologi informasi dengan pendekatan logis, kritis, dan berbasis data untuk menghasilkan solusi yang efektif.
Mahasiswa mampu menganalisis kompleksitas algoritma menggunakan notasi Big-O dalam konteks efisiensi program.
Mahasiswa mampu menyelesaikan masalah pemrograman dengan pendekatan logis dan strategi penyelesaian bertahap.
Mahasiswa mampu mendeteksi dan memperbaiki kesalahan dalam program (debugging dan tracing) dengan pendekatan berbasis data.
Mahasiswa mampu membandingkan solusi algoritma berdasarkan kriteria efektivitas dan efisiensi serta menyusunnya dalam laporan analitis.
Sub-CPMK
Mahasiswa mampu menjelaskan konsep dasar algoritma dan pemrograman, termasuk tipe data, variabel, dan struktur kontrol.
Method
Kuliah interaktif, diskusi kelompok, dan latihan menulis pseudocode sederhana
Time allocation
Mahasiswa diminta untuk menyusun algoritma pemecahan masalah sederhana (misal: menghitung luas bangun datar) menggunakan pseudocode dan flowchart. Tugas ini bertujuan untuk melatih kemampuan mahasiswa dalam menerjemahkan logika pemecahan masalah ke dalam bentuk algoritma yang terstruktur.
Assignment brief
1. Pilih salah satu permasalahan sederhana yang melibatkan input, proses, dan output. 2. Susun algoritma pemecahan masalah tersebut dalam bentuk pseudocode. 3. Buat flowchart yang merepresentasikan algoritma yang telah disusun. 4. Lampirkan penjelasan singkat mengenai alur algoritma yang dibuat.
Deliverable format
Dokumen PDF berisi pseudocode, flowchart, dan penjelasan algoritma. Flowchart dapat dibuat menggunakan tools seperti draw.io, Lucidchart, atau sejenisnya.
Marking criteria
Ketepatan pseudocode dalam merepresentasikan logika pemecahan masalah
30%Ketepatan flowchart dalam merepresentasikan algoritma
30%Kejelasan dan kerapihan penyajian
25%Kreativitas dalam pemilihan masalah dan solusi
15%Mahasiswa diminta untuk mengimplementasikan struktur kontrol seleksi (if-else) dan perulangan (for/while) dalam bahasa pemrograman Python untuk menyelesaikan masalah logika sederhana. Tugas ini bertujuan untuk melatih kemampuan mahasiswa dalam menerapkan struktur kontrol dalam kode program.
Assignment brief
1. Pilih salah satu permasalahan yang memerlukan penggunaan struktur kontrol seleksi dan perulangan (misal: menentukan bilangan prima, mencari nilai maksimum dalam array). 2. Implementasikan solusi dalam bahasa Python. 3. Berikan komentar pada kode untuk menjelaskan alur program. 4. Lampirkan output program untuk beberapa kasus uji.
Kuis tertulis untuk mengevaluasi pemahaman mahasiswa mengenai penggunaan array dan string dalam pemrograman. Kuis ini bertujuan untuk mengukur kemampuan mahasiswa dalam mengelola data menggunakan struktur data dasar.
Assignment brief
1. Jawab pertanyaan teoretis mengenai konsep array dan string. 2. Selesaikan soal praktis berupa implementasi sederhana penggunaan array dan string dalam Python. 3. Waktu pengerjaan: 30 menit.
Deliverable format
Mahasiswa diminta untuk mengembangkan program yang memanfaatkan fungsi, prosedur, dan rekursi untuk menyelesaikan masalah yang memerlukan pendekatan modular. Tugas ini bertujuan untuk melatih kemampuan mahasiswa dalam membangun solusi yang terstruktur dan efisien.
Assignment brief
1. Pilih permasalahan yang memerlukan penggunaan fungsi, prosedur, dan rekursi (misal: menghitung faktorial, Fibonacci, atau pencarian biner). 2. Implementasikan solusi dalam bahasa Python dengan memisahkan logika ke dalam fungsi/prosedur yang terpisah. 3. Gunakan rekursi untuk setidaknya satu bagian dari solusi. 4. Berikan dokumentasi yang menjelaskan fungsi dari setiap bagian kode. 5. Lampirkan output program untuk beberapa kasus uji.
Kuis tertulis untuk mengevaluasi pemahaman mahasiswa mengenai struktur data stack dan queue. Kuis ini bertujuan untuk mengukur kemampuan mahasiswa dalam menerapkan konsep struktur data dasar dalam algoritma.
Assignment brief
1. Jawab pertanyaan teoretis mengenai konsep stack dan queue. 2. Selesaikan soal praktis berupa implementasi sederhana stack dan queue dalam Python. 3. Waktu pengerjaan: 30 menit.
Deliverable format
Kuis tertulis untuk mengevaluasi pemahaman mahasiswa mengenai peran algoritma dalam pengolahan data dan pengambilan keputusan dalam konteks AI dan data science. Kuis ini bertujuan untuk mengukur pemahaman mahasiswa mengenai aplikasi algoritma dalam bidang yang lebih luas.
Assignment brief
1. Jawab pertanyaan teoretis mengenai peran algoritma dalam AI dan data science. 2. Berikan contoh konkret penggunaan algoritma dalam konteks tersebut. 3. Waktu pengerjaan: 20 menit.
Deliverable format
Mahasiswa diminta untuk mengimplementasikan algoritma machine learning sederhana (misal: regresi linear atau klasifikasi k-NN) menggunakan library Python seperti scikit-learn. Tugas ini bertujuan untuk melatih kemampuan mahasiswa dalam menerapkan konsep machine learning dasar.
Assignment brief
1. Pilih dataset sederhana yang sesuai untuk algoritma yang dipilih. 2. Lakukan preprocessing data (jika diperlukan). 3. Implementasikan algoritma machine learning menggunakan library Python. 4. Evaluasi performa model dengan metrik yang sesuai. 5. Lampirkan kode program, dataset, dan hasil evaluasi.
Mahasiswa diminta untuk melakukan analisis data sederhana meliputi cleaning, transforming, dan visualizing data menggunakan library Python seperti pandas dan matplotlib. Tugas ini bertujuan untuk melatih kemampuan mahasiswa dalam mempersiapkan data untuk pemrograman berbasis data.
Assignment brief
1. Pilih dataset sederhana yang memerlukan cleaning dan transforming. 2. Lakukan cleaning data (misal: menangani missing value, outlier). 3. Lakukan transforming data (misal: normalisasi, encoding). 4. Visualisasikan data menggunakan grafik yang sesuai. 5. Lampirkan kode program, dataset, dan visualisasi data.
Kuis tertulis untuk mengevaluasi pemahaman mahasiswa mengenai analisis kompleksitas algoritma menggunakan notasi Big-O. Kuis ini bertujuan untuk mengukur kemampuan mahasiswa dalam mengevaluasi efisiensi algoritma.
Assignment brief
1. Jawab pertanyaan teoretis mengenai notasi Big-O dan analisis kompleksitas. 2. Hitung kompleksitas waktu dan ruang untuk algoritma sederhana yang diberikan. 3. Waktu pengerjaan: 25 menit.
Deliverable format
Mahasiswa diminta untuk mempresentasikan analisis kompleksitas algoritma untuk solusi yang telah dikembangkan dalam tugas sebelumnya. Presentasi ini bertujuan untuk melatih kemampuan mahasiswa dalam menyampaikan analisis secara lisan dan tertulis.
Assignment brief
1. Pilih salah satu algoritma yang telah diimplementasikan dalam tugas sebelumnya. 2. Lakukan analisis kompleksitas waktu dan ruang untuk algoritma tersebut. 3. Buat slide presentasi yang menjelaskan analisis kompleksitas. 4. Presentasikan di depan kelas dengan durasi 10 menit. 5. Jawab pertanyaan dari dosen dan teman sekelas.
Mahasiswa diminta untuk mempresentasikan solusi pemrograman yang dikembangkan dengan pendekatan logis dan strategi penyelesaian bertahap. Presentasi ini bertujuan untuk melatih kemampuan mahasiswa dalam menjelaskan solusi secara sistematis.
Assignment brief
1. Pilih salah satu permasalahan pemrograman yang telah diselesaikan dengan pendekatan logis. 2. Jelaskan strategi penyelesaian bertahap yang digunakan. 3. Buat slide presentasi yang menjelaskan solusi dan strategi. 4. Presentasikan di depan kelas dengan durasi 10 menit. 5. Jawab pertanyaan dari dosen dan teman sekelas.
Pass threshold
55final mark
The minimum mark for a student to pass this course.
Course attainment
85percent
The share of students who must reach the CPMK for the course to count as successful.
Minimum attendance
80percent
The attendance required to sit the final assessment.
on behalf of the RPKPS drafting team
Mohamad Hilmy Zhafrani S.Kom., M.T.I.
Course Coordinator
September 23, 2026
Signed electronically · ce522851 · 0d21c88d
Approved by
Muhamad Yusuf S.Kom., M.Kom.
0412129501
Head of Study Programme
September 24, 2026
Signed electronically · ce522851 · 0d21c88d
Reviewed and declared compliant with Kampus standards
Dr. Tb Ai Munandar, S.Kom., M.T.
413098403
Head of Internal Quality Assurance
November 3, 2026
Signed electronically · ce522851 · 0d21c88d
Sub-CPMK
Mahasiswa mampu menyusun algoritma pemecahan masalah sederhana menggunakan pseudocode dan flowchart.
Method
Kuliah aktif, latihan terbimbing, dan presentasi kelompok
Time allocation
Assessment
Tugas Praktik
Penilaian berdasarkan ketepatan algoritma, kejelasan pseudocode/flowchart, dan kemampuan presentasi
Sub-CPMK
Mahasiswa mampu mengimplementasikan struktur kontrol seleksi dan perulangan dalam kode program untuk menyelesaikan masalah logika.
Method
Kuliah interaktif, latihan pemrograman terbimbing, dan diskusi kasus
Time allocation
Assessment
Tugas Praktik
Penilaian berdasarkan ketepatan penggunaan struktur kontrol, logika pemecahan masalah, dan kemampuan debugging
Sub-CPMK
Mahasiswa mampu menggunakan array dan string untuk mengelola data dalam program dengan efisien.
Method
Kuliah aktif, latihan pemrograman, dan studi kasus
Time allocation
Assessment
Kuis dan Kehadiran
Penilaian berdasarkan kehadiran, partisipasi aktif dalam diskusi, dan ketepatan jawaban kuis singkat
Sub-CPMK
Mahasiswa mampu menerapkan fungsi/prosedur dan rekursi untuk membangun solusi modular dan efisien.
Method
Kuliah interaktif, latihan pemrograman, dan diskusi kelompok
Time allocation
Assessment
Tugas Praktik
Penilaian berdasarkan ketepatan implementasi fungsi/prosedur, logika rekursi, dan kemampuan menjelaskan solusi
Sub-CPMK
Mahasiswa mampu menerapkan konsep struktur data dasar seperti stack dan queue dalam algoritma pemrograman.
Method
Kuliah aktif, demonstrasi, dan latihan pemrograman
Time allocation
Assessment
Kuis dan Kehadiran
Penilaian berdasarkan kehadiran, partisipasi dalam diskusi, dan ketepatan jawaban kuis singkat
Sub-CPMK
Mahasiswa mampu menjelaskan peran algoritma dalam pengolahan data dan pengambilan keputusan dalam konteks AI dan data science.
Method
Kuliah interaktif, diskusi kelompok, dan studi kasus
Time allocation
Assessment
Kuis dan Kehadiran
Penilaian berdasarkan kehadiran dan partisipasi aktif dalam diskusi
Time allocation
Sub-CPMK
Mahasiswa mampu menjelaskan konsep dasar machine learning dan jenis-jenis pembelajaran (supervised, unsupervised).
Method
Kuliah aktif, diskusi kelompok, dan presentasi singkat
Time allocation
Assessment
Tugas Praktik
Penilaian berdasarkan ketepatan analisis kasus, kejelasan presentasi, dan kualitas laporan
Sub-CPMK
Mahasiswa mampu mengidentifikasi dan mengimplementasikan algoritma dasar machine learning seperti regresi linear dan klasifikasi sederhana.
Method
Kuliah interaktif, latihan pemrograman, dan diskusi kelompok
Time allocation
Assessment
Tugas Praktik
Penilaian berdasarkan ketepatan implementasi algoritma, kualitas laporan, dan kemampuan mendiskusikan hasil
Sub-CPMK
Mahasiswa mampu melakukan analisis data sederhana (cleaning, transforming, visualizing) untuk mendukung pemrograman berbasis data.
Method
Kuliah aktif, latihan praktik, dan diskusi kelompok
Time allocation
Assessment
Kuis dan Kehadiran
Penilaian berdasarkan kehadiran, partisipasi aktif, dan ketepatan jawaban kuis singkat
Sub-CPMK
Mahasiswa mampu menganalisis kompleksitas algoritma menggunakan notasi Big-O dalam konteks efisiensi program.
Method
Kuliah interaktif, latihan analisis, dan diskusi kelompok
Time allocation
Assessment
Presentasi dan Diskusi
Penilaian berdasarkan ketepatan analisis, kejelasan presentasi, dan partisipasi dalam diskusi
Sub-CPMK
Mahasiswa mampu menyelesaikan masalah pemrograman dengan pendekatan logis dan strategi penyelesaian bertahap.
Method
Kuliah aktif, latihan pemecahan masalah, dan diskusi kelompok
Time allocation
Sub-CPMK
Mahasiswa mampu mendeteksi dan memperbaiki kesalahan dalam program (debugging dan tracing) dengan pendekatan berbasis data.
Method
Kuliah interaktif, latihan debugging, dan diskusi kelompok
Time allocation
Assessment
Presentasi dan Diskusi
Penilaian berdasarkan ketepatan identifikasi kesalahan, kualitas perbaikan kode, dan partisipasi dalam diskusi
Sub-CPMK
Mahasiswa mampu membandingkan solusi algoritma berdasarkan kriteria efektivitas dan efisiensi serta menyusunnya dalam laporan analitis.
Method
Kuliah aktif, latihan analisis, dan presentasi kelompok
Time allocation
Time allocation
Deliverable format
File Python (.py) berisi kode program beserta komentar, dan dokumen PDF berisi penjelasan singkat serta output uji coba.
Marking criteria
Ketepatan implementasi struktur kontrol seleksi
25%Ketepatan implementasi struktur kontrol perulangan
25%Kebenaran dan kelengkapan kode program
30%Kejelasan komentar dan dokumentasi
20%Lembar jawaban kuis tertulis (dapat berupa kertas atau dokumen digital).
Marking criteria
Pemahaman konsep array dan string
40%Ketepatan implementasi praktis
40%Kejelasan dan kerapihan jawaban
20%Deliverable format
File Python (.py) berisi kode program beserta dokumentasi, dan dokumen PDF berisi penjelasan solusi serta output uji coba.
Marking criteria
Pemakaian fungsi dan prosedur yang tepat
25%Implementasi rekursi yang benar
25%Kebenaran dan efisiensi solusi
30%Kualitas dokumentasi
20%Lembar jawaban kuis tertulis (dapat berupa kertas atau dokumen digital).
Marking criteria
Pemahaman konsep stack dan queue
40%Ketepatan implementasi praktis
40%Kejelasan dan kerapihan jawaban
20%Lembar jawaban kuis tertulis (dapat berupa kertas atau dokumen digital).
Marking criteria
Pemahaman peran algoritma dalam AI dan data science
50%Kejelasan dan kedalaman jawaban
30%Ketepatan waktu pengerjaan
20%Deliverable format
File Python (.py) berisi kode program, dataset dalam format CSV, dan dokumen PDF berisi laporan singkat mengenai implementasi dan evaluasi model.
Marking criteria
Ketepatan pemilihan algoritma dan dataset
20%Kebenaran implementasi algoritma
30%Kualitas preprocessing dan evaluasi
25%Kejelasan laporan dan dokumentasi
25%Deliverable format
File Python (.py) berisi kode program, dataset dalam format CSV, dan dokumen PDF berisi laporan analisis data beserta visualisasinya.
Marking criteria
Ketepatan cleaning data
25%Ketepatan transforming data
25%Kualitas visualisasi data
25%Kejelasan laporan dan dokumentasi
25%Lembar jawaban kuis tertulis (dapat berupa kertas atau dokumen digital).
Marking criteria
Pemahaman notasi Big-O
40%Ketepatan analisis kompleksitas
40%Kejelasan dan kerapihan jawaban
20%Deliverable format
Slide presentasi dalam format PPT/PDF dan rekaman presentasi (jika diperlukan).
Marking criteria
Ketepatan analisis kompleksitas
35%Kualitas slide presentasi
25%Kemampuan presentasi
25%Kemampuan menjawab pertanyaan
15%Deliverable format
Slide presentasi dalam format PPT/PDF dan rekaman presentasi (jika diperlukan).
Marking criteria
Kejelasan strategi penyelesaian
30%Kualitas slide presentasi
25%Kemampuan presentasi
25%Kemampuan menjawab pertanyaan
20%5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 20 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 20 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 20 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 40 menit
5 jam 20 menit