• Tidak ada hasil yang ditemukan

STRUKTUR RUNTUNAN DAN CONTROL STATEMENTSTRUKTUR RUNTUNAN DAN CONTROL STATEMENT

Dalam dokumen Pemrograman-1 (Halaman 27-43)

STRUKTUR RUNTUNAN DAN CONTROL STATEMENT

3.1 Tujuan 3.1 Tujuan

a.

a. MeneraMenerangkan langkah-lngkan langkah-langkah logis dalam suatu alangkah logis dalam suatu algoritmagoritma  b.

 b. Menerangkan Menerangkan macam-macam macam-macam control control statement statement di di dalam dalam C++C++ c.

c. MeneraMenerangkan cara menggunangkan cara menggunakan control skan control statemetatementnt d.

d. MeneraMenerangkan operasi logika untuk mengatur kondngkan operasi logika untuk mengatur kondisi salam control stateisi salam control statementment e.

e. PraktiPraktikan mampu menyeleskan mampu menyelesaikan masalaikan masalah ah secarsecara runtun dan logisa runtun dan logis f.

f. PraktiPraktikan memahamkan memahami cara menggunakai cara menggunakan control sn control statemetatementnt g.

g. PraktiPraktikan memahami cara mengatur kondikan memahami cara mengatur kondisi si di dalam control statemdi dalam control statementent

3.2 Teori 3.2 Teori a.

a. PendahulPendahuluanuan

Al

Algorgorititma ma memeruprupakaakan n runruntuntunan an (s(sequequencence) e) sasatu tu ataatau u lelebibih h ininstrstruksuksi i ataatau u perpernynyataaataann (st

(statematement)ent), , dan dan setisetiap ap pernpernyatayataan an dikdikerjerjakan akan secsecara ara beberurururutan tan sessesuai uai dengdengan an uruturutanan  penulisannya,

 penulisannya, yang yang berarti berarti bahwa bahwa :: 1.

1. SetiaSetiap instrp instruksi diuksi dikerjakakerjakan satu pen satu per satur satu 2.

2. TiTiap instruksap instruksi dilaksanai dilaksanakan tepat sekalkan tepat sekali (tidak ada instruksi (tidak ada instruksi yang diulang)i yang diulang) 3.

3. TiTiap ap ininstrustruksi dilakksi dilaksanasanakan kan dengdengan an uruturutan an yang yang samsama a anantara pemrostara pemroses es dendengangan yang tertulis di dalam teks algoritmanya

yang tertulis di dalam teks algoritmanya 4.

4. AkhiAkhir dari instrr dari instruksi terauksi terakhikhir merupakan akhr merupakan akhir algoriir algoritma.tma.

Sebagai contoh, misalkan saja kita memiliki dua buah gelas, gelas A dan gelas B, yang Sebagai contoh, misalkan saja kita memiliki dua buah gelas, gelas A dan gelas B, yang  berisi

 berisi minuman. minuman. Gelas Gelas A A berisi berisi kopi kopi dan dan gelas gelas B B berisi berisi susu. susu. Jika Jika kita kita ingin ingin menukar menukar isiisi da

dari ri kekedudua a gegellas as tetersrsebebutut, , sususu su memenenemmpatpati i gegelalas s A A dadan n kokopi pi mmenenemempapati ti gegellas as B.B. Bagai

Bagaimana mana kita akan kita akan melakukamelakukannya? Perhatikan algoritmnnya? Perhatikan algoritma a beriberikut:kut: 1.

2.

2. TuTuangangkan kan isi isi gelgelas as B B ke ke gelgelas as AA

Apakah yang akan terjadi pada kopi dan susu tersebut? Apakah susu sekarang berada Apakah yang akan terjadi pada kopi dan susu tersebut? Apakah susu sekarang berada  pada

 pada gelas gelas A A dan dan kopi kopi berada berada pada pada gelas gelas B?B?

Yang terjadi adalah ketika anda menuang isi gelas A, kopi, ke gelas B pada langkah Yang terjadi adalah ketika anda menuang isi gelas A, kopi, ke gelas B pada langkah  pertama,

 pertama, gelas gelas B B sedang sedang berisi susu, berisi susu, sehingga sehingga anda anda melakukan melakukan pencampuran pencampuran kopi kopi dengandengan susu

susu. . Pada langkah kedua, kopi Pada langkah kedua, kopi sussusu u pada gelas B pada gelas B dipidipindahkan ke ndahkan ke gelas A. Hasil akhirnygelas A. Hasil akhirnyaa adalah gelas A berisi kopi susu sedangkan gelas B akan kosong.

adalah gelas A berisi kopi susu sedangkan gelas B akan kosong. Lal

Lalu u bagaibagaimana algoritma yang benar? Di mana algoritma yang benar? Di sinsini i kita memerlkita memerlukan ukan 1 gelas tambahan,1 gelas tambahan, gelas C, untuk menampung sementara isi salah satu gelas agar tidak terjadi percampuran isi gelas C, untuk menampung sementara isi salah satu gelas agar tidak terjadi percampuran isi gelas. Algoritmnya akan menjadi:

gelas. Algoritmnya akan menjadi: 1.

1. TuTuanangkgkan an iisi si gegellasas AA ke ke gegellas as CC 2.

2. TuTuangangkan kan isi isi gelgelas as B B ke ke gelgelas as AA 3.

3. TuTuangangkan kan isi isi gelgelas as C C ke ke gelgelas as BB

Apa yang terjadi di sini? Kondisi mula-mula adalah gelas A berisi kopi, gelas B berisi Apa yang terjadi di sini? Kondisi mula-mula adalah gelas A berisi kopi, gelas B berisi susu dan gelas C kosong. Pada langkah pertama kita menuang kopi ke gelas C yang masih susu dan gelas C kosong. Pada langkah pertama kita menuang kopi ke gelas C yang masih kosong, sehingga gelas C berisi kopi dan gelas A menjadi kosong. Pada langkah kedua kita kosong, sehingga gelas C berisi kopi dan gelas A menjadi kosong. Pada langkah kedua kita me

memimindahndahkakan n sususu su dadari ri gelgelas as B B memenunuju ju gegelalas s A A yayang ng susudah dah koskosonong g kakarerena na lalangkngkahah  pertama.

 pertama. Hasil Hasil akhirnya akhirnya adalah adalah gelas A gelas A berisi berisi susu, susu, gelas gelas B B kosong kosong dan dan gelas gelas C C berisi berisi kopi.kopi. Langkah terakhir adalah menuangkan kopi ke gelas B sehingga gelas A berisi susu, gelas B Langkah terakhir adalah menuangkan kopi ke gelas B sehingga gelas A berisi susu, gelas B  berisi

 berisi kopi kopi dan dan gelas gelas C C kosong kosong kembali. kembali. Hasil akHasil akhir sesuai hir sesuai dengan dengan yang yang kita kita harapkan.harapkan. La

Lalu lu apaapakakah h mamasalsalah ah seselelesai sai hahanynya a dedengangan n memenggnggunaunakan kan sasatu tu gegelalas s tatambmbahaahann sebagai penyimpan sementara? Ternyata tidak. Misal kita ubah urutan kedua dan ketiga sebagai penyimpan sementara? Ternyata tidak. Misal kita ubah urutan kedua dan ketiga  pada

 pada algoritma algoritma di di atas.atas. 1.

1. TuTuanangkgkan an iisi si gegellasas AA ke ke gegellas as CC 2.

2. TuTuangangkan kan isi isi gelgelas as C C ke ke gelgelas as BB 3.

3. TuTuangangkan kan isi isi gelgelas as B B ke ke gelgelas as AA Pada algori

Pada algoritma ini, terjadi hal tma ini, terjadi hal yang hampir sama dengan yang hampir sama dengan algorialgoritma pertama kita. Padatma pertama kita. Pada langkah pertama, sudah benar kita menuang kopi ke gelas kosong. Tapi pada langkah langkah pertama, sudah benar kita menuang kopi ke gelas kosong. Tapi pada langkah

kedua, kita menuang kembali kopi tadi, gelas C, ke gelas B yang masih berisi susu. kedua, kita menuang kembali kopi tadi, gelas C, ke gelas B yang masih berisi susu. Sehingga gelas A kosong, gelas B kopi susu dan gelas C kosong. Pada langkah terakhir, Sehingga gelas A kosong, gelas B kopi susu dan gelas C kosong. Pada langkah terakhir, kita memindahkan kopi susu pada gelas B ke gelas A, sehingga gelas B dan C menjadi kita memindahkan kopi susu pada gelas B ke gelas A, sehingga gelas B dan C menjadi kosong.

kosong.

Dari ketiga algoritm

Dari ketiga algoritma a di atas, di atas, ternternyata yata untuk menyeluntuk menyelesaikan suatu masalah, menukar esaikan suatu masalah, menukar isiisi gelas

gelas, , selselain ain diperldiperlukan ukan cara yang cara yang tepat, ternytepat, ternyata ata urutan dari langkah-lanurutan dari langkah-langkahnyapun harusgkahnyapun harus  benar.

 benar. Hal Hal yang yang sama sama berlaku berlaku pada pada algoritma algoritma suatu suatu program program yang yang memerlukan memerlukan cara cara yangyang tepat serta urutan langkah atau runtunan yang benar untuk mendapatan output atau hasil tepat serta urutan langkah atau runtunan yang benar untuk mendapatan output atau hasil yang

yang diharapkdiharapkan.an.

Suatu permasalahan serupa pada algoritma suatu pemrograman adalah ketika kita ingin Suatu permasalahan serupa pada algoritma suatu pemrograman adalah ketika kita ingin menukar isi dari dua buah variabel, seperti kode berikut:

menukar isi dari dua buah variabel, seperti kode berikut:

Gambar 3. 1. Source Code tukar nilai Gambar 3. 1. Source Code tukar nilai

Maka yang

Maka yang kita perlukan adalah sebuah kita perlukan adalah sebuah varivariabel abel pembantu untuk menyimpembantu untuk menyimpan pan sementarsementaraa data dari

data dari variavariabel bel tersetersebutbut

Gambar 3. 2. Source Code variable pembantu Gambar 3. 2. Source Code variable pembantu

Jika kita cetak isi dari semua variabel pada tahap inisialisasi, maka akan di dapatkan hasil Jika kita cetak isi dari semua variabel pada tahap inisialisasi, maka akan di dapatkan hasil sebagai berikut

Gambar 3. 3. Inisialisasi Gambar 3. 3. Inisialisasi

Langkah pertama dalam melakukan pertukaran ini adalah dengan memindahkan nilai dari Langkah pertama dalam melakukan pertukaran ini adalah dengan memindahkan nilai dari variabel x ke variabel z.

variabel x ke variabel z.

Gambar 3. 4. Pindah nilai Gambar 3. 4. Pindah nilai

Isi dari masing-masing variabel setelah proses ini adalah sebagai berikut Isi dari masing-masing variabel setelah proses ini adalah sebagai berikut

Gambar 3. 5. Pertukaran variabel Gambar 3. 5. Pertukaran variabel

Langkah berikutn

Langkah berikutnya adalah memindahkan nilai dari variabel y ya adalah memindahkan nilai dari variabel y ke variabel xke variabel x

Gambar 3. 6. Pindah nilai dalam variabel Gambar 3. 6. Pindah nilai dalam variabel

Sehingga masing-masing variabel akan bernilai Sehingga masing-masing variabel akan bernilai

Gambar 3. 7. Hasil Tukar nilai Gambar 3. 7. Hasil Tukar nilai

Langkah terakhi

Gambar 3. 8. Pindah Variabel Gambar 3. 8. Pindah Variabel

sehingga hasil dari langkah ini merupakan solusi dari permasalahan awal, yaitu sehingga hasil dari langkah ini merupakan solusi dari permasalahan awal, yaitu

Gambar 3. 9. Tukar nilai Gambar 3. 9. Tukar nilai

Berikut seluruh kode dan output dari persoalan di atas Berikut seluruh kode dan output dari persoalan di atas

Gambar 3. 10. Source Code Tukar Nilai Gambar 3. 10. Source Code Tukar Nilai

Gambar 3. 11. Source Code Tukar Nilai(lanjt) Gambar 3. 11. Source Code Tukar Nilai(lanjt)

Gambar 3. 12. Proses Pertukaran Gambar 3. 12. Proses Pertukaran

b.

b. CoContrntrol ol stastatemtementent

Con

Controtrol l ststatatememenent t atatau au lelebibih h didikenkenal al dendengagan n sesebubutan tan pepercarcababangangan n dadapapat t memenjnjadiadikankan  program

 program menjadi menjadi fleksibel. fleksibel. Dengan Dengan control control statement statement kita kita bisa bisa mendefinisikan mendefinisikan barisbaris  program

 program yang yang akan akan dieksekusi dieksekusi apabila apabila suatu suatu kondisi kondisi terpenuhi, terpenuhi, dan dan tidak tidak dieksekusidieksekusi apab

apabilila a konkondidisi si titidak dak terterpenpenuhiuhi. . DalDalam am C++ C++ concontrol statemtrol statement ent ada ada dua dua jenjenis. is. PertPertamaama,, memakai if...el

memakai if...else dan se dan yang kedua yang kedua memmemakai akai swiswitch tch case.case.

If ... Else If ... Else

Bentuk umum dari

Bentuk umum dari statemstatement if ent if adaladalahah

if

if (kon(kondisdisi)i) { { statement1; statement1; statement2; statement2; .... .... statementN; statementN; } } atau : atau : if

if (kon(kondisdisi)i) { { statement1; statement1; statement2; statement2; .... .... statementN; statementN; } } els

else e if if (ko(kondisndisi)i) { { statement1; statement1; statement2; statement2; .... .... statementN; statementN; } } ... ... else else { { statement1; statement1; statement2; statement2; .... .... statementN; statementN; } }

Tingkatan if...else disesuaikan dengan kebutuhan. Tingkatan if...else disesuaikan dengan kebutuhan.

Kondisi yang harus dipenuhi dapat berbentuk ekspresi dengan operator logika dan operator  Kondisi yang harus dipenuhi dapat berbentuk ekspresi dengan operator logika dan operator  relasi.

relasi.

Operator logi

Operator logika ka yang bisa digunakan antara lain :yang bisa digunakan antara lain :

 Simbol

 Simbol Arti Arti 

&

&& & AANNDD

|||| OORR   

!

! NNOOTT

Sedangkan operator relasi antara lain : Sedangkan operator relasi antara lain :

 Simbol

 Simbol Arti Arti 

=

== = ssaamma a ddeennggaann >

>= = lleebbiih h ddaarri i ssaamma a ddeennggaann >

> lleebbiih h ddaarrii <

<= = kkuurraanng g ddaarri i ssaamma a ddeennggaann <

< kkuurraanng g ddaarrii

!!= = ttiiddaak k ssaamma a ddeennggaann Contoh program

Gambar 3. 13. Source code I/O Gambar 3. 13. Source code I/O

contoh di atas apabila variabel diberi nilai lebih dari 10 maka statement jumlah = jumlah + contoh di atas apabila variabel diberi nilai lebih dari 10 maka statement jumlah = jumlah +  b

 b akan akan dijalankan. dijalankan. Namun Namun apabila apabila nilai nilai yang yang dimasukkan dimasukkan sama sama dengan dengan 10 10 atau atau kurang kurang daridari 10, maka statement else dijalankan. Karena statement hanya satu baris maka tanda kurawal 10, maka statement else dijalankan. Karena statement hanya satu baris maka tanda kurawal  bisa

 bisa dihilangkan.dihilangkan. Ku

Kursrsor or kokompmpililasi asi akaakan n memenjnjalalankaankan n stastatetemement nt jujumlmlah ah = = jujumlmlah ah + + b b apapabiabila la konkondidisisi  pertama

 pertama true, true, kemudian kemudian kebenaran kebenaran dari dari else else tidak tidak dicek dicek karena karena kondisi kondisi pertama pertama sudah sudah true.true.  Namun

 Namun jika jika kondisi kondisi pertama pertama tidak tidak true true baru baru else delse dicek.icek. Dalam mendesai

Dalam mendesain n control statemcontrol statement sebaiknya ent sebaiknya kita menggunakan garis bilangan supayakita menggunakan garis bilangan supaya mud

mudah ah untuntuk uk mengmengetahetahui ui wiwilaylayah ah true true masmasing-ing-masmasining g konkondidisi. si. SemSemisal isal kitkita a mememimilikiliki control statem

control statement dengan ent dengan kondikondisi si sbb :sbb :

if (b >= 20) if (b >= 20) .... .... el elsse e if (b if (b < < 2020) ) ANAND D (b >= (b >= 1010)) .... .... e ellsse e iif f ((b b <<= = 55) ) AANND D ((b b >>= = 00)) .... .... else else .... ....

contoh di

contoh di atas memiliatas memiliki ki 4 4 kondikondisi si dengan garis bilangan masing-mdengan garis bilangan masing-masingasing

Pengecekan 4 kondisi di atas terjadi pertama kali di kondisi 1. Apabila kondisi 1 sudah true Pengecekan 4 kondisi di atas terjadi pertama kali di kondisi 1. Apabila kondisi 1 sudah true maka kondisi-kondisi berikutnya tidak dicek oleh kursor kompilasi. Namun jika kondisi maka kondisi-kondisi berikutnya tidak dicek oleh kursor kompilasi. Namun jika kondisi  pertama

 pertama tidak tidak true, true, maka maka kondisi kondisi kedua kedua dicek. dicek. Kondisi Kondisi kedua kedua sudah sudah true true maka maka kondisikondisi lai

lainnynnya a di di bawabawah h konkondisdisi i dua dua titidak dak didicek. cek. BegBegitu itu seseterusterusnynya a hihingga ngga konkondisdisi i keemkeempat.pat. Pengecek

Pengecekan an seperseperti ini ti ini terjterjadi karena coadi karena control statemntrol statement di ent di atas masih dalam atas masih dalam satu blok.satu blok. Pen

Pentingtingnya nya menmenggamggambarkabarkan n garigaris s bibilangalangan n jujuga ga kikita ta jujumpai mpai pada pada kaskasus us tertertententu tu sepsepertierti contoh berikut : contoh berikut : if (b >= 20) if (b >= 20) .... .... el elsse e if (b if (b < < 2020) ) ANAND D (b >= (b >= 2525)) .... .... Garis bilangannya sbb : Garis bilangannya sbb : kondisi 1 kondisi 1 20 20 kondisi 2 kondisi 2 2 200 2255 0 0 55 20 20 20 20 10 10 0 0 55 10 10 Kondisi 1 Kondisi 1 Kondisi 2 Kondisi 2 Kondisi 3 Kondisi 3 Kondisi 4 Kondisi 4

Terdapat ketimpangan daerah true antara kondisi 1 dan 2. Ketimpangan terjadi pada b >= Terdapat ketimpangan daerah true antara kondisi 1 dan 2. Ketimpangan terjadi pada b >= 25. Kondisi 1 dan 2 memenuhi nilai tersebut. Namun karena kedua kondisi masih dalam 25. Kondisi 1 dan 2 memenuhi nilai tersebut. Namun karena kedua kondisi masih dalam satu blok control statement maka kondisi 1 saja yang akan dijalankan statementnya karena satu blok control statement maka kondisi 1 saja yang akan dijalankan statementnya karena kondisi satu lebih dahulu dijumpai oleh kursor kompilasi.

kondisi satu lebih dahulu dijumpai oleh kursor kompilasi.

Blok kondisi dimulai dengan kata if dan diakhiri dengan kata else atau adanya blok kondisi Blok kondisi dimulai dengan kata if dan diakhiri dengan kata else atau adanya blok kondisi  baru.

 baru. MisalnyaMisalnya

if

if (kon(kondisdisi)i) if

if (kon(kondisdisi)i) .... .... els

else e if if (ko(kondindisi)si) ....

.... els

else e if if (ko(kondndisisi) i) AND AND (ko(kondndisisi)i) ....

.... else

else if

if (kon(kondisdisi)i) .... .... els

else e if if (kon(kondisdisi)i) ....

....

Pada contoh di atas terdapat tiga blok control statement. blok 1 adalah baris pertama, blok  Pada contoh di atas terdapat tiga blok control statement. blok 1 adalah baris pertama, blok  2

2 adaadalalah h babariris s 2-2-5, 5, dadan n blblok ok 3 3 adadalalah ah babariris s 6-76-7. . BlBlok ok kokondndisisi i beberberbeda da dedengangan n concontrtrolol stat

statemeement nt bersbersaraarang. ng. MasMasining-masg-masing ing blblok ok memmemiliiliki ki kedukedudukadukan n sesejajjajar. ar. BerBerikikut ut concontohtoh control statement bersarang

control statement bersarang

if

if (kon(kondisdisi)i) { { statement; statement; .... .... if

if (kon(kondisdisi)i) statement; statement; els

else e if if (ko(kondindisi)si) statement; statement; els

{ {

if

if (kon(kondisdisi)i) statement; statement; els

else e if if (kon(kondisdisi)i) statement; statement; else else statement; statement; } } else else statement; statement; } }

Contoh di atas memiliki blok control statement yang berbeda. Namun ketiga blok control Contoh di atas memiliki blok control statement yang berbeda. Namun ketiga blok control statement tersebut tidak sama tingkatannya. Blok ketiga merupakan bagian dari blok kedua, statement tersebut tidak sama tingkatannya. Blok ketiga merupakan bagian dari blok kedua, dan blok kedua merupakan bagian dari blok pertama.

Gambar 3. 14. Contoh Lain Else-if  Gambar 3. 14. Contoh Lain Else-if 

Contoh ini akan

c.

c. SwSwititch ch ... . CaCasese

Control statemen menggunakan switch ... case hanya pada kondisi yang memakai operasi Control statemen menggunakan switch ... case hanya pada kondisi yang memakai operasi relasi sama dengan. Pada contoh terakhir control statement menggunakan if else, semua relasi sama dengan. Pada contoh terakhir control statement menggunakan if else, semua k

kononddiissi i mmenenggggununaakkaan n opopeerraassi i rerellaassi i ssaamma a dedenngagann. . OOlleh eh kkaarreenanannyya a ununtutuk k  menyeder

menyederhanakan penulihanakan penulisan, san, bisbisa a digunakadigunakan n swiswitch tch ... case seperti pada ... case seperti pada contohcontoh

Gambar 3. 15. Contoh switch case Gambar 3. 15. Contoh switch case

swi

switch tch case menyederhanakcase menyederhanakan an penulipenulisan san berulberulang-ulang-ulang ang if if else dan else dan kondikondisi-kondisi-kondisinya.sinya. Ke

Kesasalalahan han keketitik k dadapat pat didimimininimimilaslasirir. . SeSelalain in ititu u pepengengececekan kan konkondidisi si lelebibih h mumudadahh menggunakan switch case. Ada fungsi tambahan yaitu break. gunanya untuk keluar dari menggunakan switch case. Ada fungsi tambahan yaitu break. gunanya untuk keluar dari swi

switch tch jijika ka salsalah ah sasatu tu konkondisdisi i teltelah ah terterpenpenuhiuhi. . DenDengan gan adaadanynya a brbreak, eak, apabapabilila a salsalah ah satusatu case sudah ada yang terpenuhi maka case lain di bawahnya tidak dicek. Oleh karenanya case sudah ada yang terpenuhi maka case lain di bawahnya tidak dicek. Oleh karenanya dengan adanya break kita bisa membedakan apakah kondisi tersebut masih dalam satu blok  dengan adanya break kita bisa membedakan apakah kondisi tersebut masih dalam satu blok 

Dalam dokumen Pemrograman-1 (Halaman 27-43)