Setiap sesi mencakup materi inti, contoh penyelesaian, latihan mandiri, dan umpan balik tutor.
01C sebagai compiled language dan toolchain
Menjelaskan fase preprocessing, compilation, assembly, linking, dan menjalankan program C17. Fokus praktik: Source file, header, main(), GCC/Clang, command line, -Wall -Wextra -Wpedantic. Bukti capaian: Mengompilasi hello.c dengan warning aktif dan membedakan error compiler dari error linker.
02Tipe data, ekspresi, dan I/O terformat
Memilih tipe numerik yang sesuai serta menelusuri konversi implisit dan eksplisit. Fokus praktik: int, long, double, const, printf, scanf, fgets, cast, format specifier. Bukti capaian: Membangun kalkulator sederhana dengan validasi rentang masukan.
03Seleksi, validasi, dan defensive input
Mengimplementasikan keputusan yang lengkap dan menangani masukan tidak valid tanpa loop tak berakhir. Fokus praktik: if, else if, switch, &&, ||, !, relational operator, sentinel. Bukti capaian: Membuat validator status akademik dengan seluruh cabang diuji.
04Iterasi dan penalaran loop
Memilih for, while, atau do-while dan menelusuri invariant serta kondisi terminasi. Fokus praktik: counter, accumulator, nested loop, break, continue, off-by-one. Bukti capaian: Mengolah deret data dan melaporkan nilai minimum, maksimum, serta rata-rata.
05Functions dan decomposition
Memecah masalah menjadi fungsi kohesif dengan prototype, parameter, return value, dan scope yang benar. Fokus praktik: prototype, parameter, local scope, storage duration, return code. Bukti capaian: Memodularisasi program menu menjadi minimal empat fungsi teruji.
06Arrays dan pemrosesan data
Memproses array satu dan dua dimensi tanpa akses di luar batas. Fokus praktik: index, sizeof, traversal, matrix, bounds checking. Bukti capaian: Menganalisis nilai satu kelas dan menghasilkan statistik ringkas.
07Strings dan character arrays
Membaca serta memanipulasi string dengan aman, termasuk newline dan batas buffer. Fokus praktik: char[], null terminator, fgets, strlen, strcmp, strncpy, ctype.h. Bukti capaian: Membuat pencarian nama tanpa menggunakan input tak terbatas.
08Ujian praktikum tengah dan remediation
Mendemonstrasikan kompetensi sesi 1–7 melalui code tracing, implementasi, dan debugging. Fokus praktik: Compilation diagnostics, tracing, boundary case, test table. Bukti capaian: Menyelesaikan assessment praktikum dan rencana perbaikan individual.
09Pointers dan relasi array
Menelusuri address, dereference, pointer parameter, serta hubungan array-pointer secara aman. Fokus praktik: &, *, NULL, pointer arithmetic, pass-by-value. Bukti capaian: Menulis fungsi swap dan fungsi statistik yang mengubah output melalui pointer.
10Struct, enum, typedef, dan union
Memodelkan entitas data dengan struct serta memilih enum/typedef secara proporsional. Fokus praktik: struct, member access, enum, typedef, union limitation. Bukti capaian: Mendefinisikan record mahasiswa dan memvalidasi field-nya.
11Dynamic memory dan memory safety
Mengalokasikan, mengubah ukuran, dan membebaskan memori dengan jalur gagal yang tertangani. Fokus praktik: stack, heap, malloc, calloc, realloc, free, leak, dangling pointer, UB. Bukti capaian: Membangun daftar record dinamis dan membuktikan tidak ada akses NULL.
12File I/O dan error handling
Menyimpan dan memuat data dengan pengecekan return code, errno, dan format file. Fokus praktik: FILE, fopen, fclose, fprintf, fgets, feof pitfall, errno. Bukti capaian: Menyimpan record ke CSV sederhana dan menolak file yang tidak valid.
13Separate compilation dan build
Memisahkan interface dan implementation lalu membangun executable secara reproducible. Fokus praktik: header guard, .h, .c, preprocessor, static, Makefile target. Bukti capaian: Menyusun project multi-file dengan target build, run, dan clean.
14Algoritma, testing, dan secure coding
Membandingkan linear search dan sorting dasar serta merancang test case normal/batas/gagal. Fokus praktik: linear search, bubble/insertion sort, Big-O pengantar, assert, debugger. Bukti capaian: Menguji modul dengan test matrix dan memperbaiki warning compiler.
15Capstone development dan code review
Mengintegrasikan modul, file I/O, pointer, struct, validasi, dan dokumentasi pada mini-project. Fokus praktik: milestone, code review, version control, test evidence. Bukti capaian: Mengirim milestone project yang dapat dibangun ulang oleh tutor.
16Demonstrasi proyek dan technical defense
Mempertahankan keputusan desain dan menunjukkan perilaku program pada skenario normal serta edge case. Fokus praktik: demo, rubric, technical explanation, reflection. Bukti capaian: Mendemonstrasikan project final dan menyerahkan source, Makefile, README, serta test evidence.