• Tidak ada hasil yang ditemukan

ALGORITMA PEMROGRAMAN DAN PENGANTAR C

Program 1.6 itu berisi tanda \0 (artinya ASCII Null. Tanda itu berguna untuk menetapkan akhir string

1.6 If......Else dan Switch

karyawan [1].noID = 201;

strcpy (karyawan [1].nama,”Wagino”;

karyawan [1].jumlah = 400000;

printf (“%d %s %ld”,karyawan [1].noID,karyawan [1].nama,\

karyawan [1].jumlah);

}

Lihatlah bahwa pada fungsi printf di atas ada tanda \. Tanda \ ini untuk menyatakan bahwa barisnya belum selesai (karena terlalu panjang)

1.6 If...Else dan Switch

If...Else dan Switch sering disebut sebagai pernyataan kondisional karena dipergunakan untuk menunjukkan kondisi di mana arus program harus bercabang.

Contoh program yang memakai if...else tampak seperti berikut ini.

/* program 1.11 */

/* contoh pemakaian if dan fungsi scanf*/

#include <stdio.h>

int main ( ) /*deteksi input*/

{

int x;

printf (“1. Mau ke mana?\n”;

printf (“2. Makan apa?\n”);

printf (“ pilih 1 atau 2 ?\n”);

scanf (“%d”,&x); /*lihat kita memakai & untuk menunjuk address x */

if (x==1) /* lihat operator yang dipakai adalah ==*/

Printf(“mau ke yogya”);

if (x==2)

Printf (“Nasi gudeg “);

else

Printf (“anda sedang bingung “);

return ;

}

Dalam contoh program di atas pernyataan di dalam tanda kurung ( ) – misalnya if (x==1) –- akan diteliti. Jika hasilnya TRUE (non zero, maka tulisan “mau ke yogya”

akan dicetak .

pernyataan scanf ( ) di program itu dipakai untuk menerima input dari keyboard.

Program tersebut akan menunjukkan pada bahasa C di mana input itu disimpan (yaitu di address &x). Konsep pemberian address (dan bukan langsung nilai x ini nanti akan kita bahas lagi di sub-bab tentang pointer.

Berikut ini adalah contoh program untuk menghitung gaji karyawan.

/* program 1.12 */

/* contoh memakai sscanf , get, dan if * /

#include <stdio.h>

int main ( ) /*menghitung gaji karyawan*/

{

int no;

float jam, tarip, lembur, gaji;

char buf[130]; /* array buffer untuk menyimpan array input sementara*/

tarip = 1000;

printf (“nomer karyawan = “;

gets (buf) ; /* cara memakai fungsi gets untuk memesan buffer*/

scanf (buf,”%d”,&jam);

Lembur = jam -35;

printf (“jumlah jam lembur = %2.2f\n”, lembur);

if (lembur >=0)

{ /* tanda {menunjukkan awal group instruksi program */

Gaji = 1.5 * tarip * lembur + tarip *35;

printf (“jumlah gaji karyawan %d adalah Rp 6.2 % f\n”,No,gaji);

} /* tanda } menunjukkan awal group instruksi program */ else {

Gaji = tarip * 35;

Printf (“jumlah gaji karyawan %d adalah Rp %f\n”, no , gaji;

}

return 0;

}

Switch memiliki fungsi yang sama seperti if....else , yaitu untuk membuat pernyataan kondisional. Bila dalam program tersebut kondisionalnya banyak maka penggunaan switch akan lebih efisien . berikut ini adalah contoh programnya.

/* program 1.13*/

/* contoh pemakaian switch , getch dan getche

# include <conio.h> /* untuk memanggil DOS console I/O routines */

# include <stdio.h>

int main ( )

{

char c;

printf (“Pilihan Menu Hari Ini.\n”);

printf (“---.\n”);

printf (“Pilihan Menu Hari Ini.\n”);

printf (“1: Sate Kambing\n”);

printf (“2: Ayam Bakar\n”);

printf (“3: Bandeng Presto\n”);

printf (“4: Rendang Sapi\n”);

printf (“1: Pilihlah menu dengan menekan 1, 2, 3, atau 4\n\n”);

c = getch ( ); /* beginilah cara memakai getch */

switch (c)

{

case ‘1’: printf (“Tak ada. Kambingnya lari!\n”); break;

case ‘2’: printf (“Tak ada. Telurnya belum\menetas\n”); break;

case ‘3’: printf (“Tak ada. Bandengnya dimakan \ kucing\n”);

break;

case ‘1’: printf (“Habis. Saya makan sendiri!\n”); break;

default:printf (“wah, anda pasti pecinta soto kodok \n”);

}

return 0;

}

Setiap pernyataan case harus disambung dengan break supaya arus program langsung melompat ke akhir program sesudah kita menekan tombol input. Misalnya jika sesudah case ‘1’ kita tidak membuat break, maka jika kita menekan tombol “1”

output yang muncul seperti ini:

Tentu saja bukan output seperti itu yang kita inginkan. Fungsi getch () di atas dipakai untuk membaca input dari keyboard. Dalam contoh tersebut input akan dimasukkan sebagai nilai c (ini nama variabel – karakter).

1.7 Loop (Putaran)

Loop artinya putaran. Untuk membuat arus putaran kita bisa memakai fungsi for, while, dan do....while.

FOR

Jika kita memakai for, kita harus menetapkan dulu jumlah putarannya. Pernyataan for bisa ditulis seperti ini:

for (i=1; i<=th; i++).

Supaya bisa jalan, kita harus menetapkan nilai th lebih dulu sebagai jumlah putaran.

Sebagaimana kita tahu bahwa i++ adalah inkremen yang artinya sama dengan i=i+!. Sebagai contoh lihat program berikut yang dipakai untuk menghitung program depresiasi garis lurus:

/* program 1.14*/

/* contoh FOR .... dan menghitung depr.*/

#include <stdio.h>

int main ( ) {

int th, i;

long residu, depr, akm, harga;

harga = 100000; /*data yang perlu dimasukkan ; 1.harga*/

th=10; /*2. tahun*/

residu = 20000; /*3. nilai residu*/

depr = (harga – residu)/th; /*rumus depresiasi garis lurus*/

akm = 0;

printf (“Tabel Depresiasi Garis Lurus\n”):

printf (“---\n”);

for (i=1; i<=th; i++) /*notasi i++ berarti i=i+1*/

{

akm += depr; /*rumus akumulasi depresiasi */

printf(“th: %d\t dpr.: %ld\t akm_dpr: \%ld\n”,i,depr,akm);

}

}

WHILE

Jika kita membuat putaran dengan while, kita perlu menentukan syarat kapan putaran itu terus berlangsung. Dalam pernyataan while (nil <=2), kita menetapkan bahwa putaran hanya berlangsung jika nilai nil kurang atau sama dengan 2. ini berbeda dengan for yang mewajibkan kita menentukan jumlah putarannya. Inilah contoh program yang mempergunakan while untuk membuat tabel akar bilangan:

/* program 1.15*/

#include <stdio.h>

#include <math.h>

int main ( ) {

float nil,akar;

nil=1;

while (nil<=2) {

akar=sqrt(nil);

printf(“%2.2f\t %3.3f\n”,nil,akar);

nil +=0.1;

} }

Program itu akan menampilkan output tulisan seperti ini:

Berikut ini adalah contoh program dengan while untuk membuat tabel angsuran.

/* program 1.16*/

/* cara memakai WHILE dan menghitung tabel angsuran */

#include <stdio.h>

#include<math.h>

int main () {

int i,th;

float pokok, tb, nt, bunga, angsuran, sisa, ta;

th =10; /*data yang dimasukkan: 1.tahun*/

pokok = 20000000; /*2.pokok bunga*/

tb = 0.20; /*3. tarip bunga*/

` nt=pow ((1+tb),(-1*th));

angsuran = pokok / ((1-nt)/tb); /*rumus angsuran*/

i=1;

ta =0;

Sisa=0;

printf (“Tabel angsuran hutang \n”);

printf (“--- \n”);

printf (“Pokok pinjaman :%9.2f\n”,pokok);

printf (“Tingkat bunga:%9.2f\n”,tb);

printf (“Angsuran/th.:%9.2f\n”,angsuran);

while (i<=10) {

sisa = pokok – ta; /* rumus sisa hutang*/

bunga = tb * sisa; /* rumus bunga*/

ta += (angsuran – bunga); /* rumus pengurang pokok hutang*/

printf (“th:%d bunga: %9.2 f angs.: %9.2f\sisa:%9.2f\n”,i, bunga, angsuran, sisa);

i+=1;

} }

Program tersebut akan menghasilkan output seperti berikut:

DO WHILE

Fungsi Do while sebetulnya sama dengan while. Bedanya, jika dengan while syarat putaran diletakkan di awal loop (putaran), maka dengan do while syarat putaran diletakkan di akhir putaran. Contoh program yang dipakai untuk membuat tabel nilai tunai (present value) berikut ini memakai do while.

/*Program 1.17*/

/*latihan memakai DO...WHILE dan membuat tabel present value */

#include <math.h>

#include <stdio.h>

main ( ) {

float p1, p2, p3; /*p1,p2,p3=nilai tunai pada tk bunga 0.1,0.2,0.3*/

int n=0; /*jumlah periode, biasanya tahun */

do

while (n<5); /*syarat putaran diletakkan di akhir loop */

1.8 Goto

Fungsi goto bisa dipakai untuk melompat ke baris program tertentu. Ini bisa juga digunakan untuk keluar dari loop (putaran). Karena pemakaian goto tampaknya tidak sistematis, programmer sering mengindari pemakaiannya. Contoh program berikut ini menunjukkan pemakaian goto untuk keluar dari loop do...while.

/* PROGRAM 1.18*/

#include <stdio.h>

main ( )

{

int n;

n=0;

do

{ n++;

if (n=10) goto bilang;

}

while (n>0);

bilang;

printf (“nilai n=10 kan?”): }

Sampai tahap ini para siswa/siswi tentu sudah cukup mahir memakai fungsi-fungsi dasar bahasa C. sudah waktunya kita menginjak tahap yang lebih rumit yakni pemakaian memori dan variabel serta pointer

Dokumen terkait