Anda di halaman 1dari 14

Statemen Terstruktur

44

STATEMEN TERSTRUKTUR
1 Pendahuluan
- Statemen dapat dikatakan sebagai satuan terkecil suatu program.
- Statemen dapat digolongkan menjadi dua kelompok, yaitu :
1. Statemen Sederhana
2. Statemen Terstruktur
- Statemen sederhana adalah Statemen yang tidak berisi statemen yang
lain, dan hanya terdiri dari satu baris statemen, terdiri dari statemen
penugasan (assignment statement) dan statemen fungsi:
1.1 Statemen Penugasan
- Statemen penugasan digunakan untuk mengubah nilai suatu
peubah dengan nilai baru atau untuk menentukan suatu ungkapan
yang nilainya bisa diperoleh dari fungsi yang digunakan.
- Contoh statemen penugasan:
D = B*B 4*A*C;
Sinus = sin(x/y);
1.2 Statemen Fungsi
- Statemen fungsi adalah statemen yang digunakan untuk
memanggil suatu fungsi.
- Jika fungsi yang dipanggil berisi sederetan parameter formal, maka
dalam statemen fungsi juga harus berisi parameter aktual yang
sesuai.
- Parameter dalam deklarasi fungsi disebut parameter formal, dan
dalam statemen fungsi atau pemanggil fungsi disebut dengan
parameter aktual).
- Contoh statemen fungsi:
Invers_matriks(Matriks_A, Matriks_B);
Baca_data;
2. Statemen Terstruktur
Statemen terstruktur adalah statemen yang tersusun dari sejumlah
statemen lain yang akan dieksekusi:
1. Secara berurutan (statemen majemuk dan statemen with),
2. Secara terkendali (statemen kendali) atau
3. Secara berulang (statemen perulangan).

Statemen Terstruktur

45

2.1 Statemen Majemuk


- Statemen majemuk (compound statement) adalah statemen yang
terdiri dari sejumlah statemen yang akan dieksekusi dengan urutan
yang sama dengan urutan cara penulisan statement-statemen
tersebut.
- Komponen statemen ini diperlakukan sebagai satu statemen.
- Statemen majemuk ditandai dengan tanda kurung kuraval buka ({)
dan diakhiri dengan tanda kurung kuraval tutup (}).
- Contoh statemen majemuk:
{
a = a + 1;
b = a * c;
d = b a;
};
2.2 Statemen Kendali
- Statemen kendali digunakan untuk mengambil suatu keputusan
atau memilih bagian program yang akan dikerjakan sesuai dengan
kondisi atau syarat yang diberikan.
- Bahasa C menyediakan beberapa statemen kendali, seperti:
o Statemen if
o Statemen if-else, dan
o Statemen switch
- Statemen-statemen di atas memerlukan suatu kondisi atau syarat
sebagai dasar pengambilan keputusan.
- Salah satu kondisi yang umum digunakan adalah berupa keadaan
benar atau salah (true or false).
- Bahasa C menyediakan beberapa jenis operator untuk mendukung
pembentukan kondisi benar atau salah.
3. Operator Relasi.
- Operator relasi (hubungan) biasa digunakan untuk membandingkan
dua buah nilai. Hasil pembadingan berupa keadaan benar atau
salah.
- Operator relasi yang dapat digunakan dalam pemrograman
disajikan pada tabel 4.1 berikut.

Statemen Terstruktur

46

Tabel 4.1 Operator Relasi.


Operator
>
>=
<
<=
==
!=

Makna
Lebih dari
Lebih dari atau sama dengan
Kurang dari
Kurang dari atau sama dengan
Sama dengan
Tidak sama dengan

- Khusus untuk operator relasi sama dengan (= = ) harap dibedakan


dengan operator penugasan =.
- Tabel 4.2 berikut menyajikan beberapa contoh pembandingan dua
buah nilai, dana hasilnya.
Tabel 4.2 Contoh hasil pembandingan dua buah nilai.
Pembandingan
1>2
30 > 15
a==2
I < (maks-1)

Hasil
Salah
Benar
Benar, jika a bernilai 2
Salah, jika a tidak bernilai 2
Benar, bila I kurang dari maks-1
Salah, jika I lebih besar dari atau
sama dengan maks-1

- Pada data karakter, dasar pembandingan adalah nilai ASCII dari


karakter yang dibandingkan. Misalnya nilai ASCII A adalah 65 dan
nilai ASCII B adalah 66, maka A lebih kecil dari B.
4. Operator Logika
Operator logika biasa digunakan untuk menghubungkan ungkapan
relasi. Operator logika yang terdapat dalam C diperlihatkan pada Tabel
4.3.
Tabel 4.3 Operator Logika.
Maksud
Operator
&&
Dan (AND)
||
Atau (OR)
!
Negasi (NOT)
Bentuk penggunaan operator pada tabel 4.3 di atas adalah:

Statemen Terstruktur

47

Operand1 operator operand2


- Baik operand1 maupun operand2 dapat berupa ungkapan relasi
maupun ungkapan logika.
- Hasil ungkapan mempunyai nilai benar atau salah.
- Tabel 4.4 memberikan contoh hasil operasi ungkapan logika yang
mdnggunakan operator && dan || untuk berbagai kemungkinan
keadaan operand.
Tabel 4.4 Kemungkinan operasi logika && dan ||.
Operand1 Operand2
Salah
Salah
Benar
Benar

Salah
Benar
Salah
benar

Hasil
||
&&
Salah Salah
Benar Salah
Benar Salah
Benar Benar

- Operator logika atau (||) akan menghasilkan nilai benar jika ada
operand yang bernilai benar, dan akan menghasilkan nilai salah
jika semua operand bernilai salah.
- Operator dan (&&) akan memberikan hasil benar hanya jika
kedua operand bernilai benar.
- Bentuk pemakaian operator logika !:
! operand
- dengan operand dapat berupa ungkapan logika ataupun relasi.
Hasil operasi ! akan bernilai:
o benar, jika operand bernilai salah
o salah, jika operand bernilai benar.
4.1 Prioritas Operator Logika dan Relasi
- Seperti halnya operator yang lain, operator logika dan operator
relai juga mempunyai hirarki tertentu, seprti yang diperlihatkan
pada Tabel 4.5.
Tabel 4.5 Hirarki operator logika dan relasi.
Tertinggi

Terendah

!
> >= < <=
= = !=
&&
||

Statemen Terstruktur

48

- Berdasarkan hirarki yang ditunjukkan pada Tabel 4.5, maka


ungkapan :
(kar > A) && (kar < Z)
- Dapat ditulis menjadi:
Kar > A && kar < Z
Latihan :
Tentukan hasil ungkapan berikut benar atau salah:
1. 2 > 1 || 3 <= 4 && 4 < 1
2. 2 > 1 && 3 <= 4 || 4 < 1
3. !(2 > 1) && (3 <= )
4. 95 > 1 || 3 != 2) && ((2 > 1) || 2 )
4.2 Nilai Benar dan Salah
- Pada C, nilai hasil dari suatu ungkapan relasi atau logika jika
dinyatakan dengan angka adalah sebagai berikut:
o Salah berupa 0, dan
o Benar berupa 1
5 Statemen if
- Statemen if mempunyai bentuk umum (sintaksis):
if (kondisi) pernyataan
- Arti dari statemen di atas adalah:
o Jika kondisi bernilai benar, maka pernyataan dikerjakan
o Jika kondisi bernilai salah, maka pernyataan tidak dikerjakan
- Kondisi harus ditulis diantara tanda kurung, dapat berupa
sembarang ungkapan (yang dipentingkan adalah nilai benar atau
salah), sedangkan pernyataan adapat berupa sebuah statemen
tunggal (sederhana) maupun statemen majemuk.
- Pernyataan kosong berarti tidak mengandung penyataan.
- Nilai kondisi bernilai nol berarti salah, sedangkan selain nol berarti
benar.

Statemen Terstruktur

49

salah
Kondisi
benar

Pernyataan

Gambar 4.1 Diagram alir Statemen if.


- Contoh pemakaian if misalnya untuk menentukan besarnya
discount yang diterima oleh seorang pembeli, berdasarkan kriteria:
o Tidak ada discount jika total pembelian kurang dari 100.000.
o Bila total pembelian lebih besar dari atau sama dengan
100.000, discount yang akan diterima sebesar 5 % dari total
pembelian.
- Penyelesaian dapat dilakukan dengan membuat asumsi bahwa
default-nya discount = 0 (tidak ada discount).
- Kemudian jika total pembelian lebih dari atau sama dengan
100.000, maka besarnya discount diubah menjadi 5 % dari total
pembelian.
Discount = 0;
if (total_pembelian >= 100000)
Discount = 0.05 * total_pembelian;
- Dengan penentuan pengambilan keputusan seperti di atas,
seandainya total_pembelian kurang dari 100.000, maka pernyataan
Discount = 0.05 * total_pembelian;
Tidak dijalankan. Dengan demikian discount tetap akan bernilai
nol.
5.1 Statemen if-else
Statemen if-else mempunyai sintaks:
if (kondisi)
pernyataan-1
else
pernyataan-2;

Statemen Terstruktur

50

salah
Kondisi
benar

Pernyataan-1

Pernyataan-2

Gambar 4.2 Diagram Alir if-else.


- Maksud dari pernyataan if-else adalah:
o Jika kondisi benar, maka pernyataan-1 dijalankan,
o Sedangkan jika kondisi bernilai salah, maka pernyataan-2
yang akan dijalankan.
- Masing- masing pernyataan-1 dan pernyataan-2 dapat berupa
sebuah pernyataan tunggal maupun pernyataan majemuk.
/* ------------------------------------------- */
/* File program : Diskon.c
*/
/* Contoh pemakaian if-else
*/
/* Untuk menentukan besarnya diskon */
/* ------------------------------------------- */
#include <stdio.h>
main()
{
double total_pembelian, discount;
printf ("Total pembelian : Rp ");
scanf("%lf", &total_pembelian);
if (total_pembelian >= 100000)
discount = 0.05 * total_pembelian;
else
discount = 0;
printf("Besarnya diskon : %.2lf\n", discount);
}
Program 4-1

Statemen Terstruktur

- Pada program di atas, pernyataan:


If (total_pembelian >= 100000)
Discount = 0.05 * total_pembelian;
Else
Discount = 0;
- digunakan untuk menggantikan pernyataan :
discount = 0;
if (total_pembelian >= 100000)
discount = 0.05 * total_pembelian;
/* --------------------------------------------------------- */
/* File program : Genap.c
*/
/* Contoh pemakaian if-else
*/
/* Untuk menentukan bilangan genap atau ganjil */
/* --------------------------------------------------------- */
#include <stdio.h>
main()
{
int bilangan;
printf ("Masukkan sebuah bilangan bulat ");
scanf("%d", &bilangan);
if (bilangan % 2)
{
printf("Nilai %d tidak habis dibagi 2\n", bilangan);
puts("Karena itu termasuk bilangan ganjil");
}
else
{
printf("Nilai %d habis dibagi 2\n", bilangan);
puts ("karena itu termasuk sebagai bilangan genap");
}
}
Program 4-2
Contoh eksekusi:
C>Genap
Masukkan sebuah bilangan bulat: 6
Nilai 6 habis dibagi 2
Karena itu termasuk sebagai bilangan genap

51

Statemen Terstruktur

52

5.2 Pemakaian if Secara Bertingkat


- Dalam bahasa C dimungkinkan untuk menggunakan statemen if (
atau if-else) secara bertingkat , yaitu di dalam suatu statemen if
(atau if-else) terdapat pernyataan if (atau if-else) yang lain.
- Bentuk bertingkat seperti di atas disebut sebagai nested if.
/* ------------------------------------------- */
/* File program : hari.c
*/
/* Contoh pemakaian if-else bertingkat
*/
/* Untuk menampilkan nama hari
*/
/* ------------------------------------------- */
#include <stdio.h>
main()
{
int kode_hari;
puts("Menentukan hari\n");
puts("1 = SENIN 3 = RABU
5 = JUMAT 7 = MINGGU");
puts("2 = SELASA
4 = KAMIS 6 = SABTU
");
printf("\nMasukkan kode hari (1 .. 7): ");
scanf("%d", &kode_hari);
if (kode_hari == 1)
puts("Hari SENIN");
else
if (kode_hari == 2)
puts("Hari SEELASA");
else
if (kode_hari == 3)
puts("Hari RABU");
else
if (kode_hari == 4)
puts("Hari KAMIS");
else
if (kode_hari == 5)
puts("Hari JUMAT");
else
if (kode_hari == 6)
puts("Hari SABTU");
else
if (kode_hari == 7)
puts("Hari MINGGU");
else
puts("kode yang anda
masukkan salah !");
}

Program 4-3

Statemen Terstruktur

53

Contoh hasil keluaran program:


C>hari
Menentukan hari
1 = SENIN
2 = SELASA

3 = RABU
4 = KAMIS

5. = JUMAT
6 = SABTU

7 = MINGGU

Masukkan kode hari (1 .. )


Hari Rabu.
6. Statemen Switch
- Statemen switch merupakan statemen yang dirancang khusus untuk
menangani pengambilan keputusan yang melibatkan sejumlah
alternatif.
- Diantaranya untuk menggantikan pernyataan if bertingkat,
misalnya pada penentuan nama hari, atau pada aplikasi menu
dialog sederhana.
- Bentuk umum statemen switch adalah:
Switch (ekspresi)
{
case konstanta-1:
pernyataan-1
break;
case konstanta-2:
pernyataan-2
break;
.
:
case konstanta-x:
pernyataan-n
break;
default:
pernyataan-x;
}
- Ekspresi dapat berupa ungkapan bernilai integer atau bertipe
karakter.
- Setiap konstanta-i (konstanta-1, konstanta-2, , konstanta-n)
dapat berupa konstanta integer atau karakter.

Statemen Terstruktur

54

- Pernyataan-I (pernyataan-1, pernyataan-2, , pernyataan-n)


dapat berupa satu atau beberapa pernyataan.
- Pengujian pada switch akan dimulai dari konstanta-1.
- Jika nilai konstanta-1 cocok dengan ekspresi, maka pernyataan-1
dijalankan.
- Selanjutnya adanya pernyataan break menyebabkan eksekusi
diarahkan ke akhir switch.
- Jika ternyata nilai konstanta-1 tidak sama dengan nilai ekspresi,
pengujian dilakukan untuk konstanta-2, dan berikutnya serupa
dengan pengujian konstant-1.
- Jika sampai pengujian case yang terakhir, ternyata tidak ada
kecocokan, maka pernyataan yang mengikuti kata-kunci default
yang akan dijalankan.
- Diagram alir statemen switch diperlihatan pada Gambar 4.4, dan
contoh program pemakaian switch untuk menggantikan
penggunaan if-else bertingkat diperlihatkan pada program 4-4.

ekspresi = =
konstanta-1

ya

break
Pernyataan-1

tidak

ekspresi = =
konstanta-2

ya

break
Pernyataan-2

tidak

ekspresi = =
konstanta-n

ya

break
Pernyataan-n

tidak
Pernyataan
dafault

Gambar 4.4 Diagram Alir Statemen Switch.

Statemen Terstruktur

/* ------------------------------------------- */
/* File program : hari.c
*/
/* Contoh pemakaian Switch
*/
/* Untuk menampilkan nama hari
*/
/* ------------------------------------------- */
#include <stdio.h>
main()
{
int kode_hari;
puts("Menentukan hari\n");
puts("1 = SENIN 3 = RABU
5 = JUMAT 7 = MINGGU");
puts("2 = SELASA 4 = KAMIS
6 = SABTU
");
printf("\nMasukkan kode hari (1 .. 7): ");
scanf("%d", &kode_hari);
switch (kode_hari)
{
case 1:
puts("Hari SENIN");
break;
case 2:
puts("Hari SEELASA");
break;
case 3:
puts("Hari RABU");
break;
case 4:
puts("Hari KAMIS");
break;
case 5:
puts("Hari JUMAT");
break;
case 6:
puts("Hari SABTU");
break;
case 7:
puts("Hari MINGGU");
break;
default:
puts("kode yang akan masukkan salah !");
}
}

Program 4-4

55

Statemen Terstruktur

56

- Terlihat dari program 4-4 di atas, bahwa dengan menggunakan


pernyataan switch, program menjadi lebih jelas dan mudah
dipahami.
- Penyertaan pernyataan break pada program di atas sesudah
penyataan puts( ) dimaksudkan agar setelah menampilkan string,
eksekusi dilanjutkan ke akhir switch.
- Pada bagian default tidak perlu ada break, karena jika pernyataan
yang mengikuti default dieksekusi, terakhir kali dengan sendirinya
akan menuju ka akhir switch.
- Jika dalam suatu case tidak terdapat statemen break, maka
seandainya nilai pada case cocok dengan nilai ungkapan switch,
eksekusi akan dilanjutkan ke pernyataan yang terletak pada case
berikutnya (sampai ditemukannya statemen break atau akhir
switch).

Statemen Terstruktur

57

QUIS
1. Buatlah program dengan masukan berupa suatu nilai antara 0
sampai 100 dan program akan memberikan keluaran berupa
klasifikasi A, B, C, D, atau E berdasarkan kriteria berikut:
Nilai
Klasifikasi
A
Nilai > 90
B
70 < Nilai < 90
C
60 < Nilai <70
D
50 < Nilai <60
Nilai < 50
E
Variabel Nilai bertipe float, dan Klasifikasi bertipe char.
2. Buatlah program untuk memasukkan tiga buah bilangan yang
dinyatakan dengan x, y, dan z, dan selanjutnya program akan
memberikan keluaran berupa nila terbesar dan nilai terkecil dari
ketiga bilangan yang dimasukkan.