algoritma : control structures
DESCRIPTION
Algoritma : CONTROL STRUCTURES. Ardian Maretta Prastiawan, Ssi Software Development UPT. Puskom UNS http://wa2n.staff.uns.ac.id http://wa2n.web.id [email protected] Y!m:w4ww4n. CONTROL STRUCTURES. SEQUENTIAL/ URUTAN - PowerPoint PPT PresentationTRANSCRIPT
Ardian Maretta Prastiawan, SsiSoftware Development UPT. Puskom UNS
http://wa2n.staff.uns.ac.idhttp://wa2n.web.id
[email protected]!m:w4ww4n
CONTROL STRUCTURESSEQUENTIAL/ URUTAN
Program dijalankan mulai dari perintah paling atas/ awal sampai paling akhir secara berurutan/ sekuensial.
BRANCHING/ PERCABANGANPenyeleksian kondisi (TRUE/ FALSE) untuk menentukan proses selanjutnya
LOOPING/ PERULANGANMengulangi proses selama syarat/ kondisi tertentu terpenuhi
SEQUENTIAL/ URUTAN
Action 1
Action 2
Action 3
Entry
Exit
BRANCHING/ PERCABANGANEntry
Condition 1
Action 1Condition 2
Action 3Action 2
Exit
TRUE FALSE
TRUE FALSE
LOOPING/ PERULANGAN
Action 1
Action 2
Action 3
Entry
Exit
if 1 if 2
Looping 1
Looping 2
Y
Y
T
T
IF - ELSEBiasa digunakan untuk seleksi nilai/ dataKondisi jamak ((kondisi_1) &&/ || (kondisi_2))if (kondisi=TRUE) jalankan_statement_iniif (kondisi=TRUE) statement_1
else statement_2 // if kondisi=FALSEif (kondisi=TRUE) statement_1
else if (kondisi=TRUE) statement_2else statement_3 // if kondisi=FALSE
if (kondisi=TRUE)if (kondisi=TRUE) nested_statement
SWITCH - CASEBiasa digunakan untuk membuat menu dalam
program
switch (variabel_pilihan) {case nilai_1 : statemen_1; break;case nilai_2 : statemen_2; break;case nilai_3 : statemen_3; break;…default: statemen_default;
}
Bisa berbentuk nested/ bersarang
LOOP FORSyntax source code lebih ringkasBiasa dipakai untuk perulangan yang sudah
jelas jumlah perulangannya
for(nilai_awal; syarat_ulang; inc/dec){
statemen_yang_akan_diulang2;}
LOOP WHILE & DO-WHILEBiasa dipakai untuk perulangan dengan
kondisi bersyarat/ logikawhile (kondisi=TRUE)
{jalankan_statemen_ini;
}do
{jalankan_statemen_ini;
}while (kondisi=TRUE)
NESTED LOOPPerulangan bersarang (terjadi di dalam
perulangan)Yang biasa dipakai adalah loop FOR karena
lebih mudah & ringkasContoh kasus yang sering dipakai adalah
pengolahan tampilan, angka dan matrik
for(int i=1; i<=5; i++){
for(int j=1; j<=i; j++)print(“%d “, j); // milik loop for
dalamprint(“\n”); // milik loop for luar
}
FUNGSIAdalah subrutin/ subprogram/ potongan
programMempunyai tugas tertentuMempunyai bagian RETURN VALUE dan
PARAMETER/ ARGUMENAda istilah deklarasi & prototype fungsi
tipe_return_value nama_fungsi (parameter){
statemen2; // badan fungsireturn (return_value/ variabel);
}
Selection Control [1] (if) Statement if:
Digunakan untuk seleksi suatu kondisi Contoh pseudocode:
If student’s grade is greater than or equal to 60 Print “Passed” Contoh Flowchart:
true
false
grade >= 60 print “Passed”
Selection Control [2] (if) Jika kondisi true
Statement Print dieksekusi dan program dilanjutkan ke statement berikutnya
Jika kondisi false Statement Print diabaikan dan program dilanjutkan ke
statement berikutnya Dalam bahasa C:
if ( grade >= 60 ) printf( "Passed\n" );
Selection Control [3] (if…else)Statement if…else:
Menspesifikasikan aksi baik untuk kondisi true maupun untuk kondisi false
Contoh pseudocode:If student’s grade is greater than or equal to 60
Print “Passed”else Print “Failed”
Contoh Flowchart:
truefalse
print “Failed” print “Passed”
grade >= 60
Selection Control [4] (if…else) Dalam C :
if ( grade >= 60 ) printf( "Passed\n");else printf( "Failed\n");
Ternary conditional operator (?:) Memerlukan tiga argumen (kondisi, nilai jika true, nilai jika false)
Contoh di atas dapat ditulis sbb:printf( "%s\n", grade >= 60 ? "Passed" : "Failed" );
Atau dapat ditulis sbb:grade >= 60 ? printf( “Passed\n” ) : printf( “Failed\n” );
Selection Control [5] (if…else)Statement if…else bertingkat/bersarang:
Digunakan untuk menguji banyak kondisi dimana menempatkan statement seleksi if…else di dalam statement if…else
Sekali kondisi terpenuhi, sisa statement lainnya dilewatkan/diabaikanContoh pseudocode:If student’s grade is greater than or equal to 90
Print “A”else
If student’s grade is greater than or equal to 80 Print “B”else If student’s grade is greater than or equal to 70 Print “C” else If student’s grade is greater than or equal to 60 Print “D” else Print “F”
Selection Control [6] (if…else) Compound statement Ada lebih dari satu statement/aksi yang harus dieksekusi
setelah suatu kondisi dipenuhi Sering disebut juga blok karena ditandai dengan pasangan { dan }
Contoh:if ( grade >= 60 ) printf( "Passed.\n" );else { printf( "Failed.\n" ); printf( "You must take this course again.\n" );}
Tanpa tanda kurung kurawal, statementprintf( "You must take this course again.\n" );
Akan dieksekusi secara otomatis.
Selection Control [7] (switch) Multiple-Selection Statement switch:
Berguna pada waktu sebuah variabel atau ekspresi diuji terhadap semua nilai yang mungkin dan masing-masing mengambil aksi yang berbeda
Format penulisan: Sederetan label case dan opsional default caseswitch ( value ){
case '1':actions
case '2':actions
default:actions
} break; keluar dari statement
Selection Control [8] (switch) Flowchart statement switch:
true
false
.
.
.
case a case a action(s) break
case b case b action(s) break
false
false
case z case z action(s) break
true
true
default action(s)
Repetition Control [1] (while)Struktur pengulangan structure
Programmer menentukan aksi yang akan diulang selama kondisi tetap true
Psuedocode:While there are more items on my shopping list
Purchase next item and cross it off my list while loop diulang hingga kondisi menjadi false
Contoh: product = 2;while ( product <= 1000 )
product = 2 * product;
Repetition Control [2] (while)
product <= 1000 product = 2 * producttrue
false
• Flowchart:
Repetition Control [3] (while) Pengulangan yang dikontrol sebuah counter
Loop diulang hingga counter mencapai angka tertentu Disebut juga definite repetition karena jumlah pengulangan
dapat kita ketahui Contoh: Sebuah kelas dengan 10 orang mahasiswa mengikuti
kuis. Nilai kuis adalah bilangan bulat dari 0 hingga 100. Tentukan nilai rata-rata kuis tersebut.
Pseudocode: Set total to zero
Set grade counter to oneWhile grade counter is less than or equal to ten
Input the next gradeAdd the grade into the totalAdd one to the grade counter
Set the class average to the total divided by tenPrint the class average
Repetition Control [4] (while)Pengulangan yang dikontrol sebuah sentinel
Sentinel: tanda berhenti untuk keluar dari suatu loop, biasanya berupa karakter, angka, atau tombol di keyboard sebagai tanda. Misalnya ‘Q’ untuk exit.
Loop diulang hingga mencapai sentinel tersebut Jumlah pengulangan belum dapat kita ketahui secara
pasti
ContohRequirement
Buat sebuah algoritma untuk memilih bilangan terbesar dari 3 buah bilangan
Nantinya ini bisa digeneralisir menjadi n buah bilangan
Algoritma Dalam Bahasa Natural1. Ambil bilangan pertama dan set maks sama
dengan bilangan pertama2. Ambil bilangan kedua dan bandingkan dengan
maks3. Apa bila bilangan kedua lebih besar dari maks,
set maks sama dengan bilangan kedua4. Ambil blangan ketiga dan bandingan dengan
maks5. Apabila bilangan ketiga lebih besar dari maks,
set maks sama dengan bilangan ketiga6. Variabel maks berisi bilangan terbesar.
Tayangkan hasilnya
Maks = bilangan pertama
Maks < bilangan kedua
Maks = bilangan kedua
Maks < bilangan ketiga
Maks = bilangan ketiga
Ya
Ya
Selesai
Mulai
Tidak
Tidak
Contoh Algoritma dengan pseudo-codeBegin
Read bilangan pertama
Read bilangan kedua
Read bilangan ketiga
maks ← bilangan pertamaif (maks < bilangan kedua)
maks ← bilangan kedua
if (maks < bilangan ketiga)maks ← bilangan ketigaPrint maksend
Pseudocode Mendapatkan nilai maksimal dari sejumlah nilai
ujian for i = 1 10 input nilai[i] endfor max nilai[1] for j = 2 10 if (nilai[j] > max) max = nilai[j] endif endfor print max
PseudocodeContoh: menentukan bilangan terbesar dari
dua bilanganinput bilangan1input bilangan2if (bilangan1 > bilangan2) do step 4 otherwise
do step 5print bilangan1print bilangan2
Flowchart
Start
input b1
input b2
b1 > b2 ?
print b2
End
print b1
input b1input b2If(b1>b2) do step 4 otherwise do step 5print b1print b2
Y
N
Contoh Algoritma 2Mencari akar bulat positif dari bilanganbulat (integer) positif a:Masukkan bilangan bulat positif aBerikan harga awal x sama dengan 1Hitung y sebesar x * xJika y sama dengan a maka cetak x
sebagai akar dari a. SelesaiTambah nilai x dengan 1Pergi ke langkah 3.
FlowchartStart
input a
If y<=a
End
print akar dari a=x
Y
Y=x*x
x=1
x=x+1
If y=a
print a tidak punya akar bulat
N
N
Y
Tugas Dikumpulkan Jelaskan apa yang dimaksud dengan: algoritma,
pemrograman, program,bahasa pemrograman, programmer,flowchart,pseudocode.
Buat pseudecode & flowchart untuk kasus berikut: Menghitung nilai terkecil,terbesar,rata-rata,median
dari 5 bilangan jumlah bilangan dibawah 1000 yang habis dibagi 3
dan 5 Buatlah algoritma untuk menentukan apakah 3
bilangan (a, b dan c) merupakan triplet phytagoras (a2 = b2 + c2)
Tugas dikirim email ke [email protected] dalam format msword/doc beri nim dan nama, dikumpulkan paling lambat pertemuan berikutnya
Materi bisa di download di http://wa2n.staff.uns.ac.id
Y!M: [email protected]
VariabelDigunakan untuk menyimpan dataVariabel harus diisi dengan nilai persiapan
terlebih dahuluNama variabel
Harus diawali dengan hurufHanya terdiri dari 1 kataSebaiknya yang mudah di ingat
Contoh:Panjang, lebar, luas merupakan variabel yang
kita butuhkan untuk mencari luas persegi panjang
Bagaimana Implementasi ke ProgramImplementasi ke program bergantung kepada
bahasa pemrograman yang digunakanMemahami sintaks bahasa yang akan
digunakanMenerjemahkan sesuai aturan dalam bahasa
pemrograman
Jenis Jenis Bahasa Pemrograman Bahasa Pemrograman berbasis teks adalah
bahasa pemrograman dimana dalam pemberian instruksi menggunakan teks. Contoh: Quick Basic, Pascal, C, C++
Bahasa pemrograman berbasis Visual adalah bahasa pemrograman dimana dalam pendisainan dibantu komponen /objek yang dapat langsung digunakan
Bahasa Pemrograman Berbasis Visual Pendekatan Disain menggunakan
objek/komponen dan konsep yang dikembangkan terdiri dari :Event MethodeProperties
EventEvent adalah kejadian yang diinginkan
terhadap objek tersebut. Contoh event seperti :Menjalankan objek icon di desktop anda harus
klik 2 kaliMembuka objek menu start di window anda
klik satu kaliMembuka menu di objek desktop atau lokasi
lain menggunakan klik kanan
PropertiesProperties berfungsi untuk menentukan sifat
dari suatu objek. Arti sifat seperti warna, jenis huruf, ukuran huruf, gambar latar belakang, menghidupkan atau mematikan menu.Contoh :
Latar belakang desktop dapat diganti gambar melalui menu properties desktop
Warna dari window dapat juga anda atur melalui desktop
Bentuk tampilan di window dapat anda ubah melalui template(cetakan) yang disediakan
MethodeMethode adalah susunan perintah yang
dikerjakan bila event dijalankan misal Bila event klik satu kali di menu start
dijalankan maka program (susunan perintah) untuk menampilkan menu start dijalankan.
Bila icon di desktop dklik dua kali maka akan dijalankan program(susunan perintah) memanggil file sesuai dengan file yang telah didaftarkan
Fungsi IFPrinsip Fungsi IF digambarkan notasi flowchart sebagai
berikut :
If <kondisi> Then <jika kondisi terpenuhi>
Proses 1
Proses 1
<kondisi>
<jika kondisi terpenuhi>
If <kondisi> Then
<jika kondisi terpenuhi>
Else
<jika kondisi tidak terpenuhi>
End if
<kondisi>
<jika kondisi terpenuhi>
<jika kondisi tidak terpenuhi>
<kondisi 1>
<jika kondisi tidak terpenuhi>
<kondisi 2><jika kondisi 1 terpenuhi><jika kondisi 1 terpenuhi>
<jika kondisi 1 terpenuhi><jika kondisi 2 terpenuhi>
If <Kondisi 1> then
<jika kondisi 1 terpenuhi>
Elseif <kondisi 2> then
<jika kondisi 2 terpenuhi>
Else
<jika kondisi 1 & 2 tidk terpenuhi>
End if