Contoh soal dan latihan kode program bahasa C kali ini membahas cara menentukan nama hari. Latihan ini menguji pemahaman seputar kondisi if else dan switch case.
Soal Menentukan Nama Hari
Buatlah kode program dalam bahasa C yang menampilkan nama hari berdasarkan angka yang diinput oleh user.
Misalnya jika diinput angka 1, tampilkan "Senin", atau jika diinput angka 4 tampilkan "Kamis". Jika user menginput di luar angka 1-7, maka tampilkan pesan: "Pilihan tidak tersedia".
Berikut daftar nama hari:
- Senin
- Selasa
- Rabu
- Kamis
- Jumat
- Sabtu
- Minggu
Contoh hasil kode program (1):
## Program Bahasa C Menentukan Nama Hari ## =========================================== Input angka hari (1-7): 4 Kamis
Contoh hasil kode program (2):
## Program Bahasa C Menentukan Nama Hari ## =========================================== Input angka hari (1-7): 6 Sabtu
Contoh hasil kode program (3):
## Program Bahasa C Menentukan Nama Hari ## =========================================== Input angka hari (1-7): 9 Pilihan tidak tersedia
Tips Membuat Kode Program Menentukan Nama Hari
Soal ini bisa dipecahkan dengan membuat beberapa kali kondisi if-else, atau menggunakan struktur switch case. Berikut tutorial pendahuluan yang bisa diikuti:
- Pengertian Variabel Bahasa C
- Cara Penggunaan Perintah scanf
- Tipe Data Integer Bahasa C
- Tipe Data String Bahasa C
- Percabangan Kondisi IF ELSE Bahasa C
- Percabangan Kondisi Switch Case Bahasa C
Kode Program C Menentukan Nama Hari (If-Else)
Jika menggunakan struktur kondisi if-else, kode program menentukan nama hari bisa dibuat sebagai berikut:
#include <stdio.h> int main(void) { printf("## Program Bahasa C Menentukan Nama Hari ## \n"); printf("=========================================== \n\n"); int n; printf("Input angka hari (1-7): "); scanf("%d",&n); if ( n == 1) { printf("Senin"); } else if ( n == 2) { printf("Selasa"); } else if ( n == 3) { printf("Rabu"); } else if ( n == 4) { printf("Kamis"); } else if ( n == 5) { printf("Jumat"); } else if ( n == 6) { printf("Sabtu"); } else if ( n == 7) { printf("Minggu"); } else { printf("Pilihan tidak tersedia"); } printf("\n"); return 0; }
Kode program butuh satu variabel n yang akan menampung inputan angka dari user. Angka ini akan dibaca menggunakan perintah scanf("%d",&n)
di baris 11.
Kemudian antara baris 13-33 terdapat 7 kali pemeriksaan kondisi if-else. Kodenya sendiri cukup sederhana, kita hanya perlu membandingkan apakah n sama dengan 1, atau apakah n sama dengan 2, dst hingga apakah n sama dengan 7.
Jika user menginput angka selain 1-7, maka akan masuk ke blok else di baris 34. Inilah contoh kode program mencari nama hari menggunakan struktur if-else.
Kode Program Bahasa C Menentukan Nama Hari (Switch-Case)
Jika menggunakan struktur kondisi switch-case, kode program menentukan nama hari bisa dibuat sebagai berikut:
#include <stdio.h> int main(void) { printf("## Program Bahasa C Menentukan Nama Hari ## \n"); printf("=========================================== \n\n"); int n; printf("Input angka hari (1-7): "); scanf("%d",&n); switch (n) { case 1: printf("Senin"); break; case 2: printf("Selasa"); break; case 3: printf("Rabu"); break; case 4: printf("Kamis"); break; case 5: printf("Jumat"); break; case 6: printf("Sabtu"); break; case 7: printf("Minggu"); break; default : printf("Pilihan tidak tersedia"); } printf("\n"); return 0; }
Kali ini saya mengganti semua block if-else menjadi struktur switch case. Terdapat 7 kondisi atau case yang diperiksa, yakni dari case 1, case 2, dst hingga case 7. Jika ternyata user menginput angka di luar 1-7, case default di baris 36 yang akan berjalan.
Kode Program Bahasa C Menentukan Nama Hari (Bonus)
Sebagai bonus, saya ingin membuat kode program alternatif:
#include <stdio.h> int main(void) { printf("## Program Bahasa C Menentukan Nama Hari ## \n"); printf("=========================================== \n\n"); int n; char hari[10]; printf("Input angka hari (1-7): "); scanf("%d",&n); switch (n) { case 1: strcpy(hari, "Senin"); break; case 2: strcpy(hari, "Selasa"); break; case 3: strcpy(hari, "Rabu"); break; case 4: strcpy(hari, "Kamis"); break; case 5: strcpy(hari, "Jumat"); break; case 6: strcpy(hari, "Sabtu"); break; case 7: strcpy(hari, "Minggu"); break; default : printf("Pilihan tidak tersedia \n"); } if ((n >= 1) && (n <= 7)) { printf("Hari ke- %d adalah %s \n",n,hari); } return 0; }
Disini saya tetap menggunakan kondisi switch-case, akan tetapi perintah yang dijalankan pada setiap case akan menyimpan nama hari ke dalam variabel hari.
Bahasa C tidak mengizinkan penimpaan string secara langsung seperti hari = "Kamis"
, jadi kita harus menggunakan fungsi strcpy() untuk mengisi teks ke variabel hari.
Dalam pembuatan kode program sebenarnya, kita lebih banyak menggunakan teknik seperti ini. Hasil kondisi switch case biasanya tidak langsung ditampilkan, tapi disimpan terlebih dahulu ke dalam sebuah variabel dan baru diproses pada akhir kode program.
Demikian contoh kode program menentukan nama hari dalam bahasa C. Semoga bisa bermanfaat.
Kalau %d dan %s itu tipe data apa ya ?
Format %d untuk tipe data integer (angka bulat) dan %s untuk string (array cari char).
Penjelasan lebih lengkap bisa ke sini: https://www.duniailkom.com/tutorial-belajar-c-format-penulisan-printf-untuk-menampilkan-isi-variabel/