100 soal pemrograman dalam C yang dapat dijalankan di Code::Blocks, mencakup looping (for), percabangan (if), dan array.
1-10: Dasar If-Else
1. Menentukan bilangan positif atau negatif.
2. Menentukan bilangan ganjil atau genap.
3. Menentukan tahun kabisat.
4. Menentukan angka terbesar dari dua bilangan.
5. Menentukan angka terbesar dari tiga bilangan.
6. Menentukan apakah seseorang bisa mengikuti ujian (usia > 17).
7. Menentukan kategori nilai (A, B, C, D, atau E) berdasarkan skor.
8. Menentukan apakah sebuah karakter adalah huruf vokal atau konsonan.
9. Menentukan apakah seseorang berhak mendapatkan diskon berdasarkan total belanja.
10. Menentukan apakah suatu angka habis dibagi 3 dan 5.
---
11-30: Dasar For Loop
11. Menampilkan bilangan dari 1 - 10.
12. Menampilkan bilangan genap dari 1 - 20.
13. Menampilkan bilangan ganjil dari 1 - 20.
14. Menghitung jumlah bilangan dari 1 - 100.
15. Menghitung jumlah bilangan genap dari 1 - 100.
16. Menampilkan deret Fibonacci (10 angka pertama).
17. Menampilkan faktorial dari angka yang dimasukkan pengguna.
18. Menampilkan tabel perkalian 1 - 10 untuk angka yang dimasukkan.
19. Menampilkan jumlah digit dari suatu angka.
20. Menampilkan jumlah angka ganjil dari 1 - 50.
21. Membalik angka yang dimasukkan oleh pengguna.
22. Menghitung jumlah digit angka yang dimasukkan.
23. Menampilkan deret angka dalam bentuk piramida.
24. Mencetak pola bintang berbentuk segitiga.
25. Menampilkan bilangan prima dalam rentang tertentu.
26. Menentukan apakah sebuah angka adalah bilangan prima.
27. Menghitung jumlah bilangan prima dalam suatu rentang.
28. Menghitung jumlah digit dari angka yang dimasukkan.
29. Menampilkan pola angka segitiga terbalik.
30. Mencetak segitiga Pascal.
---
31-50: Array Dasar
31. Menampilkan elemen array.
32. Menampilkan elemen array dalam urutan terbalik.
33. Menghitung jumlah elemen dalam array.
34. Menentukan nilai maksimum dalam array.
35. Menentukan nilai minimum dalam array.
36. Menghitung rata-rata nilai dalam array.
37. Mencari elemen tertentu dalam array.
38. Menghitung jumlah bilangan genap dalam array.
39. Menghitung jumlah bilangan ganjil dalam array.
40. Menyalin elemen array ke array lain.
41. Menampilkan array yang berisi angka negatif saja.
42. Menampilkan array yang berisi angka positif saja.
43. Menukar elemen pertama dan terakhir dari array.
44. Menggeser elemen array ke kanan.
45. Menggeser elemen array ke kiri.
46. Menentukan apakah suatu array simetris.
47. Menghapus elemen tertentu dari array.
48. Menghitung jumlah elemen array yang unik.
49. Menampilkan frekuensi kemunculan setiap elemen dalam array.
50. Membalik elemen array tanpa array tambahan.
---
51-70: Nested Loop dan Array Multidimensi
51. Mencetak matriks 3x3.
52. Menampilkan jumlah baris dan kolom matriks.
53. Menampilkan jumlah elemen pada matriks.
54. Menjumlahkan dua matriks 3x3.
55. Mengalikan dua matriks 3x3.
56. Menampilkan elemen diagonal utama matriks.
57. Menampilkan elemen diagonal sekunder matriks.
58. Menentukan apakah suatu matriks adalah matriks identitas.
59. Menghitung jumlah elemen pada tiap baris dalam matriks.
60. Menghitung jumlah elemen pada tiap kolom dalam matriks.
61. Menampilkan matriks dalam bentuk transpose.
62. Menentukan apakah matriks adalah matriks simetris.
63. Mencari nilai maksimum dalam matriks.
64. Mencari nilai minimum dalam matriks.
65. Mengubah elemen tertentu dalam matriks.
66. Menampilkan baris dengan jumlah elemen terbesar.
67. Menampilkan kolom dengan jumlah elemen terbesar.
68. Menghapus suatu baris dalam matriks.
69. Menghapus suatu kolom dalam matriks.
70. Membalik matriks secara horizontal dan vertikal.
---
71-90: Pemrograman Berbasis Fungsi
71. Membuat fungsi untuk menghitung luas persegi.
72. Membuat fungsi untuk menghitung luas segitiga.
73. Membuat fungsi untuk menghitung luas lingkaran.
74. Membuat fungsi untuk menghitung faktorial.
75. Membuat fungsi untuk menentukan bilangan prima.
76. Membuat fungsi untuk menghitung pangkat dari suatu bilangan.
77. Membuat fungsi untuk mengecek apakah angka palindrome.
78. Membuat fungsi untuk membalik angka.
79. Membuat fungsi untuk mencari bilangan terbesar dari tiga angka.
80. Membuat fungsi untuk mengecek tahun kabisat.
81. Membuat fungsi untuk mengurutkan array dengan Bubble Sort.
82. Membuat fungsi untuk mengurutkan array dengan Selection Sort.
83. Membuat fungsi untuk mencari elemen dalam array dengan Binary Search.
84. Membuat fungsi untuk mencari elemen dalam array dengan Linear Search.
85. Membuat fungsi rekursif untuk menghitung jumlah digit dalam angka.
86. Membuat fungsi rekursif untuk mencari nilai Fibonacci ke-n.
87. Membuat fungsi untuk menukar dua angka menggunakan pointer.
88. Membuat fungsi untuk membalik string.
89. Membuat fungsi untuk menghitung panjang string.
90. Membuat fungsi untuk mengecek apakah string adalah palindrome.
---
91-100: Proyek Mini
91. *Membuat kalkulator sederhana (+, -, , /).
92. Membuat program konversi suhu (Celsius ke Fahrenheit dan sebaliknya).
93. Membuat program cek password dengan batas percobaan 3 kali.
94. Membuat program game tebak angka (1-100).
95. Membuat program untuk menghitung total harga belanja dengan diskon.
96. Membuat program manajemen data mahasiswa dengan array.
97. Membuat program daftar kontak dengan struktur data.
98. Membuat program ATM sederhana dengan login dan saldo.
99. Membuat program simulasi antrian menggunakan array.
100. Membuat program pencatatan nilai mahasiswa dengan rata-rata dan ranking.
Bagian 1: If-Else (20 Soal)
1. Menentukan Bilangan Positif, Negatif, atau Nol
Soal:
Buat program yang meminta pengguna memasukkan bilangan bulat, lalu tentukan apakah bilangan tersebut positif, negatif, atau nol.
Jawaban:
#include <stdio.h>
int main() {
int num;
printf("Masukkan bilangan: ");
scanf("%d", &num);
if (num > 0)
printf("Bilangan Positif\n");
else if (num < 0)
printf("Bilangan Negatif\n");
else
printf("Bilangan Nol\n");
return 0;
}
---
2. Menentukan Bilangan Ganjil atau Genap
Soal:
Buat program yang meminta pengguna memasukkan bilangan, lalu tentukan apakah bilangan tersebut ganjil atau genap.
Jawaban:
#include <stdio.h>
int main() {
int num;
printf("Masukkan bilangan: ");
scanf("%d", &num);
if (num % 2 == 0)
printf("Bilangan Genap\n");
else
printf("Bilangan Ganjil\n");
return 0;
}
---
3. Menentukan Tahun Kabisat
Soal:
Buat program yang meminta pengguna memasukkan tahun dan tentukan apakah itu tahun kabisat atau bukan.
Jawaban:
#include <stdio.h>
int main() {
int tahun;
printf("Masukkan tahun: ");
scanf("%d", &tahun);
if ((tahun % 4 == 0 && tahun % 100 != 0) || (tahun % 400 == 0))
printf("Tahun Kabisat\n");
else
printf("Bukan Tahun Kabisat\n");
return 0;
}
---
Bagian 2: Loop (For, While) (40 Soal)
4. Menampilkan Bilangan 1 - 10 dengan For Loop
Soal:
Buat program untuk menampilkan bilangan dari 1 hingga 10 menggunakan for loop.
Jawaban:
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++)
printf("%d ", i);
return 0;
}
---
5. Menampilkan Bilangan Genap dari 1 - 20
Soal:
Buat program untuk menampilkan bilangan genap dari 1 hingga 20.
Jawaban:
#include <stdio.h>
int main() {
for (int i = 2; i <= 20; i += 2)
printf("%d ", i);
return 0;
}
---
6. Menghitung Faktorial dengan While Loop
Soal:
Buat program untuk menghitung faktorial dari suatu bilangan menggunakan while loop.
Jawaban:
#include <stdio.h>
int main() {
int num, fact = 1;
printf("Masukkan angka: ");
scanf("%d", &num);
int i = num;
while (i > 1) {
fact *= i;
i--;
}
printf("Faktorial: %d\n", fact);
return 0;
}
---
Bagian 3: Array (30 Soal)
7. Menampilkan Elemen Array
Soal:
Buat program untuk menampilkan elemen array {10, 20, 30, 40, 50}.
Jawaban:
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++)
printf("%d ", arr[i]);
return 0;
}
---
8. Mencari Nilai Maksimum dalam Array
Soal:
Buat program untuk menemukan nilai maksimum dalam array {12, 45, 67, 89, 34}.
Jawaban:
#include <stdio.h>
int main() {
int arr[] = {12, 45, 67, 89, 34}, max = arr[0];
for (int i = 1; i < 5; i++)
if (arr[i] > max)
max = arr[i];
printf("Nilai maksimum: %d\n", max);
return 0;
}
---
9. Menjumlahkan Elemen dalam Array
Soal:
Buat program untuk menghitung total jumlah elemen dalam array {5, 10, 15, 20, 25}.
Jawaban:
#include <stdio.h>
int main() {
int arr[] = {5, 10, 15, 20, 25}, sum = 0;
for (int i = 0; i < 5; i++)
sum += arr[i];
printf("Total jumlah: %d\n", sum);
return 0;
}
---
Bagian 4: Nested Loop dan Fungsi (10 Soal)
10. Mencetak Segitiga Bintang
Soal:
Buat program untuk mencetak segitiga bintang dengan tinggi 5 baris.
Jawaban:
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++)
printf("* ");
printf("\n");
}
return 0;
}
---
11. Mencetak Segitiga Pascal
Soal:
Buat program untuk mencetak segitiga Pascal dengan 5 baris.
Jawaban:
#include <stdio.h>
int faktorial(int n) {
int f = 1;
for (int i = 1; i <= n; i++)
f *= i;
return f;
}
int kombinasi(int n, int r) {
return faktorial(n) / (faktorial(r) * faktorial(n - r));
}
int main() {
int n = 5;
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++)
printf("%d ", kombinasi(i, j));
printf("\n");
}
return 0;
}
Bagian 5: Looping dan Array (Soal 12-30)
12. Menampilkan Deret Fibonacci (10 angka pertama)
#include <stdio.h>
int main() {
int a = 0, b = 1, c;
printf("%d %d ", a, b);
for (int i = 2; i < 10; i++) {
c = a + b;
printf("%d ", c);
a = b;
b = c;
}
return 0;
}
---
13. Menampilkan Bilangan Prima dari 1 - 50
#include <stdio.h>
int main() {
int i, j, isPrime;
for (i = 2; i <= 50; i++) {
isPrime = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0;
break;
}
}
if (isPrime)
printf("%d ", i);
}
return 0;
}
---
14. Menghitung Jumlah Bilangan dalam Array
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5}, sum = 0;
for (int i = 0; i < 5; i++)
sum += arr[i];
printf("Total: %d\n", sum);
return 0;
}
---
15. Mengurutkan Array dengan Bubble Sort
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int main() {
int arr[] = {5, 3, 8, 6, 2}, n = 5;
bubbleSort(arr, n);
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
return 0;
}
---
Bagian 6: String dan Pointer (Soal 31-50)
16. Menghitung Panjang String Tanpa strlen()
#include <stdio.h>
int main() {
char str[100];
int i = 0;
printf("Masukkan string: ");
gets(str);
while (str[i] != '\0')
i++;
printf("Panjang string: %d\n", i);
return 0;
}
---
17. Membalik String
#include <stdio.h>
#include <string.h>
int main() {
char str[100], temp;
int i, len;
printf("Masukkan string: ");
gets(str);
len = strlen(str);
for (i = 0; i < len / 2; i++) {
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
printf("String terbalik: %s\n", str);
return 0;
}
---
18. Menghitung Frekuensi Huruf dalam String
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch;
int i, count = 0;
printf("Masukkan string: ");
gets(str);
printf("Masukkan karakter yang ingin dihitung: ");
scanf("%c", &ch);
for (i = 0; str[i] != '\0'; i++)
if (str[i] == ch)
count++;
printf("Karakter '%c' muncul %d kali\n", ch, count);
return 0;
}
---
Bagian 7: Fungsi dan Rekursi (Soal 51-70)
19. Fungsi Rekursif untuk Faktorial
#include <stdio.h>
int faktorial(int n) {
if (n == 0)
return 1;
return n * faktorial(n - 1);
}
int main() {
int num;
printf("Masukkan angka: ");
scanf("%d", &num);
printf("Faktorial: %d\n", faktorial(num));
return 0;
}
---
20. Fungsi Rekursif untuk Fibonacci
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1)
return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n;
printf("Masukkan jumlah angka Fibonacci: ");
scanf("%d", &n);
for (int i = 0; i < n; i++)
printf("%d ", fibonacci(i));
return 0;
}
---
Bagian 8: Proyek Mini (Soal 71-100)
21. Kalkulator Sederhana
#include <stdio.h>
int main() {
char op;
double num1, num2;
printf("Masukkan operator (+, -, *, /): ");
scanf(" %c", &op);
printf("Masukkan dua angka: ");
scanf("%lf %lf", &num1, &num2);
switch (op) {
case '+': printf("Hasil: %.2lf\n", num1 + num2); break;
case '-': printf("Hasil: %.2lf\n", num1 - num2); break;
case '*': printf("Hasil: %.2lf\n", num1 * num2); break;
case '/': printf("Hasil: %.2lf\n", num1 / num2); break;
default: printf("Operator tidak valid!\n");
}
return 0;
}
---
22. Game Tebak Angka
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int angka, tebakan;
srand(time(0));
angka = rand() % 100 + 1;
printf("Tebak angka antara 1-100: ");
do {
scanf("%d", &tebakan);
if (tebakan < angka)
printf("Terlalu kecil! Coba lagi: ");
else if (tebakan > angka)
printf("Terlalu besar! Coba lagi: ");
else
printf("Selamat! Anda benar.\n");
} while (tebakan != angka);
return 0;
}
Komentar
Posting Komentar