Bismillahirahmanirrahim.
Tulisan ini diambil dari Laporan saya di kelas Pemrograman kursus Teknoplasma
- Nama: Muhammad Dimas Akbar
- Distro: Kubuntu 22.04 LTS
- Provinsi: Jawa Barat
- Tanggal: Kamis, 29 Februari 2024
- Pertemuan berapa: 19
- Pengajar: Ade Malsasa Akbar
Tulisan ini dapat diambil dalam bentuk [PDF] dan [Writer]
Program-1.c
/* Nama File : IF-ELSE1.C */ #include <stdio.h> int main () { int bil,absolut; printf("Masukkan bilangan bulat: "); scanf("%d", &bil); if (bil < 0) absolut = -bil; printf("Nilai absolut dari %d adalah = %d", bil, absolut); getchar (); return 0; } | |
/* Analisis Program 1 Bab 4 * Deskripsi : Mengerjakan algoritma * baris 6 : tipe data integer tidak mengenal bilangan pecahan * baris 8 : deklarasi variabel * baris 11 : input > menyimpan > disimpan di variabel bil * baris 13 : evaluasi kebenaran, apakah benar nilai bil kurang dari 0, lalu jika benar, jalankan baris 14, lalu jika salah, lompati dan jalankan baris 17 * baris 14 : kalau output absolut bernilai 0, itu karena absolut di baris 8 belum diberi nilai * baris 17 : output mencetak nilai variabel absolut */ |
Program-2.c
/* Nama File : IF-ELSE2.C */ #include <stdio.h> int main () { int pembilang, penyebut, sisa; printf("Masukkan pembilang : "); scanf("%d", &pembilang); printf("Masukkan penyebut : "); scanf("%d", &penyebut); sisa = pembilang % penyebut; puts(""); if(sisa) printf("%d tidak habis dibagi %d\n", pembilang, penyebut); else printf("%d habis dibagi %d\n", pembilang, penyebut); getchar (); return 0; } | |
/* Output * Masukkan pembilang : 12 Masukkan penyebut : 4 12 habis dibagi 4 // artinya modulusnya 0 ------------------ (program exited with code: 0) Press return to continue 12 % 4 : 12 / 3 = 4 , 4 * 3 = 12, 12 - 12 = 0 */ /* * Masukkan pembilang : 12 Masukkan penyebut : 5 12 tidak habis dibagi 5 //modulusnya 2 ------------------ (program exited with code: 0) Press return to continue 12 % 5 : 12 / 5 = 2, 2 * 5 = 10, 12 - 10 = 2 */ /* Analisis Program 2 Bab 4 * Deskripsi : Ganjil Genap * baris 14 : perhitungan pembilang modulus penyebut disimpan di variabel sisa * baris 18 : evaluasi kebenaran (benar), jika hasil sisa tidak sama dengan 0, printf mencetak tidak habis dibagi * baris 20 : evaluasi kebenaran (salah), jika hasil sisa sama dengan 0, printf mencetak habis dibagi * baris 21 : hasil 0 itu false, hasil selain 0 itu true */ |
Program-3.c
/* Nama File : IF-ELSE3.C */ #include <stdio.h> int main () { char c; printf("Masukkan suatu karakter : "); scanf("%c", &c); if(c>='a' && c<='z') printf("\nKarakter tersebut termasuk huruf kecil.\n"); else printf("\nKarakter tersebut bukan huruf kecil.\n"); getchar (); return 0; } | |
/* Analisis Program 3 Bab 4 * Deskripsi : Tabel ASCII * baris 7 : char adalah tipe data ascii * baris 11 : evaluasi kebenaran, jika input variabel c adalah karakter a sampai z (benar), lompat ke baris 12, jika input diluar karakter a sampai z (salah) maka lompat ke baris 14 */ |
Program-4.c
/* Nama File : IF-ELSE4.C */ #include <stdio.h> int main () { int i=0, hasil=1; ulang: i++; hasil*=2; printf("Iterasi ke %2d: %5d\n", i, hasil); if(i<10) goto ulang; getchar (); return 0; } | |
/* Analisis program 4 Bab 4 * Deskripsi : Goto * baris 9 : ulang adalah label * baris 11 : pertambahan 1 angka dimulai dari 0, nilai i disini adalah 2 * baris 16 : gunakan spreadsheet, jika nilai i masih kurang dari 10, maka kembali ke baris 11, jika nilai i sudah sampai 10 maka return 0; * nilai variabel var i var hasil 1 2 2 4 3 8 4 16 5 32 6 64 7 128 8 256 9 512 10 1024 */ |
Program-5.c
/* Nama File : IF-ELSE5.C */ #include <stdio.h> int main () { char tag; printf("Masukkan tipe tag (2 / 4) : "); scanf("%c", &tag); if(tag=='2') { printf("Merek sepeda motor bertipe 2 tag\n\n"); printf(" 1. YA MAHA"); printf(" 2. YA SUZUKI"); printf(" 3. YA HONDA"); } else { printf("Merk sepeda motor bertipe 4 tag\n\n"); printf(" 1. HONDA"); printf(" 2. SUZUKI"); printf(" 3. YAMAHA"); } getchar (); return 0; } | |||
/* Analisis Program 5 Bab 4 * baris 10 : evaluasi kebenaran, apakah benar variabel tag = karakter 2, jika benar maka jalankan baris 11 - 14 * baris 15 : evaluasi kebenaran, jika input karakter variabel tag 4, maka jalankan baris 16 - 19 * baris 20 : evaluasi kebenaran, jika semua input diatas salah, maka jalankan baris 21 * baris 23 : jika memasukkan karakter selain 2, maka akan masuk ke else */ |
Program-6.c
/* Nama File : IF-ELSE6.C */ #include <stdio.h> int main () { int valid_operator = 1; char operator; float bil1, bil2, hasil; printf("Masukkan 2 bilangan dan sebuah operator.\n\n"); printf("Dengan format:\n\n"); printf("=bilangan-1 operator bilangan-2\n\n"); printf("= "); scanf("%f %c %f", &bil1, &operator, &bil2); if(operator == '*') { hasil = bil1 * bil2; } else if (operator == '/') hasil = bil1 / bil2; else if (operator == '+') hasil = bil1 + bil2; else if (operator == '-') hasil = bil1 - bil2; else valid_operator = 0; if(valid_operator) { printf("\nHasil perhitungan\n\n"); printf("%g %c %g = %g\n",bil1,operator,bil2,hasil); } else { printf("\nOperator SALAH!\n"); printf("\nGunakan operator +, -, / dan * saja!"); } getchar (); return 0; } | |
/* Analisis Program 6 Bab 4 * Deskripsi : Kalkulator * Baris 7 : deklarasi variabel (1 adalah true) * Baris 18 : evaluasi kebenaran, jika benar variabel operator bernilai *, maka jalankan perkalian * Baris 19 : perkalian variabel bil1 dan bil2 disimpan di variabel hasil * Baris 20 : evaluasi kebenaran, jika benar variabel operator bernilai /, maka jalankan pembagian * Baris 21 : pembagian variabel bil1 dan bil2 disimpan di variabel hasil * Baris 22 : evaluasi kebenaran, jika benar variabel operator bernilai +, maka jalankan penjumlahan * Baris 23 : penjumlahan variabel bil1 dan bil2 disimpan di variabel hasil * Baris 24 : evaluasi kebenaran, jika benar variabel operator bernilai -, maka jalankan pengurangan * Baris 25 : pengurangan variabel bil1 dan bil2 disimpan di variabel hasil * Baris 26 : evaluasi kebenaran, jika semua input diatas salah, maka jalankan baris 27 * Baris 27 : deklarasi variabel (0 adalah FALSE) * Baris 29 : evaluasi kebenaran, jika valid operator bernilai true (selain 0), maka jalankan baris 30-31 * Baris 32 : evaluasi kebenaran, jika valid operator bernilai false ( = 0), maka jalankan baris 33-34 */ |
Program-7.c
/* Nama File : IF-ELSE7.C */ #include <stdio.h> int main () { int valid_operator = 1; char operator; float bil1, bil2, hasil; printf("Masukkan 2 bilangan dan sebuah operator. \n\n"); printf("Dengan format: \n\n"); printf("= bilangan-1 operator bilangan-2\n\n"); printf("= "); scanf("%f %c %f", &bil1, &operator, &bil2); switch(operator) { case '*': hasil = bil1 * bil2; break; case '/': hasil = bil1 / bil2; break; case '+': hasil = bil1 + bil2; break; case '-': hasil = bil1 - bil2; break; default : valid_operator = 0; } if(valid_operator) { printf("\nHasil perhitungan\n\n"); printf("%g %c %g = %g\n",bil1,operator,bil2,hasil); } else { printf("\nOperator SALAH!\n"); printf("\nGunakan operator +, -, / dan * saja!"); } getchar (); return 0; } | |
/* Analisis Program 7 Bab 4 * Deskripsi : Kalkulator 2.0 * Baris 7 : deklarasi variabel (1 adalah true) * Baris 16 : scanf memindai, disimpan, dan menyimpan di variabel bil1, operator, dan bil2 * Baris 18 : switch case = if else * Baris 19 : evaluasi kebenaran, jika benar variabel operator bernilai *, maka jalankan perkalian, break artinya hentikan switch case, lompat ke baris 26 * Baris 20 : evaluasi kebenaran, jika benar variabel operator bernilai /, maka jalankan pembagian, break artinya hentikan switch case, lompat ke baris 26 * Baris 21 : evaluasi kebenaran, jika benar variabel operator bernilai +, maka jalankan penjumlahan, break artinya hentikan switch case, lompat ke baris 26 * Baris 22 : evaluasi kebenaran, jika benar variabel operator bernilai -, maka jalankan pengurangan, break artinya hentikan switch case, lompat ke baris 26 * Baris 23 : evaluasi kebenaran, jika semua input diatas salah, default akan menyimpan/mengubah nilai valid operator menjadi =0 * Baris 26 : evaluasi kebenaran, jika valid operator bernilai 1 (true), maka jalankan baris 27-28 * Baris 29 : evaluasi kebenaran, jika valid operator bernilai 0 (false), maka jalankan baris 30-31 */ |
Program-8.c
/* Nama File : program8.c "Ganjil Genap" */ #include <stdio.h> int main () { int angka; printf("\nMasukkan angka : "); scanf("%d", &angka); if(angka % 2 == 0) printf("\n%d adalah bilangan genap\n", angka); else printf("\n%d adalah bilangan ganjil\n", angka); getchar (); return 0; } | |
/* Analisis Program 8 Bab 4 * Deskripsi : Ganjil Genap * Baris 12 : Penerapan teori "Habis dibagi dua" adalah dengan modulus * Baris 12 - 15 : evaluasi kebenaran, jika angka yang diinput adalah angka genap, maka jalankan baris 13, jika angka yang diinput adalah angka ganjil maka jalankan baris 15 */ |
Program-9.c
/* Nama File : program-9.C */ #include <stdio.h> int main () { char simbol; while (1){ getchar(); printf("\nTekan salah satu tombol keyboard : "); scanf("%c", &simbol); if(simbol>='a' && simbol<='z' ) { printf("\n%c adalah huruf kecil\n", simbol); } else if(simbol>='A' && simbol<='Z') { printf("\n%c adalah huruf besar\n", simbol); } else if(simbol>='0' && simbol<='9') { printf("\n%c adalah angka\n", simbol); } else { printf("\n%c adalah karakter khusus\n", simbol); } simbol = '\0'; } getchar(); return 0; } | |
/* Analisis Program 9 Bab 4 * Deskripsi : Pengenalan ASCII * syarat pengenalan karakter adalah mengikuti tabel ASCII yang disepakati bersama * Polanya sama seperti evaluasi kebenaran * Baris 13 : ASCII nomor 97 - 122 * Baris 16 : ASCII nomor 65 - 90 * Baris 19 : ASCII nomor 48 - 57 * Baris 22 : ASCII selain nomor-nomor diatas */ |
Program-10.c
/* Nama File : Program-10.c */ #include <stdio.h> #include <stdbool.h> int main () { float operand1, operand2, hasil; int int_op1, int_op2, int_hasil; char operator; printf("\nProgram Akumulator\n"); printf("\nOperator yang dapat digunakan: * / + - %% & | s e\n"); printf("\nOperator \"s\": untuk mengubah akumulator"); printf("\nOperator \"e\": untuk mengakhiri program"); printf("\nOperator %% && || tidak akurat jika menggunakan pecahan\n"); mengulang: printf("\n\nMasukkan angka yang akan diakumulasi: "); scanf("%g", &operand1); while (true) { printf("\nMasukkan angka kedua dan operator (Contoh: 10 +): "); scanf("%g %c",&operand2,&operator); if(operator == 's' || operator=='S') { goto mengulang; } else if(operator == '*') { hasil = operand1 * operand2; printf("\n= %g\n", hasil); operand1=hasil; } else if(operator == '/') { hasil = operand1 / operand2; printf("\n= %g\n", hasil); operand1 = hasil; } else if(operator == '+') { hasil = operand1 + operand2; printf("\n= %g\n", hasil); operand1 = hasil; } else if(operator == '-') { hasil = operand1 - operand2; printf("\n= %g\n", hasil); operand1 = hasil; } else if(operator == '%') { int_op1 = (int)operand1; int_op2 = (int)operand2; int_hasil = int_op1 % int_op2; printf("\n= %d\n", int_hasil); operand1 = (float)int_hasil; } else if(operator == '&') { int_op1 = (int)operand1; int_op2 = (int)operand2; int_hasil = int_op1 & int_op2; printf("\n= %d\n", int_hasil); operand1 = (float)int_hasil; } else if(operator == '|') { int_op1 = (int)operand1; int_op2 = (int)operand2; int_hasil = int_op1 | int_op2; printf("\n= %d\n", int_hasil); operand1 = (float)int_hasil; } else if(operator == 'e' || operator == 'E'){ printf("\nprogram berhenti"); break; } else { printf("\noperator salah!\n"); } getchar (); } return 0; } | |
/* Analisis Program 10 Bab 4 * baris 18 : label * baris 20 : scanf bisa menerima 2 input * baris 22 : perulangan tidak berhenti * baris 24 : kunci dari perulangan * baris 27 : goto mengulang ke baris 18 * baris 31 : variabel hasil disimpan di operand1 * baris 44 : variabel karakter operator * baris 45 : variabel float dipaksa menjadi integer karena perhitungan modulus tidak bisa dilakukan di tipe data float * baris 47 : hasil perhitungan modulus disimpan di int_hasil * baris 49 : variabel bertipe data integer dikembalikan lagi menjadi float, disimpan di operand1 * baris 51 : variabel float dipaksa menjadi integer, karena perhitungan bitwise AND tidak bisa dilakukan di float * baris 57 : variabel float dipaksa menjadi integer karena perhitungan bitwise OR tidak bisa dilakukan di float * baris 62 : validasi input, menemukan perintah exit, jalankan baris 62 * baris 63 : break digunakan untuk menghentikan looping dan lanjut kode setelah looping */ |
Program-11.c
/* Nama File : Program-11.c */ #include <stdio.h> int main () { int tahun; printf("Menentukan Tahun Kabisat dari 1900-2005:");scanf("%d",&tahun); if(tahun>= 1900 && tahun <= 2005){ if(tahun % 400==0){ printf("%d merupakan tahun kabisat\n",tahun); } else if(tahun %100==0){ printf("%d merupakan bukan tahun kabisat\n",tahun); } else if(tahun %4==0){ printf("%d merupakan tahun kabisat\n",tahun); } else{ printf("%d merupakan bukan tahun kabisat\n",tahun); } getchar (); } return 0; } | |
/* Analisis Program 11 Bab 4 * Deskripsi : Tahun Kabisat * Teori hitung kabisat : jika habis dibagi 400 = kabisat, habis dibagi 4 dan bukan kelipatan 100 = kabisat, selain dua syarat tersebut berarti bukan kabisat * baris 9 : evaluasi rentang waktu * baris 11 : jika input variabel habis dibagi 400, maka cetak baris 12 * baris 13 : jika input variabel habis dibagi 100, maka cetak baris 14 * baris 15 : jika input variabel habis dibagi 4, maka cetak baris 16 * baris 17 : jika input variabel selain 3 syarat tersebut, maka cetak baris 18 */ | |
Program-12.c
/* Nama File : Program-12.c */ #include <stdio.h> #include <math.h> #define PI 3.14 int main () { float D; float A, B, C; float x1, x2; ulangan: printf("\n ===== \t Program Determinan \t ===== \n\n"); printf("\nMasukkan nilai untuk A : ") ;scanf("%f", &A); printf("\nMasukkan nilai untuk B : ") ;scanf("%f", &B); printf("\nMasukkan nilai untuk C : ") ;scanf("%f", &C); printf("Nilai sementara: %g %g %g\n", A, B, C); D = B * B - 4 * A * C; printf("Nilai determinan adalah %g \n", D); while(1){ if(D==0){ //mengimplementasikan kemungkinan pertama x1 = -B / 2 * A; x2 = x1; printf("Determinan sama dengan 0 maka akar-akarnya kembar\n"); printf("Nilai x1 adalah %g \n", x1); printf("Nilai x2 adalah %g \n", x2); goto ulangan; }else if(D>0){ x1 = (-B + sqrt(D)) / 2 * A; x2 = (-B - sqrt(D)) / 2 * A; printf("Determinan positif (lebih dari 0) maka akar-akarnya berbeda. \n"); printf("Nilai x1 adalah %g \n", x1); printf("Nilai x2 adalah %g \n", x2); }else{ x1 = (( -B + sqrt(D) / 2 * A)); x2 = (( -B - sqrt(D) / 2 * A)); printf("Determinan negatif (kurang dari 0) maka akar-akarnya imajiner berlainan. \n"); printf("Nilai x1 adalah %g i (dengan catatan i = akar(-D) yang disebut imajiner \n", x1); printf("Nilai x2 adalah %g i (dengan catatan i = akar(-D) yang disebut imajiner \n", x2); goto ulangan; } } return 0; } | |
/* Analisis Program 12 Bab 4 * pustaka math.h dipanggil karena fungsi sqrt() * Program menghitung determinan untuk mencari akar-akar persamaan kuadrat * Dalam bahasa Inggris disebut roots of quadratic equation * Ax^2 + Bx + C = 0 * D = B^2 - 4AC * Jika D = 0, maka x1 = x2 = -B / 2A * Jika D > 0, maka x1 = (-B + akar(D)) / 2A | x2 = (-B - akar(D)) / 2A * Jika D < 0, maka x1 = ((-B + akar(D)) / 2A )i | x2 = ((-B - akar(D))/2A)i * baris 18 = rumus jika ditulis dalam pemrograman C * baris 22 = jika Determinan sama dengan 0, maka cetak baris 25-27 * baris 29 = Jika Determinan lebih besar dari 0, maka cetak baris 32-34 * baris 35 = Jika Determinan lebih kecil dari 0, maka cetak baris 38-40 * baris 42 = Jika tidak memenuhi syarat-syarat diatas, maka cetak baris 43 */ |
Kesimpulan
- Tipe data integer tidak mengenal bilangan pecahan
- fungsi scanf bisa menerima 2 input
- tipe data suatu variabel bisa dikonversi dengan tipe data lainnya
- Kondisi SWITCH CASE mirip dengan IF ELSE, dengan perbandingan input variabel dengan beberapa nilai
Sumber Referensi
- https://en.wikibooks.org/wiki/C_Programming
- https://www.programiz.com/
Semoga artikel ini bermanfaat dan barokah bagi seluruh rakyat Indonesia
****
No comments:
Post a Comment