Senin, 05 Januari 2026

Tahap 11: Proyek Mini ( Selesai )

 

Tahap 11Proyek Mini ( Selesai )

Tujuan

Mengaplikasikan seluruh materi bahasa C ke dalam pemecahan masalah terstruktur melalui algoritma dan program.


1️⃣ Proyek: Program Kasir Sederhana

Algoritma

  1. Mulai

  2. Input nama barang

  3. Input harga barang

  4. Input jumlah barang

  5. Hitung total bayar = harga × jumlah

  6. Tampilkan nama barang dan total bayar

  7. Selesai


Contoh Program

#include <stdio.h> int hitungTotal(int harga, int jumlah) { return harga * jumlah; } int main() { char barang[20]; int harga, jumlah, total; printf("Nama Barang : "); scanf("%s", barang); printf("Harga : "); scanf("%d", &harga); printf("Jumlah : "); scanf("%d", &jumlah); total = hitungTotal(harga, jumlah); printf("\n=== STRUK BELANJA ===\n"); printf("Barang : %s\n", barang); printf("Total : %d\n", total); return 0; }

2️⃣ Proyek: Program Nilai Siswa

Algoritma

  1. Mulai

  2. Siapkan array nilai siswa

  3. Ulangi untuk setiap siswa:

    • Input nilai

    • Tambahkan ke total

  4. Hitung rata-rata = total ÷ jumlah siswa

  5. Tentukan grade:

    • Jika rata-rata ≥ 80 → Grade A

    • Jika rata-rata ≥ 70 → Grade B

    • Jika < 70 → Grade C

  6. Tampilkan rata-rata dan grade

  7. Selesai

Contoh Program

#include <stdio.h> int main() { int nilai[5], i, total = 0; float rata; for(i = 0; i < 5; i++) { printf("Masukkan nilai siswa %d: ", i+1); scanf("%d", &nilai[i]); total += nilai[i]; } rata = total / 5.0; printf("\nRata-rata = %.2f\n", rata); if(rata >= 80) printf("Grade A\n"); else if(rata >= 70) printf("Grade B\n"); else printf("Grade C\n"); return 0; }

3️⃣ Proyek: Program Kalkulator

Algoritma

  1. Mulai

  2. Tampilkan menu operasi (tambah, kurang, kali)

  3. Input pilihan menu

  4. Input dua bilangan

  5. Pilih operasi berdasarkan menu:

    • Jika 1 → hitung penjumlahan

    • Jika 2 → hitung pengurangan

    • Jika 3 → hitung perkalian

  6. Tampilkan hasil

  7. Selesai

Contoh Program

#include <stdio.h> int tambah(int a, int b) { return a + b; } int kurang(int a, int b) { return a - b; } int kali(int a, int b) { return a * b; } int main() { int pilih, a, b; printf("1. Tambah\n2. Kurang\n3. Kali\n"); printf("Pilih menu: "); scanf("%d", &pilih); printf("Masukkan dua angka: "); scanf("%d %d", &a, &b); switch(pilih) { case 1: printf("Hasil = %d", tambah(a, b)); break; case 2: printf("Hasil = %d", kurang(a, b)); break; case 3: printf("Hasil = %d", kali(a, b)); break; default: printf("Pilihan salah"); } return 0; }

4️⃣ Proyek: Program Daftar Hadir

Algoritma

  1. Mulai

  2. Siapkan array untuk menyimpan nama siswa

  3. Ulangi sebanyak jumlah siswa:

    • Input nama siswa

  4. Tampilkan daftar hadir siswa

  5. Selesai

Contoh Program

#include <stdio.h> int main() { char nama[5][20]; int i; for(i = 0; i < 5; i++) { printf("Masukkan nama siswa %d: ", i+1); scanf("%s", nama[i]); } printf("\n=== DAFTAR HADIR ===\n"); for(i = 0; i < 5; i++) { printf("%d. %s\n", i+1, nama[i]); } return 0; }

Ringkasan Hubungan Algoritma & Materi

MateriPenerapan
VariabelMenyimpan data
PercabanganMenentukan grade/menu
PerulanganInput & tampil data
ArrayMenyimpan banyak nilai/nama
FungsiOperasi hitung
AlgoritmaAlur logika program

Catatan untuk Pembelajaran

✔️ Algoritma ditulis sebelum coding
✔️ Membantu siswa memahami alur berpikir logis
✔️ Cocok untuk asesmen praktik & proyek akhir

Tahap 10: Fungsi Dasar (14)

 

Tahap 10: Fungsi Dasar (14)

Tujuan

Membuat program lebih terstruktur, mudah dibaca, dan mudah dikembangkan.


1. Pengertian Fungsi

Fungsi adalah blok program yang:

  • Memiliki tugas tertentu

  • Bisa dipanggil berulang kali

  • Mengurangi penulisan kode berulang

📌 Dalam C, program utama berada di fungsi main().


2. Bentuk Umum Fungsi

tipe_data nama_fungsi(parameter) { // isi fungsi }

3. Fungsi Tanpa Parameter

#include <stdio.h> void salam() { printf("Selamat belajar bahasa C\n"); } int main() { salam(); salam(); return 0; }

4. Fungsi dengan Parameter

Mengirim data ke fungsi

#include <stdio.h> void tampil(int x) { printf("Nilai = %d\n", x); } int main() { tampil(10); tampil(25); return 0; }

5. Fungsi dengan Nilai Balik (return)

Fungsi menghitung penjumlahan

#include <stdio.h> int tambah(int a, int b) { return a + b; } int main() { int hasil; hasil = tambah(5, 7); printf("Hasil = %d\n", hasil); return 0; }

📌 return berfungsi:

  • Mengembalikan nilai

  • Mengakhiri fungsi


6. Prosedur

Prosedur adalah fungsi yang:

  • Tidak mengembalikan nilai

  • Menggunakan void

#include <stdio.h> void cetakGaris() { printf("====================\n"); } int main() { cetakGaris(); printf("PROGRAM SEDERHANA\n"); cetakGaris(); return 0; }

7. Studi Kasus Sederhana

Program Luas Persegi Panjang

#include <stdio.h> int hitungLuas(int p, int l) { return p * l; } int main() { int panjang = 5, lebar = 4; printf("Luas = %d\n", hitungLuas(panjang, lebar)); return 0; }

8. Kesalahan Umum Pemula

❌ Lupa mendeklarasikan fungsi sebelum main()
❌ Tipe data return tidak sesuai
❌ Tidak menggunakan return pada fungsi non-void


9. Ringkasan

✔️ Fungsi membuat program rapi
✔️ Parameter untuk kirim data
✔️ return untuk hasil
✔️ Prosedur tidak punya nilai balik


Soal Pilihan Ganda

Materi: Fungsi Bahasa C

1.

Fungsi dalam bahasa C adalah …
A. Variabel untuk menyimpan data
B. Blok program yang memiliki tugas tertentu
C. Perintah untuk menampilkan output
D. Operator untuk perhitungan
E. Tipe data


2.

Tujuan utama penggunaan fungsi dalam program adalah …
A. Memperpanjang kode
B. Membuat program lebih lambat
C. Mengurangi penggunaan variabel
D. Membuat program lebih terstruktur dan mudah dibaca
E. Menghindari penggunaan main()


3.

Bentuk umum deklarasi fungsi yang benar adalah …
A. nama_fungsi(tipe_data) { }
B. fungsi nama_fungsi() { }
C. tipe_data nama_fungsi(parameter) { }
D. void = nama_fungsi()
E. fungsi main { }


4.

Fungsi utama yang pertama kali dijalankan dalam program C adalah …
A. start()
B. program()
C. begin()
D. main()
E. run()


5.

Perhatikan kode berikut:

void salam() { printf("Halo\n"); }

Jenis fungsi di atas adalah …
A. Fungsi dengan parameter
B. Fungsi dengan return
C. Fungsi rekursif
D. Prosedur
E. Fungsi main


6.

Jika sebuah fungsi menggunakan tipe data void, artinya …
A. Fungsi harus memiliki parameter
B. Fungsi tidak bisa dipanggil
C. Fungsi tidak mengembalikan nilai
D. Fungsi hanya bisa dipanggil satu kali
E. Fungsi tidak memiliki isi


7.

Perhatikan kode berikut:

int tambah(int a, int b) { return a + b; }

Fungsi di atas termasuk …
A. Prosedur
B. Fungsi tanpa parameter
C. Fungsi tanpa return
D. Fungsi dengan parameter dan nilai balik
E. Fungsi main


8.

Kata kunci return dalam fungsi berfungsi untuk …
A. Mengulang fungsi
B. Menghentikan program
C. Menampilkan output
D. Mengembalikan nilai dan mengakhiri fungsi
E. Memanggil fungsi lain


9.

Perhatikan potongan kode berikut:

int kali(int x, int y) { return x * y; }

Nilai yang dikembalikan oleh fungsi tersebut adalah hasil dari …
A. Penjumlahan
B. Pengurangan
C. Perkalian
D. Pembagian
E. Sisa bagi


10.

Manakah cara pemanggilan fungsi yang benar?

void tampil() { printf("Halo"); }

A. call tampil;
B. tampil;
C. tampil();
D. void tampil();
E. printf(tampil);


11.

Perhatikan kode berikut:

int kuadrat(int x) { return x * x; }

Jika dipanggil dengan kuadrat(4), maka hasilnya adalah …
A. 4
B. 8
C. 12
D. 16
E. 20


12.

Kesalahan berikut yang sering dilakukan pemula dalam penggunaan fungsi adalah …
A. Menggunakan printf
B. Menggunakan scanf
C. Lupa mendeklarasikan fungsi sebelum main()
D. Menggunakan int
E. Menggunakan return


13.

Jika sebuah fungsi bertipe int, maka fungsi tersebut …
A. Tidak boleh menggunakan return
B. Harus mengembalikan nilai bertipe int
C. Tidak boleh memiliki parameter
D. Tidak boleh dipanggil
E. Harus bernama main


14.

Manakah yang termasuk contoh prosedur?
A. int luas(int p, int l)
B. float hitung()
C. double bagi(double a, double b)
D. void cetak()
E. char huruf()


15.

Perhatikan kode berikut:

int hitung(int a, int b) { return a + b; } int main() { int hasil; hasil = hitung(3, 4); printf("%d", hasil); return 0; }

Output dari program tersebut adalah …
A. 3
B. 4
C. 7
D. 12
E. Error

Tahap 9: Array 2 Dimensi (13)

 

Tahap 9: Array 2 Dimensi (13)

Tujuan

Menyimpan data dalam bentuk tabel (baris dan kolom), seperti matriks atau nilai siswa.


1. Konsep Array 2 Dimensi

Array 2 dimensi memiliki:

  • Baris

  • Kolom

  • Indeks dimulai dari 0

📌 Bentuk umum:

tipe_data nama_array[baris][kolom];

2. Deklarasi & Inisialisasi

int nilai[2][3] = { {80, 85, 90}, {75, 88, 92} };

Ilustrasi:

80 85 90 75 88 92

3. Mengakses Elemen Array 2 Dimensi

printf("%d", nilai[1][2]); // Output: 92

4. Menampilkan Array 2 Dimensi (Output)

Menggunakan loop bersarang:

#include <stdio.h> int main() { int nilai[2][3] = { {80, 85, 90}, {75, 88, 92} }; int i, j; for(i = 0; i < 2; i++) { for(j = 0; j < 3; j++) { printf("%d ", nilai[i][j]); } printf("\n"); } return 0; }

5. Input Array 2 Dimensi

#include <stdio.h> int main() { int nilai[2][3]; int i, j; for(i = 0; i < 2; i++) { for(j = 0; j < 3; j++) { printf("Masukkan nilai [%d][%d]: ", i, j); scanf("%d", &nilai[i][j]); } } printf("\nData Nilai:\n"); for(i = 0; i < 2; i++) { for(j = 0; j < 3; j++) { printf("%d ", nilai[i][j]); } printf("\n"); } return 0; }

6. Studi Kasus Sederhana

Menghitung total nilai tiap baris

#include <stdio.h> int main() { int nilai[2][3] = { {80, 85, 90}, {75, 88, 92} }; int i, j, total; for(i = 0; i < 2; i++) { total = 0; for(j = 0; j < 3; j++) { total += nilai[i][j]; } printf("Total baris %d = %d\n", i, total); } return 0; }

7. Kesalahan Umum Pemula

❌ Salah urutan indeks [baris][kolom]
❌ Loop tidak sesuai ukuran array
❌ Lupa loop bersarang


8. Ringkasan

✔️ Array 2 dimensi = tabel data
✔️ Gunakan loop bersarang
✔️ Cocok untuk matriks, nilai siswa, jadwal


Soal Pilihan Ganda

Materi: Array 2 Dimensi – Bahasa C

1.

Array 2 dimensi dalam bahasa C digunakan untuk menyimpan data dalam bentuk …
A. Satu baris
B. Satu kolom
C. Tabel (baris dan kolom)
D. Teks
E. Pointer


2.

Bentuk umum deklarasi array 2 dimensi yang benar adalah …
A. int data{2}{3};
B. int data(2)(3);
C. int data[2][3];
D. int data<2><3>;
E. array int data[2][3];


3.

Perhatikan deklarasi berikut:

int nilai[3][4];

Artinya array tersebut memiliki …
A. 3 baris dan 4 kolom
B. 4 baris dan 3 kolom
C. 12 baris dan 1 kolom
D. 1 baris dan 12 kolom
E. 7 elemen


4.

Jika array dideklarasikan sebagai berikut:

int data[2][3] = { {10, 20, 30}, {40, 50, 60} };

Maka nilai data[1][2] adalah …
A. 10
B. 20
C. 30
D. 50
E. 60


5.

Indeks pertama array 2 dimensi di bahasa C selalu dimulai dari …
A. 1
B. -1
C. 2
D. 0
E. Bebas


6.

Untuk mengakses elemen array 2 dimensi, digunakan format …
A. array(i,j)
B. array{i}{j}
C. array[i][j]
D. array<i><j>
E. array->i->j


7.

Perhatikan kode berikut:

int nilai[2][2] = { {1, 2}, {3, 4} }; printf("%d", nilai[0][1]);

Outputnya adalah …
A. 1
B. 2
C. 3
D. 4
E. Error


8.

Untuk menampilkan seluruh isi array 2 dimensi, diperlukan …
A. Satu loop
B. Dua loop bersarang
C. Percabangan if
D. Switch case
E. Pointer


9.

Perhatikan potongan kode berikut:

for(i = 0; i < 2; i++) { for(j = 0; j < 3; j++) { printf("%d ", data[i][j]); } }

Tujuan kode tersebut adalah …
A. Menampilkan satu baris saja
B. Menampilkan satu kolom saja
C. Menampilkan seluruh elemen array 2 dimensi
D. Menginput data
E. Menghapus data


10.

Manakah yang merupakan kesalahan umum dalam penggunaan array 2 dimensi?
A. Menggunakan printf
B. Menggunakan scanf
C. Salah urutan indeks baris dan kolom
D. Menggunakan for
E. Menggunakan int


11.

Perhatikan kode berikut:

int a[2][2] = {{5, 6}, {7, 8}}; printf("%d", a[1][0]);

Outputnya adalah …
A. 5
B. 6
C. 7
D. 8
E. Error


12.

Jika array dideklarasikan sebagai berikut:

int nilai[3][3];

Jumlah total elemen array tersebut adalah …
A. 3
B. 6
C. 9
D. 12
E. 33


13.

Manakah perintah input array 2 dimensi yang benar?
A. scanf("%d", nilai[i][j]);
B. scanf("%d", &nilai[i][j]);
C. scanf("%d", &nilai[i,j]);
D. scanf("%d", nilai[i]);
E. scanf("%d", &nilai);


14.

Studi kasus yang paling cocok menggunakan array 2 dimensi adalah …
A. Menyimpan umur seseorang
B. Menyimpan satu nilai ujian
C. Menyimpan daftar belanja
D. Menyimpan tabel nilai siswa
E. Menyimpan satu karakter


15.

Perhatikan kode berikut:

int data[2][3] = { {1, 2, 3}, {4, 5, 6} }; int i, j, total = 0; for(i = 0; i < 2; i++) { for(j = 0; j < 3; j++) { total += data[i][j]; } } printf("%d", total);

Output dari program tersebut adalah …
A. 6
B. 10
C. 15
D. 18
E. 21

Tahap 8: Array Dasar (12)

 

Tahap 8: Array Dasar (12)

Tujuan

Menyimpan banyak data dengan tipe yang sama dalam satu variabel.


1. Konsep Array 1 Dimensi

Array adalah kumpulan data yang:

  • Bertipe sama

  • Memiliki indeks (dimulai dari 0)

Contoh Deklarasi Array

int nilai[5];

Artinya: array nilai mampu menyimpan 5 buah bilangan bulat.


2. Inisialisasi Array

int nilai[5] = {80, 85, 90, 75, 88};

📌 Indeks array:

nilai[0] = 80 nilai[1] = 85 nilai[2] = 90 nilai[3] = 75 nilai[4] = 88

3. Mengakses Elemen Array

Menampilkan satu elemen array

printf("%d", nilai[2]); // Output: 90

4. Menampilkan Semua Elemen Array (Output)

Menggunakan perulangan for:

#include <stdio.h> int main() { int nilai[5] = {80, 85, 90, 75, 88}; int i; for(i = 0; i < 5; i++) { printf("Nilai ke-%d = %d\n", i, nilai[i]); } return 0; }

5. Input Array dari Pengguna

#include <stdio.h> int main() { int nilai[5]; int i; for(i = 0; i < 5; i++) { printf("Masukkan nilai ke-%d: ", i); scanf("%d", &nilai[i]); } printf("\nData nilai:\n"); for(i = 0; i < 5; i++) { printf("%d ", nilai[i]); } return 0; }

6. Contoh Studi Kasus Sederhana

Menampilkan nilai di atas 80

#include <stdio.h> int main() { int nilai[5] = {70, 85, 90, 60, 88}; int i; for(i = 0; i < 5; i++) { if(nilai[i] > 80) { printf("%d ", nilai[i]); } } return 0; }

Output:

85 90 88

7. Kesalahan Umum Pemula

❌ Mengakses indeks di luar batas (nilai[5])
❌ Lupa menggunakan & saat scanf
❌ Salah memahami indeks dimulai dari 0


8. Ringkasan

✔️ Array 1 dimensi menyimpan banyak data
✔️ Indeks dimulai dari 0
✔️ Perulangan sangat membantu pengolahan array


Soal Pilihan Ganda

Materi: Array 1 Dimensi (Bahasa C)

1.

Array dalam bahasa C adalah …
A. Variabel yang hanya menyimpan 1 data
B. Kumpulan data dengan tipe berbeda
C. Kumpulan data bertipe sama
D. Kumpulan fungsi
E. Struktur kontrol


2.

Indeks pertama pada array di bahasa C dimulai dari …
A. 1
B. -1
C. 2
D. 0
E. Bebas


3.

Perhatikan deklarasi berikut:

int nilai[5];

Artinya adalah …
A. Menyimpan 5 tipe data berbeda
B. Menyimpan 5 bilangan pecahan
C. Menyimpan 5 bilangan bulat
D. Menyimpan 4 bilangan bulat
E. Menyimpan 6 bilangan bulat


4.

Manakah penulisan inisialisasi array yang benar?
A. int nilai = {1,2,3,4,5};
B. int nilai[5] = 1,2,3,4,5;
C. int nilai[5] = {1,2,3,4,5};
D. int nilai(5) = {1,2,3,4,5};
E. array nilai[5] = {1,2,3,4,5};


5.

Jika array dideklarasikan sebagai berikut:

int data[4] = {10, 20, 30, 40};

Nilai dari data[2] adalah …
A. 10
B. 20
C. 30
D. 40
E. Error


6.

Manakah perintah yang benar untuk menampilkan elemen ke-3 dari array nilai?
A. printf("%d", nilai(3));
B. printf("%d", nilai[3]);
C. printf("%d", nilai{3});
D. printf("%d", nilai<3>);
E. printf("%d", nilai);


7.

Perhatikan kode berikut:

int nilai[5] = {80, 85, 90, 75, 88}; printf("%d", nilai[0]);

Outputnya adalah …
A. 80
B. 85
C. 90
D. 75
E. 88


8.

Jika array memiliki ukuran int data[5];, maka indeks terakhirnya adalah …
A. 5
B. 4
C. 3
D. 1
E. 0


9.

Manakah perulangan yang paling sering digunakan untuk menampilkan seluruh isi array?
A. if
B. switch
C. for
D. do–while
E. break


10.

Perhatikan potongan kode berikut:

for(i = 0; i < 5; i++) { printf("%d ", nilai[i]); }

Tujuan kode tersebut adalah …
A. Menampilkan satu elemen array
B. Menampilkan indeks array
C. Menghapus isi array
D. Menampilkan semua elemen array
E. Mengurutkan array


11.

Jika pengguna ingin mengisi array menggunakan scanf, maka penulisan yang benar adalah …
A. scanf("%d", nilai[i]);
B. scanf("%d", &nilai[i]);
C. scanf("%d", nilai);
D. scanf("%d", &nilai);
E. scanf("%d", *nilai[i]);


12.

Kesalahan umum yang sering terjadi saat menggunakan array adalah …
A. Menggunakan perulangan
B. Menggunakan if
C. Mengakses indeks di luar batas
D. Menggunakan printf
E. Menyimpan angka


13.

Perhatikan kode berikut:

int data[3] = {5, 10, 15}; printf("%d", data[3]);

Apa yang terjadi?
A. Menampilkan 15
B. Menampilkan 10
C. Menampilkan 5
D. Error / perilaku tak terduga
E. Menampilkan 0


14.

Tujuan utama penggunaan array adalah …
A. Mengurangi penggunaan variabel
B. Menyimpan banyak data dengan tipe yang sama
C. Membuat program lebih lambat
D. Menghindari perulangan
E. Mengganti fungsi


15.

Perhatikan kode berikut:

int nilai[5] = {70, 85, 90, 60, 88}; for(i = 0; i < 5; i++) { if(nilai[i] > 80) { printf("%d ", nilai[i]); } }

Outputnya adalah …
A. 70 85 90 60 88
B. 85 90 88
C. 70 60
D. 90 saja
E. Tidak ada output