Anda di halaman 1dari 16

Kumpulan Program C - Struktur Keputusan

/* if 01 - positif, nol, atau negatif.c


Program pernyataan if untuk menentukan apakah sebuah bilangan
merupakan bilangan positif, nol, atau negatif.
*/
#include <stdio.h>

int main() {
float bil;

printf("Program Penggunaan Pernyataan if().\n\n");

printf("Masukkan sembarang bilangan (positif, nol, atau negatif): ");


scanf("%f", &bil);

printf("\nHanya periksa apakah bilangannya positif:\n");


if(bil > 0) printf("%g bilangan positif.\n", bil);

printf("\nPeriksa apakah bilangannya positif atau bukan:\n");


if(bil > 0) printf("%g bilangan positif.\n", bil);
else printf("%g bukan bilangan positif.\n", bil);

printf("\nPeriksa apakah bilangannya positif, nol, atau negatif:\n");


if(bil > 0) printf("%g bilangan positif.\n", bil);
else if(bil == 0) printf("%g bilangan nol.\n", bil);
else printf("%g bilangan negatif.\n", bil);

return 0;
}

Catatan:
%g pada printf() untuk menghilangkan tampilan angka 0 di belakang titik desimal.

Contoh Output:

Program Penggunaan Pernyataan if().

Masukkan sembarang bilangan (positif, nol, atau negatif): -5

Hanya periksa apakah bilangannya positif:

Periksa apakah bilangannya positif atau bukan:


-5 bukan bilangan positif.

Periksa apakah bilangannya positif, nol, atau negatif:


-5 bilangan negatif.

Catatan:
Coba masukkan bilangan 0 atau 5, perhatikan outputnya.
/* if 02 - ganjil genap.c
Program if() untuk menentukan bilangan ganjil atau genap.
*/
#include <stdio.h>

int main() {
int bil;

printf("Menentukan bilangan ganjil atau genap.\n\n");

printf("Masukkan bilangan bulat yang akan diperiksa: ");


scanf("%d", &bil);

if(bil % 2 == 0)
printf("%d adalah bilangan genap\n", bil);
else
printf("%d adalah bilangan ganjil\n", bil);

return 0;
}

Contoh Output:

Menentukan bilangan ganjil atau genap.

Masukkan bilangan bulat yang akan diperiksa: 3


3 adalah bilangan ganjil

atau:

Menentukan bilangan ganjil atau genap.

Masukkan bilangan bulat yang akan diperiksa: 4


4 adalah bilangan genap

/* if – kabisat01.c
Program untuk menentukan tahun kabisat.
- Tahun kabisat (leap year) adalah tahun yang
habis dibagi 4 tetapi tidak habis dibagi 100,
atau tahun yang habis dibagi 400.
*/
#include <stdio.h>
int main()
{
int tahun;

printf("Menentukan Tahun Kabisat.\n\n");

printf("Tahun: ");
scanf("%d", &tahun);

if(tahun % 4 == 0)
if(tahun % 100 != 0)
printf("Tahun %d adalah tahun kabisat.\n", tahun);
else if(tahun % 400 == 0)
printf("Tahun %d adalah tahun kabisat.\n", tahun);
else
printf("Tahun %d bukan tahun kabisat.\n", tahun);
else
printf("Tahun %d bukan tahun kabisat.\n", tahun);

return 0;
}

Contoh Output:

Menentukan Tahun Kabisat.

Tahun: 2000
Tahun 2000 adalah tahun kabisat.

atau:

Menentukan Tahun Kabisat.

Tahun: 2100
Tahun 2100 bukan tahun kabisat.

/* if - kabisat02.c
Program untuk menentukan tahun kabisat.
*/
#include <stdio.h>
int main()
{
int tahun;

printf("Menentukan Tahun Kabisat.\n\n");

printf("Tahun: ");
scanf("%d", &tahun);

if((tahun % 4 == 0 && tahun % 100 != 0) ||


tahun % 400 == 0)
printf("Tahun %d adalah tahun kabisat.\n", tahun);
else
printf("Tahun %d bukan tahun kabisat.\n", tahun);

return 0;
}

Catatan:
Program if - kabisat02.c paling singkat, namun tidak efisien karena untuk untuk setiap tahun
yang tidak habis dibagi 4 harus diperiksa apakah tahun habis dibagi 400.
Bandingkan dengan program dari:
https://www.programiz.com/c-programming/examples/leap-year

if(year%4 == 0)
{
if(year%100 == 0)
{
// year is divisible by 400, hence the year is a leap year
if (year%400 == 0)
printf("%d is a leap year.", year);
else
printf("%d is not a leap year.", year);
}
else
printf("%d is a leap year.", year );
}
else
printf("%d is not a leap year.", year);

http://www.programmingsimplified.com/c/source-code/c-program-check-leap-year

if (year%400 == 0)
printf("%d is a leap year.\n", year);
else if (year%100 == 0)
printf("%d is not a leap year.\n", year);
else if (year%4 == 0)
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);

https://www.tutorialgateway.org/c-program-to-check-leap-year/

  if ((year%400 == 0) || ((year%4 == 0) && (year%100 != 0)))


      printf("\n %d is a Leap Year. \n", year);
  else
      printf("\n %d is not the Leap Year. \n", year);

https://codescracker.com/c/program/c-program-check-leap-year.htm

if((yr%4==0) && (yr%100!=0))


{
printf("This is a Leap Year");
}
else if(yr%100==0)
{
printf("This is not a Leap Year");
}
else if(yr%400==0)
{
printf("This is a Leap Year");
}
else
{
printf("This is not a Leap Year");
}
/* if - terbesar 3 bilangan.c
Program untuk menentukan bilangan terbesar dari tiga bilangan.
*/
#include <stdio.h>
int main()
{
float x, y, z, maks;

printf("Menentukan bilangan terbesar dari tiga bilangan\n");

printf("Masukkan tiga buah bilangan: ");


scanf("%f %f %f", &x, &y, &z);

if(x > y)
if(x > z) maks = x; else maks = z; // nested if (if bersarang)
else
if(y > z) maks = y; else maks = z;

printf("Terbesar = %.2f\n", maks);

return 0;
}

Contoh Output:

Menentukan bilangan terbesar dari tiga bilangan


Masukkan tiga buah bilangan: 2.5 6.8 4
Terbesar = 6.80

Catatan:
Variasi lain dari program ini:
- Menggunakan operator &&
if(x > y && x > z)
maks = x;
else if(y > z)
maks = y;
else maks = z;
- tanpa else
maks = x;
if(y > maks) maks = y;
if(z > maks) maks = z;
Contoh program yang tidak efisien:
if(x > y && x > z) maks = x;
if(y > x && y > z) maks = y;
if(z > x && z > y) maks = z;
Perhatikan, ketiga if harus dijalankan dan setiap if menggunakan operator &&.
/* if - gaji.c
Program untuk menghitung gaji total.
Rumus:
Gaji Total = Gaji Pokok + Uang Jasa + Uang Komisi

Uang Jasa dan Komisi ditentukan oleh Penjualan sbb.:


| Penjualan | Uang Jasa | Komisi |
| ----------------------------------- |
| <= Rp500.000 | Rp30.000 | 10% |
| <= Rp1.000.000 | Rp50.000 | 15% |
| > Rp1.000.000 | Rp75.000 | 20% |
*/
#include <stdio.h>
int main()
{
float gapok, jual, jasa, komisi, total;

printf("Menghitung Gaji Total\n\n");


printf("Gaji Pokok Rp "); scanf("%f", &gapok);
printf("Penjualan Rp "); scanf("%f", &jual);

if(gapok <= 0 || jual <= 0)


{
printf("Data yang diinput salah!\n");
return 0;
}

if(jual <= 500000)


{
jasa = 30000;
komisi = 0.1 * jual;
}
else if(jual <= 1000000)
{
jasa = 50000;
komisi = 0.15 * jual;
}
else
{
jasa = 75000;
komisi = 0.2 * jual;
}

total = gapok + jasa + komisi;

printf("\nGaji Pokok Rp%11.2f\n", gapok);


printf("Uang Jasa Rp%11.2f\n", jasa);
printf("Uang Komisi Rp%11.2f\n", komisi);
printf("=========================\n");
printf("Gaji Total Rp%11.2f\n", total);

return 0;
}
Contoh Output:

Menghitung Gaji Total

Gaji Pokok Rp 2500000


Penjualan Rp 800000

Gaji Pokok Rp 2500000.00


Uang Jasa Rp 50000.00
Uang Komisi Rp 120000.00
==========================
Gaji Total Rp 2670000.00

Xxx
/* switch - one two three.c
Program switch () untuk mengonversi angka 1 2 3 ke One Two Three.
*/
#include <stdio.h>

int main() {
int angka;

printf("Penggunaan switch(): One Two Three\n\n");

printf("Ketikkan angka 1, 2, atau 3: ");


scanf("%d", &angka);

printf("Angka %d ", angka);


switch(angka) {
case 1: printf(": One\n"); break;
case 2: printf(": Two\n"); break;
case 3: printf(": Three\n"); break;
default: printf("yang diketikkan salah!\n");
}

return 0;
}

CATATAN: PELAJARI

Contoh Output:

Penggunaan switch(): One Two Three

Ketikkan angka 1, 2, atau 3: 2


Angka 2 : Two

/* switch - maksimum hari.c


Program switch() untuk menentukan maksimum hari dalam masing-masing
bulan.
*/
#include <stdio.h>

int main() {
int bln, thn, maks_hari;

printf("Menentukan Maksimum Hari.\n\n");

printf("Bulan : "); scanf("%d", &bln);


printf("Tahun : "); scanf("%d", &thn);

switch(bln) {
case 4:
case 6:
case 9:
case 11:
maks_hari = 30; break;
case 2:
if(thn % 4 == 0 && thn % 100 != 0 || thn % 400 == 0)
maks_hari = 29;
else
maks_hari = 28;
break;
default :
maks_hari = 31; break;
}

printf("\nMaksimum hari = %d", maks_hari);

return 0;
}

Contoh Output:

Menentukan Maksimum Hari.

Bulan : 2
Tahun : 2100

Maksimum hari = 28

atau:

Menentukan Maksimum Hari.

Bulan : 3
Tahun : 2017

Maksimum hari = 31

/* loop_01 - for-while-do while.c


Program for(), while(), dan do...while() untuk
menampilkan barisan 1 2 3 ... 20.
*/
#include <stdio.h>

int main() {
int i;

printf("Penggunaan for(), while(), dan do...while().\n\n");

printf("Menampilkan barisan 1 2 3 ... 20.\n\n");

printf("Dengan for():\n");
for(i = 1; i <= 20; i++)
printf("%d ", i);

printf("\n\nDengan while():\n");
i = 1;
while(i <= 20) {
printf("%d ", i);
i++;
}

printf("\n\nDengan do..while():\n");
i = 1;
do {
printf("%d ", i);
i++;
} while(i <= 20);
printf("\n");

return 0;
}

CATATAN: PELAJARI

Output:

Penggunaan for(), while(), dan do...while().

Menampilkan barisan 1 2 3 ... 20.

Dengan for():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Dengan while():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Dengan do..while():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

/* loop_02 - for-while-do while.c


Program for(), while(), dan do...while() untuk
menampilkan barisan 50 45 40 ... 5.
*/
#include <stdio.h>

int main() {
int i;

printf("Penggunaan for(), while(), dan do...while().\n\n");

printf("Menampilkan barisan 50 45 40 ... 5.\n\n");

printf("Dengan for():\n");
for(i = 50; i >= 5; i -= 5)
printf("%d ", i);

printf("\n\nDengan while():\n");
i = 50;
while(i >= 5) {
printf("%d ", i);
i -= 5;
}

printf("\n\nDengan do..while():\n");
i = 50;
do {
printf("%d ", i);
i -= 5;
} while(i >= 5);
printf("\n");

return 0;
}

Contoh Output:

Penggunaan for(), while(), dan do...while().

Menampilkan barisan 50 45 40 ... 5.

Dengan for():
50 45 40 35 30 25 20 15 10 5

Dengan while():
50 45 40 35 30 25 20 15 10 5

Dengan do..while():
50 45 40 35 30 25 20 15 10 5

/* loop_03 –for - ASCII.c


Program for() untuk menampilkan karakter ASCII.
*/
#include <stdio.h>

int main() {
int i;

printf("Karakter ASCII:\n");

for(i=32; i<=255; i++) {


if(i % 5 == 0) printf("\n");
printf("%3d : %c ", i, i);
}
printf("\n");

return 0;
}
CATATAN: HANYA UNTUK PENGETAHUAN TAMBAHAN

Output:

Karakter ASCII:
32 : 33 : ! 34 : "
35 : # 36 : $ 37 : % 38 : & 39 : '
40 : ( 41 : ) 42 : * 43 : + 44 : ,
45 : - 46 : . 47 : / 48 : 0 49 : 1
50 : 2 51 : 3 52 : 4 53 : 5 54 : 6
55 : 7 56 : 8 57 : 9 58 : : 59 : ;
60 : < 61 : = 62 : > 63 : ? 64 : @
65 : A 66 : B 67 : C 68 : D 69 : E
70 : F 71 : G 72 : H 73 : I 74 : J
75 : K 76 : L 77 : M 78 : N 79 : O
80 : P 81 : Q 82 : R 83 : S 84 : T
85 : U 86 : V 87 : W 88 : X 89 : Y
90 : Z 91 : [ 92 : \ 93 : ] 94 : ^
95 : _ 96 : ` 97 : a 98 : b 99 : c
100 : d 101 : e 102 : f 103 : g 104 : h
105 : i 106 : j 107 : k 108 : l 109 : m
110 : n 111 : o 112 : p 113 : q 114 : r
115 : s 116 : t 117 : u 118 : v 119 : w
120 : x 121 : y 122 : z 123 : { 124 : |
125 : } 126 : ~ 127 : ⌂ 128 : Ç 129 : ü
130 : é 131 : â 132 : ä 133 : à 134 : å
135 : ç 136 : ê 137 : ë 138 : è 139 : ï
140 : î 141 : ì 142 : Ä 143 : Å 144 : É
145 : æ 146 : Æ 147 : ô 148 : ö 149 : ò
150 : û 151 : ù 152 : ÿ 153 : Ö 154 : Ü
155 : ¢ 156 : £ 157 : ¥ 158 : ₧ 159 : ƒ
160 : á 161 : í 162 : ó 163 : ú 164 : ñ
165 : Ñ 166 : ª 167 : º 168 : ¿ 169 : ⌐
170 : ¬ 171 : ½ 172 : ¼ 173 : ¡ 174 : «
175 : » 176 : ░ 177 : ▒ 178 : ▓ 179 : │
180 : ┤ 181 : ╡ 182 : ╢ 183 : ╖ 184 : ╕
185 : ╣ 186 : ║ 187 : ╗ 188 : ╝ 189 : ╜
190 : ╛ 191 : ┐ 192 : └ 193 : ┴ 194 : ┬
195 : ├ 196 : ─ 197 : ┼ 198 : ╞ 199 : ╟
200 : ╚ 201 : ╔ 202 : ╩ 203 : ╦ 204 : ╠
205 : ═ 206 : ╬ 207 : ╧ 208 : ╨ 209 : ╤
210 : ╥ 211 : ╙ 212 : ╘ 213 : ╒ 214 : ╓
215 : ╫ 216 : ╪ 217 : ┘ 218 : ┌ 219 : █
220 : ▄ 221 : ▌ 222 : ▐ 223 : ▀ 224 : α
225 : ß 226 : Γ 227 : π 228 : Σ 229 : σ
230 : µ 231 : τ 232 : Φ 233 : Θ 234 : Ω
235 : δ 236 : ∞ 237 : φ 238 : ε 239 : ∩
240 : ≡ 241 : ± 242 : ≥ 243 : ≤ 244 : ⌠
245 : ⌡ 246 : ÷ 247 : ≈ 248 : ° 249 : ∙
250 : · 251 : √ 252 : ⁿ 253 : ² 254 : ■
255 :  

/* loop_04 - nested for.c


Program nested for() untuk menampilkan barisan baris dan kolom.
*/
#include <stdio.h>

int main() {
int i, j;

for(i=1; i<=9; i++) {


for(j=1; j<=i; j++) // nested for.
printf("%d ", i); // jika i yang ditampilkan.
printf("\n");
}
printf("\n\n");

for(i=1; i<=9; i++) {


for(j=1; j<=i; j++)
printf("%d ", j); // jika j yang ditampilkan.
printf("\n");
}

return 0;
}

CATATAN: PELAJARI

Output:

1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9

/* loop_05 - nested for - cermin.c


Program nested for() untuk menampilkan barisan baris dan kolom
dengan cermin.
*/
#include <stdio.h>

int main() {
int i, j, k;

for(i=9; i>=1; i--) {


// Barisan di kuadran II.
for(j=9; j>=i; j--)
printf("%d ", j);

// Spasi di kuadran II.


for(k=1; k<=2*(i-1); k++) printf(" ");
// Garis pemisah kuadran II dan I.
printf("| ");
// Spasi di kuadran I.
for(k=1; k<=2*(i-1); k++) printf(" ");

// Barisan di kuadran I.
for(j=i; j<=9; j++)
printf("%d ", j);

printf("\n");
}

// Garis pemisah horizontal.


for(k=1; k<=37; k++) printf("-");

printf("\n");

for(i=9; i>=1; i--) {


// Barisan di kuadran III.
for(j=9; j>=(10-i); j--)
printf("%d ", j);
// Spasi di kuadran III.
for(k=1; k<=2*(9-i); k++) printf(" ");
// Garis pemisah kuadran III dan IV.
printf("| ");
// Spasi di kuadran IV.
for(k=1; k<=2*(9-i); k++) printf(" ");

// Barisan di kuadran IV.


for(j=(10-i); j<=9; j++)
printf("%d ", j);

printf("\n");
}
return 0;
}

CATATAN: PELAJARI TAPI TIDAK PAKAI CERMIN

Output:

9 | 9
9 8 | 8 9
9 8 7 | 7 8 9
9 8 7 6 | 6 7 8 9
9 8 7 6 5 | 5 6 7 8 9
9 8 7 6 5 4 | 4 5 6 7 8 9
9 8 7 6 5 4 3 | 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 | 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 1 | 1 2 3 4 5 6 7 8 9
-------------------------------------
9 8 7 6 5 4 3 2 1 | 1 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 2 | 2 3 4 5 6 7 8 9
9 8 7 6 5 4 3 | 3 4 5 6 7 8 9
9 8 7 6 5 4 | 4 5 6 7 8 9
9 8 7 6 5 | 5 6 7 8 9
9 8 7 6 | 6 7 8 9
9 8 7 | 7 8 9
9 8 | 8 9
9 | 9

Catatan: Coba buat program untuk tampilan seperti berikut.

9 8 7 6 5 4 3 2 1 | 1 2 3 4 5 6 7 8 9
8 7 6 5 4 3 2 1 | 1 2 3 4 5 6 7 8
7 6 5 4 3 2 1 | 1 2 3 4 5 6 7
6 5 4 3 2 1 | 1 2 3 4 5 6
5 4 3 2 1 | 1 2 3 4 5
4 3 2 1 | 1 2 3 4
3 2 1 | 1 2 3
2 1 | 1 2
1 | 1
-------------------------------------
1 | 1
2 1 | 1 2
3 2 1 | 1 2 3
4 3 2 1 | 1 2 3 4
5 4 3 2 1 | 1 2 3 4 5
6 5 4 3 2 1 | 1 2 3 4 5 6
7 6 5 4 3 2 1 | 1 2 3 4 5 6 7
8 7 6 5 4 3 2 1 | 1 2 3 4 5 6 7 8
9 8 7 6 5 4 3 2 1 | 1 2 3 4 5 6 7 8 9

/* loop_06 - do while.c
Program contoh penggunaan do...while().
*/
#include <stdio.h>
#include <conio.h> // untuk getch().

int main() {
float sisi;
char yt;

do {
printf("Menghitung Luas Persegi (Bujursangkar)\n\n");

// Validasi data sisi: harus bilangan positif.


do {
printf("Sisi = "); scanf("%f", &sisi);
if(sisi <= 0) printf("Sisi persegi harus bilangan positif!\n");
} while(sisi <= 0);

printf("Luas = %f\n", sisi * sisi);

printf("\nMau coba lagi (Y/T)? ");


// Validasi tombol: harus Y, y, T, atau t.
do {
yt = getch();
} while(yt != 'Y' && yt != 'y' && yt != 'T' && yt != 't');
printf("%c\n\n", yt);
} while(yt == 'Y' || yt == 'y');

return 0;
}

CATATAN: PELAJARI

Contoh Output:

Menghitung Luas Persegi (Bujursangkar)

Sisi = 0
Sisi persegi harus bilangan positif!
Sisi = -5
Sisi persegi harus bilangan positif!
Sisi = 5
Luas = 25.000000

Mau coba lagi (Y/T)? y

Menghitung Luas Persegi (Bujursangkar)

Sisi = 8
Luas = 64.000000

Mau coba lagi (Y/T)? t

Anda mungkin juga menyukai