









Dear Kanjeng Pembaca sekalian,… masih ada tugas bagi para mahasiwa… kali ini mendapatkan soal dari kelas reguler … dimana case nya untuk menerjemahkan bilangan Romawi 2 digit … menjadi bilangan desimal …!!! So ini menarik untuk disimak… bagaimana kita membikin program,… dimana karakteristik nya adalah jika dikiri lebih kecil… misalnya IX maka harus tercetak angka 9, demikian juga ketika XI maka tercetak angka 11 …!!! Case study nya adalah sebagaimana gambar dibawah ini …!!!
Kembali yang harus dilakukan adalah pertama menganalisa input data dan terkait membuat validasinya … so ini penting banget dalam membikin logik …. yuuuk kita bahas disini …!!!
Pertama adalah jumlah karakter hanya 2 digit / karakter… gak boleh kurang dan gak boleh lebih … jika kondisi ini tidak terpenuhi maka disebut ‘Data invalid’ …!!! Kemudian jika sudah sesuai 2 digit / karakter… maka variable P hanya terdiri dari I, V, X, L dan C … demikian juga varible Q juga terdiri dari I, V, X, L dan C …!!! Walaupun sudah 2 karakter namun ada juga kondisi yang tidak diperbolehkan… contohnya LL secara logik bernilai 100… namun ini tidak boleh karena nilai 100 diwakili oleh C …!!! So karakter Romawi VX, VV, LL dan LC itu karakter yang tidak diperbolehkan… so kembali validasi ini harus dipasang …!!!
Berikutnya setelah semua validasi terpasang… maka masuk ke proses, dimana proses nya ini sudah pasti datanya valid …!!! So rumusnya cukup sederhana… pertama variable P di definisikan nilai_p nya… jadi kalau ada angka Romawi I, diartikan sebagai 1 … demikian juga angka V diartikal sebagai 5 etc …!!! Demikian juga variable q juga diartikan… sama persis yang dilakukan sebagaimana varible p …!!! Berikutnya perlu dicheck kondisinya jika variable p < q, maka nilai_total = q – p, selain itu nilai_total = p + q …!!!
Berikutnya tentu setelah dilakukan proses tersebut.. tinggal membuat program,… dengan memperhatikan hal-hal tersebut diatas …!!! Program nya sudah dibikin… monggo untuk melihat source code dibawah ini …!!!
#include <stdio.h>#include <string.h>int main(){char romawi[2] = ” “;char p[2], q[2];int jml_romawi = 0;int nilai = 0;int nilai_p, nilai_q, nilai_total;scanf(“%s”, romawi);memcpy(p,&romawi[0],1);memcpy(q,&romawi[1],1);p[1] = ‘\0’;q[1] = ‘\0’;jml_romawi = strlen(romawi);// printf(“Jumlah karakter : %d \n”, jml_romawi);// printf(“karakter P : %s \n”, p);// printf(“karakter Q : %s \n”, q);// validasi bahwa jumlah hanya 2 karakterif (jml_romawi ==2){// validasi untuk setiap input benarif ((strcmp(p,”I”) == 0 || strcmp(p,”V”) == 0 || strcmp(p,”X”) == 0 || strcmp(p,”L”) == 0 || strcmp(p,”C”) == 0) &&(strcmp(q,”I”) == 0 || strcmp(q,”V”) == 0 || strcmp(q,”X”) == 0 || strcmp(q,”L”) == 0 || strcmp(q,”C”) == 0)){// check agar data validif(strcmp(romawi,”VX”) == 0 ||strcmp(romawi,”VV”) == 0 || strcmp(romawi,”LL”) == 0 || strcmp(romawi,”LC”) == 0 ){printf(“Data invalid tidak boleh VX, VV, LL atau LC \n “);}else{if(strcmp(p,”I”) == 0){nilai_p = 1;}if(strcmp(p,”V”) == 0){nilai_p = 5;}if(strcmp(p,”X”) == 0){nilai_p = 10;}if(strcmp(p,”L”) == 0){nilai_p = 50;}if(strcmp(p,”C”) == 0){nilai_p = 100;}if(strcmp(q,”I”) == 0){nilai_q = 1;}if(strcmp(q,”V”) == 0){nilai_q = 5;}if(strcmp(q,”X”) == 0){nilai_q = 10;}if(strcmp(q,”L”) == 0){nilai_q = 50;}if(strcmp(q,”C”) == 0){nilai_q = 100;}//printf(“Nilai P : %d \n”, nilai_p);//printf(“Nilai Q : %d \n”, nilai_q);if(nilai_p < nilai_q){nilai_total = nilai_q – nilai_p;}else{nilai_total = nilai_p + nilai_q;}printf(“%d\n”, nilai_total);}//printf(“Check karakter P dan Q : %s %s \n”, p, q);}else{printf(“Data invalid hanya boleh I, V, X, L dan C \n”);}}else{printf(“Data invalid karena jumlah karakter tidak 2 char \n”);}return 0;}
Berikutnya setelah di-compile dan dieksekusi terlihat berbagai kombinasi… program telah menghasilkan output yang benar …!!! So kembali tahapannya cukup sederhana… check dan validate input, pastikan inputnya benar agar mencegah Garbage In Garbage Out (GIGO) … dan jika sudah benar baru laaagh bikin proses nya … dan dari proses yang benar menghasilkan output yang benar …!!!
Demikian pembahasan dasar-dasar programming, khususnya membuat program case study translator angka Romawi menjadi angka desimal … semoga bermanfaat …!!! Last,… berikutnya akan dibahas teknik programming lainnya dan/atau study case lainnya … so stay tuned …!!! Ciaooo 😀
Leave a Reply