PROGRAMMING

C Programming

16 pertemuan / 4 bulan. Silabus terstruktur dengan materi inti, latihan bertahap, evaluasi, dan sumber belajar yang dapat digunakan untuk belajar mandiri.

Download Silabus PDF
Cover C Programming

Gambaran Mata Kuliah

C Programming adalah fondasi pemrograman sistem tingkat pengantar yang menekankan model kompilasi, representasi data, control flow, modularitas, pointer, manajemen memori, file I/O, pengujian, dan praktik keamanan dasar menggunakan standar C17.

Durasi16 pertemuan / 4 bulan
Format BelajarPenjelasan, latihan, diskusi, dan review
Hasil AkhirPemahaman konsep dan penerapan terarah

Cara Pembelajaran

  1. Pemahaman konsep inti melalui penjelasan ringkas dan contoh yang relevan.
  2. Latihan bertahap untuk membangun ketelitian serta kemampuan menyelesaikan masalah.
  3. Diskusi studi kasus dan review jawaban untuk memperkuat pemahaman.
  4. Refleksi serta arahan belajar mandiri sebelum memasuki topik berikutnya.

Rencana Pembelajaran per Pertemuan

Setiap sesi mencakup materi inti, contoh penyelesaian, latihan mandiri, dan umpan balik tutor.

01

C 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.

02

Tipe 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.

03

Seleksi, 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.

04

Iterasi 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.

05

Functions 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.

06

Arrays 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.

07

Strings 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.

08

Ujian 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.

09

Pointers 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.

10

Struct, 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.

11

Dynamic 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.

12

File 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.

13

Separate 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.

14

Algoritma, 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.

15

Capstone 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.

16

Demonstrasi 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.

Komponen Evaluasi

20%Weekly programming exercises
20%Laboratory & debugging tasks
20%Midterm practical examination
40%Capstone project & defense

Catatan: Komponen evaluasi dapat disesuaikan dengan kebutuhan peserta dan format kelas.