Skip to content

Repository files navigation

πŸš€ Belajar Bahasa C

C Level Status Project

Roadmap belajar Bahasa C dari nol sampai mampu membuat Final Project.

Belajar β†’ Praktik β†’ Error β†’ Debug β†’ Paham β†’ Build


πŸ‘‹ Selamat Datang!

Repository ini adalah catatan perjalanan belajar Bahasa C dari dasar hingga membuat sebuah project yang menggabungkan seluruh materi yang telah dipelajari.

Repository ini tidak dibuat hanya untuk menyimpan source code.

Tujuan utamanya adalah membuat sebuah alur belajar yang jelas dan terstruktur.

Tidak tahu C
    ↓
Belajar syntax dasar
    ↓
Memahami logika
    ↓
Belajar struktur data
    ↓
Belajar pointer
    ↓
Belajar file
    ↓
Menggabungkan semuanya
    ↓
πŸ† FINAL PROJECT

🎯 Tujuan Pembelajaran

Setelah menyelesaikan repository ini, diharapkan mampu memahami dan menggunakan:

  • Variable
  • Data Type
  • Input & Output
  • Operator
  • Conditional
  • Switch Case
  • Looping
  • Array
  • String
  • Function
  • Pointer
  • Structure
  • File Handling
  • Error Handling
  • Modular Programming
  • Basic Data Management

Dan yang paling penting:

Mampu memahami cara berpikir ketika membuat program menggunakan Bahasa C.


πŸ—ΊοΈ Learning Roadmap

Klik setiap pertemuan untuk masuk ke materi.

                         πŸš€ START
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 01. Pengenalan C    β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 02. Variabel        β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 03. Operator        β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 04. Percabangan     β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 05. Switch Case     β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 06. Perulangan      β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 07. Array           β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 08. String          β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 09. Function        β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 10. Pointer         β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 11. Structure       β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 12. File Handling   β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚ 13. FINAL PROJECT   β”‚
                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                            β–Ό
                       πŸ† FINISH

πŸ“š Daftar Pertemuan

🟒 Level 1 β€” Fundamental

01. Pengenalan Bahasa C

Belajar dasar-dasar Bahasa C.

Materi:

  • Apa itu C
  • Struktur program C
  • main()
  • printf()
  • #include
  • Compile & Run
  • Hello World

πŸ“– Masuk ke Pertemuan 01 β†’


02. Variabel & Tipe Data

Belajar bagaimana program menyimpan data.

Materi:

  • Variable
  • Constant
  • int
  • float
  • double
  • char
  • Input dengan scanf()

πŸ“– Masuk ke Pertemuan 02 β†’


03. Operator

Belajar bagaimana melakukan operasi terhadap data.

Materi:

  • Arithmetic Operator
  • Assignment Operator
  • Comparison Operator
  • Logical Operator
  • Increment & Decrement

πŸ“– Masuk ke Pertemuan 03 β†’


04. Percabangan

Mulai belajar membuat program yang dapat mengambil keputusan.

Materi:

  • if
  • else
  • else if
  • Nested Condition
  • Conditional Logic

πŸ“– Masuk ke Pertemuan 04 β†’


05. Switch Case

Belajar membuat pilihan berdasarkan beberapa kondisi.

Materi:

  • switch
  • case
  • break
  • default

πŸ“– Masuk ke Pertemuan 05 β†’


🟑 Level 2 β€” Logic & Data

06. Perulangan

Belajar menjalankan instruksi berulang kali.

Materi:

  • for
  • while
  • do while
  • Nested Loop
  • break
  • continue

πŸ“– Masuk ke Pertemuan 06 β†’


07. Array

Belajar menyimpan banyak data dalam satu struktur.

Materi:

  • Array 1 Dimensi
  • Array 2 Dimensi
  • Index
  • Traversing
  • Searching
  • Basic Array Processing

πŸ“– Masuk ke Pertemuan 07 β†’


08. String

Belajar mengolah data teks.

Materi:

  • String
  • Character Array
  • strlen()
  • strcpy()
  • strcmp()
  • strcat()
  • Input String

πŸ“– Masuk ke Pertemuan 08 β†’


πŸ”΅ Level 3 β€” Programming Structure

09. Function

Mulai membangun program secara modular.

Materi:

  • Function
  • Parameter
  • Return Value
  • Function Prototype
  • Scope
  • Modular Programming

πŸ“– Masuk ke Pertemuan 09 β†’


10. Pointer

Salah satu konsep paling penting dalam Bahasa C.

Materi:

  • Address
  • Pointer
  • &
  • *
  • Pointer Variable
  • Pointer sebagai Parameter
  • Hubungan Pointer dengan Array

πŸ“– Masuk ke Pertemuan 10 β†’


11. Structure

Belajar membuat tipe data yang terdiri dari beberapa informasi.

Contoh:

struct Mahasiswa
{
    char nama[50];
    int umur;
    float ipk;
};

Materi:

  • struct
  • Member
  • Array of Structure
  • Structure dengan Function
  • Structure dengan Pointer

πŸ“– Masuk ke Pertemuan 11 β†’


πŸ”΄ Level 4 β€” Data Persistence

12. File Handling

Sekarang program mulai bisa menyimpan data secara permanen.

Materi:

  • FILE *
  • fopen()
  • fclose()
  • fprintf()
  • fscanf()
  • fgets()
  • fputs()
  • fgetc()
  • fputc()
  • fread()
  • fwrite()
  • Text File
  • Binary File

πŸ“– Masuk ke Pertemuan 12 β†’


πŸ† Level 5 β€” Final Project

13. Sistem Manajemen Data Mahasiswa

Semua materi digabungkan menjadi satu project.

Fitur:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   SISTEM DATA MAHASISWA      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 1. Tambah Data                β”‚
β”‚ 2. Tampilkan Data             β”‚
β”‚ 3. Cari Mahasiswa             β”‚
β”‚ 4. Ubah Data                  β”‚
β”‚ 5. Hapus Data                 β”‚
β”‚ 6. Rata-rata IPK              β”‚
β”‚ 7. IPK Tertinggi              β”‚
β”‚ 8. Status Kelulusan           β”‚
β”‚ 9. Simpan Data                β”‚
β”‚10. Load Data                  β”‚
β”‚ 0. Keluar                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Konsep yang digunakan:

Variable
   +
Operator
   +
Conditional
   +
Switch Case
   +
Looping
   +
Array
   +
String
   +
Function
   +
Pointer
   +
Structure
   +
File Handling
        β”‚
        β–Ό
πŸ† SISTEM DATA MAHASISWA

πŸ“– Masuk ke Final Project β†’

πŸ’» Lihat Source Code Final Project β†’


πŸ“Š Progress

Pertemuan Materi Status
01 Pengenalan C βœ…
02 Variabel & Tipe Data βœ…
03 Operator βœ…
04 Percabangan βœ…
05 Switch Case βœ…
06 Perulangan βœ…
07 Array βœ…
08 String βœ…
09 Function βœ…
10 Pointer βœ…
11 Structure βœ…
12 File Handling βœ…
13 Final Project πŸ†

Progress: 13 / 13 Pertemuan β€” 100%


🧩 Struktur Repository

Repository ini disusun berdasarkan urutan pembelajaran.

belajar-bahasa-c/
β”‚
β”œβ”€β”€ README.md
β”‚
β”œβ”€β”€ pertemuan-01/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-02/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-03/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-04/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-05/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-06/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-07/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-08/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-09/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-10/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-11/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
β”œβ”€β”€ pertemuan-12/
β”‚   β”œβ”€β”€ catatan.md
β”‚   └── ...
β”‚
└── pertemuan-13/
    β”œβ”€β”€ catatan.md
    └── sistem_mahasiswa.c

πŸ› οΈ Tools yang Digunakan

Repository ini menggunakan:

Tools Keterangan
C Programming Language
GCC Compiler
VS Code Code Editor
Git Version Control
GitHub Repository & Documentation

πŸ’» Menjalankan Program

1. Pastikan GCC Terinstall

Cek:

gcc --version

Jika berhasil, akan muncul informasi versi GCC.


2. Compile Program

Masuk ke folder program:

cd pertemuan-13

Kemudian:

gcc sistem_mahasiswa.c -o sistem_mahasiswa

3. Jalankan

Windows

sistem_mahasiswa.exe

Linux / macOS

./sistem_mahasiswa

πŸ“ Data File

Final Project menggunakan:

data_mahasiswa.txt

Format penyimpanan:

NIM|Nama|Jurusan|IPK

Contoh:

23123456|Ilham Firmansyah|Informatika|3.85
23123457|Budi|Sistem Informasi|3.70
23123458|Andi|Teknik Komputer|3.90

File ini digunakan agar data tetap tersedia meskipun program ditutup.


🧠 Cara Belajar Repository Ini

Jangan gunakan repository ini hanya sebagai tempat copy-paste.

Gunakan pola:

πŸ“– Baca Materi
      ↓
⌨️ Ketik Source Code
      ↓
▢️ Jalankan
      ↓
πŸ’₯ Temukan Error
      ↓
πŸ”Ž Cari Penyebab
      ↓
πŸ› οΈ Perbaiki
      ↓
πŸ§ͺ Modifikasi
      ↓
🧠 Pahami

Karena:

Programming bukan tentang siapa yang paling banyak menghafal syntax.

Programming adalah tentang kemampuan memahami masalah dan menemukan solusi.


πŸ§ͺ Challenge

Setelah menyelesaikan seluruh materi, coba modifikasi Final Project.

Beberapa ide:

Challenge 01

Tambahkan fitur:

Sort Mahasiswa

Berdasarkan:

  • Nama
  • NIM
  • IPK

Challenge 02

Tambahkan:

Filter Mahasiswa

Contoh:

Tampilkan mahasiswa dengan IPK >= 3.50

Challenge 03

Tambahkan validasi:

NIM tidak boleh sama

Challenge 04

Tambahkan:

Jumlah mahasiswa LULUS
Jumlah mahasiswa TIDAK LULUS

Challenge 05 πŸ”₯

Buat sistem login sederhana sebelum masuk ke menu utama.


πŸ—οΈ Konsep yang Sudah Dikuasai

Setelah menyelesaikan roadmap ini, kita sudah mengenal:

                    C Programming
                         β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚                 β”‚                 β”‚
    Fundamental        Logic             Data
       β”‚                 β”‚                 β”‚
 Variable             If / Else          Array
 Data Type            Switch             String
 Input / Output       Loop               Structure
       β”‚                 β”‚                 β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
                      Function
                         β”‚
                       Pointer
                         β”‚
                    File Handling
                         β”‚
                         β–Ό
                  πŸ† FINAL PROJECT

πŸš€ Setelah Ini Belajar Apa?

Repository ini berfokus pada fundamental C.

Setelah memahami materi di sini, pembelajaran dapat dilanjutkan ke topik yang lebih dalam seperti:

Advanced C
    β”‚
    β”œβ”€β”€ Dynamic Memory Allocation
    β”‚
    β”œβ”€β”€ malloc()
    β”œβ”€β”€ calloc()
    β”œβ”€β”€ realloc()
    β”œβ”€β”€ free()
    β”‚
    β”œβ”€β”€ Advanced Pointer
    β”‚
    β”œβ”€β”€ Pointer to Function
    β”‚
    β”œβ”€β”€ Linked List
    β”‚
    β”œβ”€β”€ Stack
    β”‚
    β”œβ”€β”€ Queue
    β”‚
    β”œβ”€β”€ Tree
    β”‚
    β”œβ”€β”€ Hash Table
    β”‚
    └── Data Structure & Algorithm

Kemudian dapat dilanjutkan ke:

C
 ↓
Data Structure
 ↓
Algorithm
 ↓
Operating System
 ↓
Networking
 ↓
Embedded System
 ↓
Systems Programming

πŸ“Œ Philosophy

Repository ini dibangun dengan satu prinsip sederhana:

Don't just memorize.
Understand.

Atau dalam versi perjalanan belajar:

Belum bisa
    ↓
Coba
    ↓
Error
    ↓
Penasaran
    ↓
Debug
    ↓
Mengerti
    ↓
Bisa
    ↓
Bikin sendiri

Karena error bukan tanda bahwa kita gagal.

Error adalah bagian dari proses belajar programming.


🏁 Learning Journey

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        START LEARNING       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
               β–Ό
       πŸ“š Fundamental C
               β”‚
               β–Ό
       🧠 Programming Logic
               β”‚
               β–Ό
       πŸ“¦ Data Structures
               β”‚
               β–Ό
       βš™οΈ Function & Pointer
               β”‚
               β–Ό
       πŸ’Ύ File Handling
               β”‚
               β–Ό
       πŸ”₯ Combine Everything
               β”‚
               β–Ό
       πŸ† FINAL PROJECT
               β”‚
               β–Ό
       πŸŽ“ FUNDAMENTAL C DONE

πŸŽ“ Final Result

Setelah menyelesaikan seluruh roadmap:

I started with:

"Hello World"

and ended with:

"Data Management System"

πŸ”₯ Dari program sederhana:

printf("Hello World");

sampai program yang memiliki:

βœ” Data Structure
βœ” Function
βœ” Pointer
βœ” Searching
βœ” Updating
βœ” Deleting
βœ” Calculation
βœ” File Storage
βœ” Data Loading

⭐ Repository Goals

  • Memahami dasar Bahasa C
  • Memahami programming logic
  • Memahami data structure dasar
  • Memahami function
  • Memahami pointer
  • Memahami structure
  • Memahami file handling
  • Membuat Final Project
  • Menyusun dokumentasi pembelajaran

🀝 Contributions

Repository ini merupakan repository pembelajaran.

Jika menemukan:

  • Typo
  • Kesalahan kode
  • Penjelasan yang kurang tepat
  • Bug
  • Improvement

Silakan membuat:

Issue

atau:

Pull Request

Semua feedback sangat dihargai untuk meningkatkan kualitas repository.


πŸ“œ License

Repository ini dibuat untuk tujuan pembelajaran.

Silakan digunakan sebagai referensi untuk belajar Bahasa C.


πŸ‘¨β€πŸ’» Learning Status

╔══════════════════════════════════════╗
β•‘                                      β•‘
β•‘       C LEARNING JOURNEY             β•‘
β•‘                                      β•‘
β•‘       13 / 13 MEETINGS               β•‘
β•‘                                      β•‘
β•‘       β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 100%      β•‘
β•‘                                      β•‘
β•‘       πŸ† FINAL PROJECT COMPLETED     β•‘
β•‘                                      β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸš€ END OF ROADMAP

Terima kasih sudah mengikuti perjalanan belajar Bahasa C ini.

Perjalanan belum benar-benar selesai.

Ini baru:

        FUNDAMENTAL
             ↓
       STRONG FOUNDATION
             ↓
        NEXT LEVEL

Keep coding. Keep debugging. Keep learning.

Code β†’ Break β†’ Debug β†’ Understand β†’ Build.


πŸ”₯ Happy Coding with C! πŸ”₯

printf("Keep learning si Gantengg!");


πŸ‘¨β€πŸ’» Author

Ilham Firmansyah

Developer & Computer Science Learner.

Repository ini merupakan dokumentasi perjalanan belajar Bahasa C dari dasar hingga Final Project.

πŸ“– Lihat Author Profile β†’

πŸ“œ MIT License β†’


πŸ“„ License

This project is licensed under the MIT License.

See the LICENSE file for details.

About

Roadmap belajar Bahasa C dari dasar hingga intermediate, lengkap dengan catatan, contoh source code, latihan, dan final project. Cocok untuk pemula yang ingin belajar C secara terstruktur.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages