Latihan kode C untuk melatih logika paling efektif kalau soalnya kecil, jelas keluarannya, dan bisa kamu cek sendiri tanpa menunggu siapa pun. Sembilan latihan berikut disusun dari yang paling ringan sampai yang mulai menguras pikiran, dan semuanya cukup ditulis dalam satu file .c. Kerjakan berurutan, jangan lompat ke nomor akhir sebelum nomor awal selesai tanpa error.
Sebelum mulai, pastikan compiler dan editor sudah siap. Kalau masih bingung pilih alat, panduan IDE C untuk pemula bisa jadi titik awal. Setiap latihan di bawah sebaiknya kamu tulis ulang dari nol, bukan menyalin dari tempat lain, karena proses mengetik dan memperbaiki error itulah bagian latihannya.
Aturan main sebelum mengerjakan latihan
Pakai satu folder khusus, misalnya latihan-c, lalu simpan setiap soal sebagai file terpisah seperti soal01.c, soal02.c, dan seterusnya. Compile dengan gcc -Wall -o soal01 soal01.c supaya peringatan dari compiler muncul. Jangan matikan flag -Wall, karena banyak kesalahan logika di C sebenarnya sudah diberi tahu lewat peringatan itu.
Untuk tiap soal, tulis dulu keluaran yang kamu harapkan di atas kode sebagai komentar. Setelah program jalan, bandingkan hasilnya dengan catatan itu. Kalau berbeda, perbaiki satu bagian kecil, compile lagi, jalankan lagi. Siklus pendek seperti ini jauh lebih cepat daripada menulis ratusan baris lalu bingung mencari kesalahannya di mana.
Latihan 1 sampai 3: pemanasan dengan angka
1. Konversi suhu dua arah
Minta pengguna memasukkan suhu Celsius, lalu tampilkan hasil konversi ke Fahrenheit dan Kelvin. Setelah itu tambahkan pilihan supaya pengguna bisa memasukkan Fahrenheit dan mendapat Celsius. Latihan ini melatih urutan operasi aritmetika dan pembacaan input dengan scanf. Perhatikan tipe data: pakai float atau double, bukan int, kalau tidak ingin hasilnya terpotong.
2. Cek bilangan prima
Buat program yang menerima satu bilangan bulat dan menyatakan apakah bilangan itu prima. Mulai dari versi paling lugas: bagi bilangan dengan semua angka dari 2 sampai n-1. Setelah benar, ubah supaya pengecekan berhenti di akar kuadrat n. Bandingkan waktu jalan kedua versi untuk angka besar seperti 1000003, dan kamu akan melihat sendiri kenapa cara kedua lebih masuk akal.
3. Faktorial dengan dan tanpa rekursi
Hitung faktorial dari sebuah bilangan menggunakan loop, lalu tulis ulang versi rekursifnya. Dua versi ini menghasilkan jawaban sama dengan cara berpikir berbeda. Kalau konsep rekursi masih terasa aneh, baca dulu penjelasan di cara menggunakan rekursi dalam bahasa C, lalu kembali ke latihan ini. Ingat bahwa faktorial tumbuh sangat cepat, jadi uji dengan angka kecil saja.
Latihan 4 sampai 6: pola dan teks
4. Segitiga bintang dengan tinggi variabel
Minta pengguna memasukkan tinggi, lalu cetak segitiga bintang dengan tinggi tersebut. Setelah versi rata kiri selesai, buat versi piramida yang bintangnya di tengah. Soal ini memaksa kamu memikirkan dua loop bersarang sekaligus: satu untuk jumlah spasi, satu untuk jumlah bintang. Kalau hasilnya miring, biasanya hitungan spasinya kurang satu.
5. Hitung huruf vokal dan konsonan
Baca satu baris teks dengan fgets, lalu hitung berapa huruf vokal, konsonan, spasi, dan angka di dalamnya. Abaikan beda huruf besar dan kecil dengan mengubah tiap karakter ke huruf kecil lebih dulu. Latihan ini membiasakan kamu memeriksa karakter satu per satu dan berhenti di karakter