SA251308 - Algoritma dan Pemrograman
Ganil 2025
Informasi Mata Kuliah
| Keterangan | Detail |
|---|---|
| Kode Mata Kuliah | SA251308 |
| Nama Mata Kuliah | Algoritma dan Pemrograman |
| SKS | 3 SKS (2 Teori + 1 Praktikum) |
| Semester | Ganjil 2025/2026 |
Deskripsi Mata Kuliah
Mata kuliah ini memperkenalkan mahasiswa pada konsep dasar algoritma dan pemrograman menggunakan bahasa R. Mahasiswa akan mempelajari tipe data, struktur data, alur kontrol, fungsi, serta ekosistem tidyverse untuk analisis dan manipulasi data. Pada akhir semester, mahasiswa mampu melakukan analisis data mandiri, membuat laporan reproducible dengan Quarto, dan mengelola proyek kode menggunakan GitHub. Fokus pembelajaran juga meliputi penerapan pada kasus dasar aktuaria dan sains data.
Capaian Pembelajaran Mata Kuliah (CPMK)
Setelah mengikuti mata kuliah ini, mahasiswa mampu:
- CPMK 1 — Menjelaskan konsep dasar algoritma dan pemrograman, serta memahami dan menggunakan tipe data, variabel, dan struktur data dasar di R (vektor, matriks, tibble).
- CPMK 2 — Menulis program menggunakan alur kontrol (if-else, loop) dan membuat fungsi buatan sendiri untuk otomatisasi tugas serta simulasi kasus sederhana.
- CPMK 3 — Memanipulasi, membersihkan, dan mengagresi data menggunakan ekosistem tidyverse ({dplyr}, {tidyr}, {purrr}, {forcats}) untuk analisis data.
- CPMK 4 — Mengimpor/mengekspor data dari berbagai format dan sumber, menggabungkan beberapa tabel, serta membuat program untuk kasus dasar aktuaria/keuangan (bunga majemuk, nilai sekarang, rata-rata klaim).
- CPMK 5 — Membuat laporan reproducible menggunakan Quarto dan mengelola proyek kode dengan GitHub.
Materi Pokok
- Pengantar R, RStudio, dan manajemen proyek
- Variabel, tipe data, dan operasi dasar (numerik, logika, teks, tanggal)
- Vektor, matriks, data frame, dan tibble
- Struktur kontrol: percabangan (if-else) dan perulangan (for, while)
- Fungsi buatan sendiri dan pemrograman modular
- Prinsip tidy data dan transformasi data dengan {tidyr}
- Manipulasi data dengan {dplyr}: filter, select, mutate, summarise, join
- Faktor, list, dan pemrograman fungsional dengan {purrr}
- Impor/ekspor data dan koneksi database SQL
- Aplikasi algoritma untuk kasus aktuaria/keuangan
- Pelaporan reproducible dengan Quarto dan version control dengan GitHub
Rencana Pembelajaran Semester
Keterangan bobot penilaian: Tugas harian (20%), Tugas Besar/Proyek 2× (20%), UTS (30%), UAS (30%).
| Mgg ke | Sub-CPMK (Kemampuan Akhir) | Indikator Penilaian | Kriteria & Bentuk Penilaian | Bentuk, Metode Pembelajaran & Penugasan | Materi Pembelajaran [Pustaka] | Bobot Penilaian (%) |
|---|---|---|---|---|---|---|
| 1 | Mahasiswa mampu menginstal R & RStudio, membuat proyek, mendefinisikan variabel berbagai tipe data, dan menggunakan paket {glue}. | Mendefinisikan variabel numerik, teks, dan logika; menggunakan glue() | Tugas individu / kuis | Ceramah, demonstrasi, praktikum komputer | Pengantar R, RStudio, manajemen proyek, tipe data dasar [2], [4] | 2 |
| 2 | Mahasiswa mampu menggunakan operator logika, membuat kondisi, dan mengelola data tanggal menggunakan {lubridate}. | Membuat ekspresi logika dan mengolah variabel tanggal | Tugas coding | Demonstrasi, praktikum komputer | Variabel logika, operator kondisi, variabel tanggal & {lubridate} [2], [5] | 2 |
| 3 | Mahasiswa mampu membuat dan memanipulasi vektor, mengakses elemen berdasarkan indeks/kondisi, dan menerapkan operasi statistik dasar. | Program pengolahan vektor dan fungsi statistik (sum, mean, median) | Kuis & tugas coding | Demonstrasi, praktikum komputer | Vektor: concatenation, urutan numerik, operasi statistik dasar [2], [4] | 2 |
| 4 | Mahasiswa mampu membuat matriks dan data frame, memahami perbedaan dengan tibble, dan memilih format yang tepat untuk analisis data. | Membuat dan memanipulasi matriks, data.frame, dan tibble | Tugas coding | Demonstrasi, praktikum komputer | Matriks, data.frame, tibble; perbedaan dan keunggulan masing-masing [1], [2] | 3 |
| 5 | Mahasiswa mampu membuat alur kontrol kondisional dan membuat laporan/presentasi sederhana menggunakan Quarto. | Program if-else dan dokumen Quarto sederhana | Tugas individu | Ceramah, demonstrasi, praktikum | Struktur kontrol: if, if-else, if_else(); pengantar Quarto (.qmd) [2], [5] | 3 |
| 6 | Mahasiswa mampu mengenali data yang tidak rapi, mengonversi ke format tidy, dan menggunakan operator pipe dengan efisien. | Transformasi data dengan pivot_longer/wider, separate, unite | Tugas coding | Demonstrasi, praktikum komputer | Prinsip tidy data, {tidyr}: pivot, separate, unite, nest; operator pipe |> [1], [5] | 3 |
| 7 | Mahasiswa mampu menyaring, mengurutkan, mengambil sampel, dan memanipulasi baris data menggunakan {dplyr}. | Program filter, slice, arrange pada dataset nyata | Penilaian project mini | Praktikum, kerja kelompok | {dplyr} berbasis baris: filter(), drop_na(), slice(), arrange(), distinct() [1], [5] | 5 |
| 8 | UTS | — | Ujian tertulis / praktik R | Tes tulis & coding | Materi minggu 1–7 | 30 |
| 9 | Mahasiswa mampu memilih, mengganti nama, membuat kolom baru, dan melakukan rekategorisasi variabel menggunakan {dplyr}. | Program select, mutate, case_when pada dataset | Tugas coding | Demonstrasi, praktikum komputer | {dplyr} berbasis kolom: select(), rename(), mutate(), if_else(), case_when() [1], [5] | 3 |
| 10 | Mahasiswa mampu menghitung frekuensi, mengelompokkan data, dan menghasilkan ringkasan statistik per grup. | Program agregasi data dan statistik deskriptif per grup | Kuis & tugas coding | Demonstrasi, praktikum komputer | count(), group_by(), summarise(), reframe(), across() [1], [5] | 3 |
| 11 | Mahasiswa mampu membuat dan mengontrol loop for dan while, serta memahami kapan loop diperlukan vs dihindari. | Program simulasi menggunakan loop (mis. Masalah Monty Hall) | Tugas coding | Demonstrasi, praktikum komputer | Loop: for(){}, while(){}, break, next; perbandingan efisiensi loop vs vektorisasi [2], [4] | 3 |
| 12 | Mahasiswa mampu mendefinisikan dan menggunakan fungsi buatan sendiri, memahami ruang lingkup variabel, dan mengotomatisasi tugas berulang. | Membuat fungsi konverter dan fungsi perhitungan aktuaria (BMI, bunga majemuk, nilai sekarang) | Kuis & tugas coding | Demonstrasi, praktikum komputer | Fungsi buatan sendiri: function(), argumen default, variabel lokal/global; aplikasi aktuaria dasar [2], [3] | 3 |
| 13 | Mahasiswa mampu menggabungkan beberapa tabel dan mengimpor/mengekspor data dari berbagai format file. | Program join dataset dan import/export berbagai format file | Tugas coding | Demonstrasi, praktikum komputer | Join: left/right/inner/full/semi/anti_join(); impor: .csv, .xlsx, .sav, .dta, API [1], [4] | 3 |
| 14 | Mahasiswa mampu mengelola variabel kualitatif sebagai faktor dan bekerja dengan struktur data list menggunakan {purrr}; menerapkan pada kasus aktuaria. | Program faktor, list, dan perhitungan anuitas/klaim | Penilaian project | Praktikum & presentasi kelompok | Faktor dengan {forcats}; list; pemrograman fungsional {purrr}: map(); aplikasi nilai sekarang anuitas [1], [3] | 5 |
| 15 | Mahasiswa mampu menghubungkan R dengan database SQL dan mengelola kode serta laporan menggunakan GitHub. | Membuat repositori GitHub dan mempublikasikan laporan Quarto | Tugas individu | Demonstrasi, praktikum komputer | {dbplyr}, DBI::dbConnect(); GitHub: repositori, commit, GitHub Pages; laporan Quarto [5] | 3 |
| 16 | UAS | — | Ujian tertulis / praktik R + presentasi proyek akhir | Tes tulis & coding | Materi minggu 9–15 | 30 |
Sistem Penilaian
| Komponen Penilaian | Bobot | Keterangan |
|---|---|---|
| Kehadiran & Partisipasi | 10% | Hadir minimal 80%, aktif di kelas |
| Tugas Mingguan | 20% | Latihan kode R setiap pertemuan |
| Tugas Besar / Proyek (2×) | 20% | Analisis data mandiri: deadline pertemuan 7 & 14 |
| UTS (Pertemuan 8) | 25% | Ujian praktik R — materi pertemuan 1–7 |
| UAS (Pertemuan 16) | 25% | Ujian praktik R + presentasi proyek akhir |
| Total | 100% |
Referensi
- Wickham, H., & Grolemund, G. (2023). R for Data Science (2nd ed.). O’Reilly. https://r4ds.hadley.nz/
- Wickham, H. (2019). Advanced R (2nd ed.). Chapman and Hall/CRC. https://adv-r.hadley.nz/
- Kabacoff, R. I. (2015). R in Action: Data Analysis and Graphics with R (2nd ed.). Manning Publications.
- Peng, R. D. (2020). R Programming for Data Science. Leanpub.
- Allaire, J. J., et al. (2023). Quarto Documentation. Posit. https://quarto.org/
- Matloff, N. (2011). The Art of R Programming: A Tour of Statistical Software Design. No Starch Press.
- Álvarez Liébana, J. (2025). Materi Kuliah Algoritma dan Pemrograman (Slide & Workbook). https://alpro25.netlify.app/
Catatan Tambahan
- Semua praktikum dilakukan menggunakan R versi ≥ 4.1.0 dan RStudio Desktop terbaru.
- Mahasiswa diwajibkan membuat akun GitHub sebelum pertemuan ke-15.
- Tugas besar/proyek dikumpulkan dalam bentuk dokumen Quarto (
.qmd) beserta file.htmlhasil render yang diunggah ke GitHub. - Referensi utama R for Data Science tersedia gratis secara online di https://r4ds.hadley.nz/
- Materi slide dan workbook tersedia di https://alpro25.netlify.app/