Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

III. STRUKTUR KONTROL.

Presentasi serupa


Presentasi berjudul: "III. STRUKTUR KONTROL."— Transcript presentasi:

1 III. STRUKTUR KONTROL

2 Struktur Kontrol = Kombinasi dari perintah-perintah individual menjadi satu unit logik dengan satu titik masuk (start) dari satu titik keluar (stop). Terbagi menjadi tiga, yaitu : Sequensial Pilihan Perulangan

3 1. Struktur Kontrol Sequensial
Setiap perintah dijalankan secara urut dari awal sampai akhir. Start Stop Perintah n Perintah 1

4 Latihan : Buat program untuk mengkonversikan derajat celcius ke dalam derajat fahrenheit dan derajat Reamur. Buat program untuk menghitung total resistansi dari tiga buh resistor yang dipasang secara paralel. Biaya sewa ruang di Tunjungan Plaza dihitung dari biaya sewa ruang ditambah dengan total biaya sewa listrik. Biaya sewa ruang adalah $ 8/m2/Bulan, biaya beban PLN adalah Rp 8.000,-/Bulan. Hitung berapa rupiahkah yang harus dibayar oleh Tedi yang menyewa ruang seluas 32 m2 dengan daya 2200 KWH pada bulan Agustus 1999 jika diketahui pemakaian listrik pada bulan tersebut adalah 200KWH.

5 2. Struktur Kontrol Pilihan
Sebuah struktur kontrol yang memilih satu alternatif diantara beberapa alternatif Start Stop Perintah n Perintah 1 PerintahT Kondisi PerintahF Benar Salah

6 Ekspresi Logika = Ekspresi yang mempunyai 2 kemungkinan nilai, yaitu benar atau salah. Pada Turbo C, kondisi benar dapat diwakili oleh bilangan bukan nol sedangkan kondisi salah selalu diwakili dengan nol. Ekspresi logika dengan menggunakan operator relasi Operator relasi = Operator yang digunakan untuk membandingkan nilai dari 2 ekspresi. Hasil pembandingannya bisa benar atau salah. ! Tipe data character juga dibandingkan berdasarkan nilai Ascii-nya.

7 Operator Relasi / Pembanding
< Lebih Kecil <= Lebih kecil sama dengan > Lebih besar >= Lebih besar sama dengan == Sama dengan != Tidak sama dengan

8 Operator yang digunakan untuk menghubungkan ekspresi logika.
Operator Logika Operator yang digunakan untuk menghubungkan ekspresi logika. Tiga operator logika yang sering digunakan : Operator ! (NOT) Operator AND Operator OR Operand Not(Operand) True False Operand1 Operand2 And Or True False

9 Hirarki Operator No Prioritas 1 ( ) 2 unary unary + 3 * div mod 4 - + 5 < <= > >= 6 = < > (perbandingan) 7 And 8 Or 9 =

10 Ada tiga macam perintah untuk struktur kontrol pilihan :
IF ELSE OPERATOR KONDISI TRINARI SWITCH Perintah IF ELSE Satu alternatif Fo rmat : IF ( <kondisi> ) { < StatementsT >; } Keterangan : Bila kondisi bernilai true maka statementsT dijalankan. Bila kondisi bernilai false maka statementsT tidak dikerja Contoh : Baca problem : Menentukan apakah sebuah bilangan yang diinput merupakan bilangan genap.

11 Analisis : Input : Bilangan
Output : Tampilkan pesan genap bila bilangan yang diinput bilangan genap Informasi tambahan : Sebuah bilangan dikatakan bilangan genap apabila bilangan tersebut bila dibagi dengan 2 mempunyai sisa nol. #include<stdio.h> void main() { int bilangan ; scanf(“%d”,&bilangan); if (bilangan % 2 == 0) printf(“Bilangan Genap”); } Penjelasan : Bilangan % 2 != 0 boleh disingkat menjadi bilangan % 2

12 Dua alternatif Format : IF (<kondisi>) { < StatementsT > ; } ELSE { < StatementsF > ; } Keterangan : Bila kondisi bernilai true maka statementsT dijalankan. Bila kondisi bernilai false maka statementsF yang dikerjakan. Contoh : Baca problem : Menentukan apakah sebuah bilangan yang diinput merupakan bilangan genap atau bilangan ganjil. Analisis : Input : Bilangan Output : Tampilkan pesan genap bila bilangan yang diinput bilangan genap dan tampilkan pesan ganjil bila bilangan yang diinput bilangan ganjil

13 Informasi tambahan : Sebuah bilangan dikatakan bilangan genap apabila bilangan tersebut bila dibagi dengan 2 mempunyai sisa nol dan merupakan bilangan ganjil bila dibagi dengan 2 mempunyai sisa 1. Implementasi : #include<stdio.h> void main() { int bilangan; scanf(“%d”, &bilangan); if (bilangan%2==0) printf(“Bilangan genap”); else printf(“Bilangan ganjil”); }

14 Multi alternatif Format : IF (<kondisi_1>) { Statements_1T ;} ELSE …… IF ( <kondisi_n> ) {< Statements_n T > ;} {< Statements_nF >;} Keterangan : Bila kondisi_1 bernilai true maka statements_1T dijalankan. Bila kondisi_1 bernilai false maka dilakukan pengecekan lagi terhadap kondisi_2. Bila kondisi_2 bernilai true maka statements_2T dijalankan. Bila kondisi_2 bernilai false maka dilakukan pengecekan lagi terhadap kondisi_3. Demikian seterusnya sampai yang terakhir bila kondisi_n benar maka statements_nT dijalankan, tetapi bila kondisi_n bernilai false statements_nF yang dikerjakan. Pada multiple if, perintah else akan dihubungkan dengan if sebelumnya yang terdekat. (lihat contoh 2)

15 Contoh 1: Baca problem : Menentukan apakah sebuah bilangan yang diinput adalah bilangan positif atau bilangan negatif atau nol. Analisis : Input : Bilangan Output : Pesan ‘Bilangan positif / negatif / nol’ sesuai dengan yang diinput. Informasi tambahan : Sebuah bilangan dikatakan positif bila bilangan tersebut lebih besar dari nol dan dikatakan negatif bila bilangan tersebut kurang dari nol.

16 Implementasi : #include <stdio.h> void main() { int bilangan; scanf(“%d”,&bilangan); if (bilangan > 0) printf(“Bilangan positif”); else if (bilangan < 0) printf(“Bilangan negatif”); else printf(“Bilangan nol”); }

17 Contoh 2: Baca problem : Menentukan apakah usia seseorang termasuk usia dewasa atau usia tua. Dikatakan usia tua jika usianya > 50tahun dan dikatakan usia dewasa jika usianya di atara 22 tahun sampai 49 tahun. Analisis : Input : Usia Output : Pesan “Usia Tua atau Usia Dewasa” sesuai usia dengan yang diinput. Informasi tambahan : Seseorang dikatakan usia tua jika usianya > 50tahun dan dikatakan usia dewasa jika usianya di atara 22 tahun sampai 49 tahun.

18 Implementasi : #include <stdio.h> void main() { int usia; scanf(“%d”,&usia); if (usia < 50) { if (usia > 21) printf(“Usia Dewasa”); } else printf(“Usia Tua”); } Penjelasan : Jika kurung kurawal pada if (usia > 21) di buang, maka else akan dihubungkan dengan if (usia < 50).

19 Perintah OPERATOR KONDISI TRINARI
Format : Variabel = <ekspresi_logika> ? <ekspresi_1> : <ekspresi_2 > Keterangan : Jika ekspresi_logika benar, maka yang dikerjakan adalah ekspresi_1 sedangkan jika salah, maka yang dikerjakan adalah ekspresi_2. Contoh : if (nilai >= 60) Status = ‘L’ ; else Status = ‘G’; Bisa diubah menjadi : Status = nilai >=60 ? ‘L’ : ‘G’ ;

20 switch (<ekspresi>)
Perintah SWITCH Perintah khusus di dalam C yang digunakan untuk mengimplementasikan struktur multi alternatif. Format : switch (<ekspresi>) { case nilai_1 : <Statement_11>; ..... <Statement_1n>; break ; …… Case nilai_n : <Statement_n1>; <Statement_nn>; default : < Statements_n+1> ; }

21 Keterangan : Ekspresi di atas berupa ekspresi tunggal (bertipe integer atau karakter) yang nilainya digunakan untuk memilih kondisi (ditunjukkan oleh nilai_1 sampai nilai_n) yang sesuai Perintah default boleh dihilangkan jika memang tidak diperlukan.. Contoh Penggunaan perintah switch. Baca problem : Menentukan jenis-jenis operator aritmatika (+, -, /, *). Analisis : Input : Operator. Output : Pesan jenis operator. Batasan : Operator yang dipakai + - / *

22 Implementasi : #include <stdio.h> void main() { char operator;
scanf(“%c”,&operator); switch (operator) case ‘+’ : printf(“Penjumlahan”); break; case ‘-’ : printf(“Pengurangan”); case ‘/’ : printf(“Pembagian”); case ‘*’ : printf(“Perkalian”); }

23 Latihan Suatu perusahaan memberikan kode bonus tersendiri bagi para salesnya. Buat program untuk menghitung bonus yang diterima oleh seorang sales, jika : Sales dengan kode bonus A mendapat 5% dari total penjualan Sales dengan kode bonus B mendapat bonus 5% dari total penjualan jika total penjualan kurang dari ,00 dan 6% untuk total penjualan lebih besar sama dengan ,00 Sales dengan kode bonus C mendapat 6% dari total penjualan Menampilkan akar persamaan kuadrat dari sebuah polinomial. Karyawan harian PT ‘Surya Merdeka’ mendapat upah seminggu sekali. Upah diperhitungkan dari jumlah jam kerja. Satu jam kerja dihargai Rp 3.000,-. Jika seorang karyawan bekerja lebih dari 40 jam dalam satu minggu, maka selisih jam kerja tersebut dihitung 1.5 kali dari upah biasa. Setiap upah yang diterima oleh karyawan dikenakan biaya : Asuransi kesehatan sebesar 7% dari gaji kotor dan biaya SPSI sebesar x rupiah. Buat program untuk menghitung gaji bersih seorang karyawan.

24 3. Struktur Kontrol Perulangan
Start Stop Perintah m Perintah 1 PerintahT 1 Kondisi PerintahT n Perintah n False True Digunakan untuk mengulang sekumpulan perintah sesuai dengan kondisi (diwakili oleh loop control variable) yang diberikan. .

25 Ada dua macam loop control variable: Counter
Beberapa Istilah Loop Mengulang langkah-langkah dalam sebuah program. Body of Loop Perintah-perintah yang diulang dalam loop Loop control Variable Variabel yang nilainya dipakai untuk mengontrol perulangan Ada dua macam loop control variable: Counter Digunakan jika jumlah perulangan menjadi syarat perulangan Contoh : Mencari suku ke-n dari deret : … Event Jika kejadian tertentu menjadi syarat dihentikannya perulangan. Contoh : Menampilkan suku-suku deret … sampai jumlah deret yang ditampilkan lebih besar dari 15.

26 Syarat loop control variable :
Diinisialisasi. Dilakukan di luar loop, dalam arti sebelum masuk loop. Selalu di test. Setiap kali body loop dijalankan, nilai loop control variable dicek apakah memenuhi syarat perulangan. Jika ya, maka diulang, jika tidak berhenti. Di update. Nilai dari loop control variable harus di update agar proses perulangan dapat berhenti. Letaknya di dalam body of loop. Berdasar letak kondisi : 1. Pre-test Kondisi berada di awal loop (sebelum semua perintah yang ada dalam body of loop dijalankan).

27 Start Stop Perintah m Perintah 1 PerintahT 1 Kondisi PerintahT n Perintah n False True

28 2. Post test Kondisi berada di akhir loop (sete-lah semua perintah yang ada dalam body of loop dijalankan). Start Stop Perintah m Perintah 1 Kondisi PerintahT n Perintah n PerintahT 1 True False

29 Format : While (<kondisi>) {<Statements> ;}
Perintah While Format : While (<kondisi>) {<Statements> ;} Fungsi : Mengulang statements selama kondisi benar. Perhatian : Body of loop harus mengan-dung perintah yang mempengaruhi kondisi. Perintah Do while Format : Do {<statements>;} while (<kondisi>) ; Fungsi : Mengulang statements selama kondisi benar. Perhatian : Body of loop harus mengandung perintah yang mempengaruhi kondisi.

30 { <statements> ; }
Perintah For For (<var> = <NilaiAwal> ; <SyaratUlang> ; PerubahNilai) { <statements> ; } Fungsi : Menjalankan statements selama nilai variabel masih memenuhi SyaratUlang. Ketentuan : Variabel, nilai_awal harus bertipe data sama (integer, char). Argumen dari perintah for boleh tidak. Tetapi bila ketiganya hilang bisa menyebabkan loop abadi. Break Fungsi : Untuk menghentikan loop dan melanjutkan ke perintah berikutnya. Continue Fungsi : Untuk menggambarkan proses yang sedang dilaksanakan ke awal loop, tanpa menjalankan sisa perintah dalam loop tersebut. Exit Fungsi : Untuk keluar dari program.

31 Latihan Buat program untuk menampilkan bilangan fibonacci sebanyak n suku. Bilangan fibonacci adalah bilangan yang suku pertama dan keduanya adalah 1 dan suku berikutnya (n) diperoleh dari suku n-1 ditambah suku n … Buat program untuk menampilkan deret fibonacci selama jumlah deret tersebut masih lebih kecil dari n (n diinput). Buat program untuk menampilkan faktor dari suatu bilangan yang diinputkan. Buat program untuk menentukan apakah sebuah bilangan termasuk bilangan prima atau tidak Buat program untuk menampilkan barisan bilangan ganjil ordo n (n diinput). Contoh : Input : n = 2 Output : 5 7

32 Buat program untuk mencetak n bilangan prima pertama
Buat program untuk menampilkan : a). 1 2 2 jika n = 3 3 3 3 b). 3 2 2 jika n =3 1 1 1 c). 1 2 3 jika n (baris) =3 4 5 6 d). 1 jika n (jumlah suku) = 6 5 6


Download ppt "III. STRUKTUR KONTROL."

Presentasi serupa


Iklan oleh Google