Deskripsi Mata Pelajaran
Algoritma
Algoritma
• Mata pelajaran ini mengajarkan tentang
konsep dan logika berpikir komputer, cara
perancangan dan analisis masalah, yang
kemudian dipecahkan dengan menggunakan
komputer menggunakan algoritma dan
pemrograman terstruktur.
Kompetensi Matapelajaran
• Siswa mampu memahami logika berpikir
komputer, memahami prinsip kerja
program, memahami alasan-alasan
komputer dapat mengerjakan perintah-
perintah yang diberikan, dengan diagram
alir (flow chart) menggunakan suatu bahasa
pemrograman tertentu dan mampu
menggambarkan logika jalannya program
secara tertulis dengan algoritma (pseudo
code)
Materi-Materi
• Pengantar Algoritma
• Konsep Bahasa Pemrograman
• Flowchart
• Tipe Data, Keywords, Konstanta, Variabel
• Struktur Input/Output
• Percabangan
• Perulangan
• Pemrograman Modular
• Fungsi: parameter, kembalian fungsi by value
• Array 1 dimensi
• Array 2 dimensi
• Manipulasi String
Referensi
• Rijanto Tosin, Flowchart untuk Siswa dan Mahasiswa, Diastindo 1997
• Budi Sutedjo Skom,., MM dan Michael AN, SKOM, Algoritma &
Teknik Pemrograman , Penerbit Andi Yogyakarta
• Rinaldi Munir, Algoritma dan Teknik Pemrograman, Jilid 1 dan 2,
Andi Yogyakarta.
• B.J. Posen, Programming Flowcharting for Business Data Processing,
John Willey & Sons, New York, 1978
• Seri Dikat Kuliah : Pengantar Algoritma dan Pemrograman : Teknik
Diagram Alur dan Bahasa Basic Dasar, Penerbit Gunadarma, Jakarta,
1991
• Yay Singleman, Business Programming Logic 2 nd -ed, Prentice Hall
Engelwood Cliffs, New Jersey,1982
• Gottfried, Programming in BASIC, MC Graw Hill, New York, 1981
• Jogiyanto, Teori dan Aplikasi dan Program Komputer Bahasa Basic,
Andi Yogyakarta.
Referensi
• Gottfried, Programming in BASIC, MC Graw Hill, New York, 1981
• Insap Santosa, Program-program Terapan Menggunakan Quick Basic,
Andi Yogyakarta.
• R. Sedgewick, Algorithms, Addison-Wsley, 2002.
• Yay Singlemann, Business Programming Logic 2/e, Prentice Hall
Engelwood Cliffs, New Jersey, 1982.
• Clark, R, Comparative Programming Languages 3/e, Addison Wesley,
2001.
• Bel, H. dan Grune, D., Programming Languages Essentials, Addison
Wesley, 1994.
• Sebest, R.W., Concepts of Programming Languages 5/e, Addison
Wesley, 2002.
Bahasa Pemrograman
• Adalah alat untuk membuat program
• Contoh: C, C++, C#, Pascal, Basic, Perl,
PHP, ASP, JHP, Java, dll.
• Perbedaan: cara memberikan instruksi
• Persamaan: bertujuan menghasilkan output
yang sama
Paradigma Pemrograman
• Pemrograman Prosedural
• Berdasarkan urutan-urutan, sekuensial
• Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur
merupakan kumpulan instruksi yang dikerjakan secara berurutan.
• Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah
diubah.
• Pemrograman Fungsional
• Berdasarkan teori fungsi matematika
• Fungsi merupakan dasar utama program.
• Pemrograman Terstruktur
• Secara berurutan dan terstrukrtur.
• Program dapat dibagai-bagi menjadi prosedur dan fungsi.
• Contoh: PASCAL dan C
• Pemrograman Modular
• Pemrograman ini membentuk banyak modul.
• Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
• Sebuah program dapat merupakan kumpulan modul-modul.
• Contoh: MODULA-2 atau ADA
Paradigma Pemrograman
• Pemrograman Berorientasi Obyek
• Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki
data/variabel/property dan method/event/prosedur yang dapat
dimanipulasi
• Contoh: C++, Object Pascal, dan Java.
• Pemrograman Berorientasi Fungsi
• Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat
tergantung pada tujuan pembuatan bahasa pemrograman ini.
• Contoh: SQL (Structured Query Language), HTML, XML dan lain-
lain.
• Pemrograman Deklaratif
• Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan
daripada memecahkan masalah dengan implementasi algoritma.
• Contoh: PROLOG
MASALAH / IDEA
PEMECAHAN SOLUSI / HASIL
Algoritma Source
Code
Executable
Code
13
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code adalah Run
Output Err
DOKUMEN TASI
Y
Y
T
T
14
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:Run
Output Err
DOKUMEN TASI
Masalah:
Tentukan akar-akar dari suatu persamaan
kwadrat.
Definisi:
Persamaan kwadrat : ax^2 + bx + c = 0
Data yg diperlukan :
Nilai dari a, b dan c : tipe real
15
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
Run
Output Err
DOKUMEN TASI
Model Matematika :
Rumus ABC
x1 = (-b + sqrt(b^2 - 4ac))/2a
x2 = (-b – sqrt(b^2 - 4ac))/2a
16
Start
d = b^2 – 4ac
d < 0
Masukkan a,b,c
Cetak Pesan
“Akar imajiner”
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Cetak : x1, x2
Stop
Y
T
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
17
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
18
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
19
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
20
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
21
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
22
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
• Ada banyakcara untuk menyelesaikan suatu
masalah Algoritma tiap orang berbeda-beda.
• Algoritma dilakukan secara bertahap dari langkah
awal sampai akhir.
• Algoritma bisa mencari suatu penyelesaian benar
maupun penyelesaian salah.
Ciri-Ciri Algoritma
• Definisikan permasalahan (proses dan tujuan akhir).
• Buat runtutan proses dari awal hingga akhir secara
perinci.
• Buat flowchart untuk menggambarkan alur proses
algoritma.
• Implementasi algoritma dalam program.
• Testing, cek apakah tujuan akhir sudah
memenuhi/merupakan hasil akhir yang dituju atau
belum.
Cara Membuat Algoritma
Sebuah Program
• Representasi algoritma berbeda-beda.
• Diantaranya: block code,
diagram/FlowChart, dsb.
Representasi Sebuah Algoritma
Contoh algoritma 1
• Ada 2 buah gelas. Satu berisi teh dan
satunya lagi berisi kopi. Bagaimana caranya
menukar isi masing-masing gelas?
next
Algoritma Dalam Bahasa Natural
1. Ambil bilangan pertama dan set maks sama
dengan bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan
maks
3. Apa bila bilangan kedua lebih besar dari maks,
set maks sama dengan bilangan kedua
4. Ambil bilangan ketiga dan bandingkan dengan
maks
5. Apabila bilangan ketiga lebih besar dari maks,
set maks sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar.
Tayangkan hasilnya
next
• 3 komponen utama (saling berurutan)
INPUT PROSES OUTPUT.
• Hindari proses yang tidak perlu dan
berbelit-belit (Cari algoritma proses
terbaik).
• Gambar flowchart dari atas ke bawah
dengan penghubung anak panah yang jelas.
• Flowchart diawali dengan titik awal (start)
dan titik akhir (end)
Cara Membuat Sebuah
FlowChart
Contoh FlowChart
START
READ A, B, C
IS
A>B?
IS
A>C?
IS
B>C?
NO YES
PRINT B
YES
END
PRINT C PRINT A
NO
YES
NO
NO
Aspek Penting dari Algoritma
1. Finiteness
• Algoritma harus berhenti after a finite number of steps
2. Definiteness
• Setiap langkah harus didefinisikan secara tepat, tidak boleh
membingungkan (ambiguous)
3. Input
• Sebuah algoritma memiliki nol atau lebih input yang diberikan
kepada algoritma sebelum dijalankan
4. Output
• Sebuah algoritma memiliki satu atau lebih output, yang biasanya
bergantung kepada input
5. Effectiveness
• Setiap algoritma diharapkan miliki sifat efektif
Add
Algoritma dan Pseudocode
• Algoritma: urutan langkah-langkah yang dapat
digunakan untuk memecahkan suatu masalah
• Pseudocode:
• Bahasa buatan yang bersifat informal yang dapat
membantu untuk mengembangkan algoritma
• Serupa dengan bahasa sehari-hari
• Membantu mempermudah penulisan program; dengan
menggunakan statement-statement yang dapat
dieksekusi, mempermudah konversi ke bahasa
pemrograman
Struktur Kontrol
• Semua program ditulis dalam 3 macam bentuk struktur kontrol:
• Sequence atau berturutan: struktur ini tersedia secara built-in. Secara
default program dieksekusi secara berturutan sesuai urutan perintah
• Selection atau pilihan: ada 3 macam dalam bahasa C: if, if…else, dan
switch
• Repetition atau pengulangan: ada 3 macam dalam bahasa C: while,
do…while, dan for
• Flowchart
• Representasi grafis dari algoritma
• Menggunakan simbol-simbol khusus yang dihubungkan dengan garis
beranak panah
• Simbol kotak melambangkan aksi
• Simbol oval melambangkan awal dan akhir suatu program atau blok
program
• Simbol berlian melambangkan keputusan/pilihan
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: true false
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/diabaikan
• Contoh pseudocode:
I f 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, statement
printf( "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 case
switch ( 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:
int product = 2;
while ( product <= 1000 )
product = 2 * product;
Repetition Control [2] (while)
product <= 1000 product = 2 * product
true
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 one
While grade counter is less than or equal to ten
Input the next grade
Add the grade into the total
Add one to the grade counter
Set the class average to the total divided by ten
Print the class average
Latihan 1
Buat diagram alur untuk mencetak nama-nama
pelamar yang lolos saringan tahap pertama. Dalam
tes terdapat 2 materi. Bila jumlah nilai kedua
materi tersebut lebih besar dari 70 pelamar
dinyatakan lolos saringan tahap pertama. Bentuk
laporan yang diinginkan terdiri dari nama pelamar,
nilai tes dan keterangan.
Add
Latihan 2
Suatu perusahaan akan membuat laporan gaji
pegawainya berdasarkan golongannya. Data yang
dibaca terdiri dari nomor pegawai, nama pegawai,
golongan dan gaji bersih. Data yang dibaca sudah
urut per golongan yang terdiri dari : golongan 1, 2,
3,4. Jika golongan berubah maka cetak TOTAL
GAJI per golongan dan ganti halaman baru serta
NOMOR dimulai dari 1.
Add
Latihan
Add
Contoh algoritma
• Siapkan gelas
cadangan X
• Tuangkan gelas yang
berisi teh ke gelas X
• Tuangkan gelas yang
berisi kopi ke gelas teh
• Tuangkan gelas X
yang berisi teh ke
gelas kopi
Algoritma
TUKAR_ISI_BEJANA
• Diberikan dua buah bejana, A dan B; bejana A
berisi larutan merah, bejana B berisi larutan biru.
Pertukarkan isi kedua bejana itu sehingga bejana
A berisi larutan biru dan bejana B berisi larutan
merah
• DESKRIPSI
1. Tuangkan larutan dari bejana A ke bejana X
2. Tuangkan larutan dari bejana B ke bejana A
3. Tuangkan larutan dari bejana C ke bejana B
• Hasil akhir
• Bejana A berisi larutan dari bejana B semula
• Bejana B berisi larutan dari bejana A semula
Algoritma
TUKAR_ISI_BEJANA
• Misal urutan diubah menjadi
1. Tuangkan larutan dari bejana B ke bejana A
2. Tuangkan larutan dari bejana A ke bejana X
3. Tuangkan larutan dari bejana C ke bejana B
• Hasil akhir menjadi
• Bejana A kosong
• Bejana B berisi campuran larutan dari bejana
A dan bejana semula B
back
Algoritma dengan Flowchart
Maks = bilangan pertama
Maks <
bilangan kedua
Maks = bilangan kedua
Maks <
bilangan ketiga
Maks = bilangan ketiga
Ya
Ya
Selesai
Mulai
Tidak
Tidak
Algoritma dengan pseudo-code
maks ← bilangan pertama
if (maks < bilangan kedua)
maks ← bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
back
PEMECAHAN SOLUSI / HASIL
Algoritma Source
Code
Executable
Code
13
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code adalah Run
Output Err
DOKUMEN TASI
Y
Y
T
T
14
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:Run
Output Err
DOKUMEN TASI
Masalah:
Tentukan akar-akar dari suatu persamaan
kwadrat.
Definisi:
Persamaan kwadrat : ax^2 + bx + c = 0
Data yg diperlukan :
Nilai dari a, b dan c : tipe real
15
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
Run
Output Err
DOKUMEN TASI
Model Matematika :
Rumus ABC
x1 = (-b + sqrt(b^2 - 4ac))/2a
x2 = (-b – sqrt(b^2 - 4ac))/2a
16
Start
d = b^2 – 4ac
d < 0
Masukkan a,b,c
Cetak Pesan
“Akar imajiner”
x1=(-b+sqrt(d))/2a
x2 =(-b-sqrt(d))/2a
Cetak : x1, x2
Stop
Y
T
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
17
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
18
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
19
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
20
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
21
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
22
DEFINISI
MASALAH
MEMBUAT
MODEL
RANCANG
ALGORITMA
TULIS PROGRAM
COMPILE
Sintak Err
Executable code:
=> Run
Output Err
DOKUMEN TASI
• Ada banyakcara untuk menyelesaikan suatu
masalah Algoritma tiap orang berbeda-beda.
• Algoritma dilakukan secara bertahap dari langkah
awal sampai akhir.
• Algoritma bisa mencari suatu penyelesaian benar
maupun penyelesaian salah.
Ciri-Ciri Algoritma
• Definisikan permasalahan (proses dan tujuan akhir).
• Buat runtutan proses dari awal hingga akhir secara
perinci.
• Buat flowchart untuk menggambarkan alur proses
algoritma.
• Implementasi algoritma dalam program.
• Testing, cek apakah tujuan akhir sudah
memenuhi/merupakan hasil akhir yang dituju atau
belum.
Cara Membuat Algoritma
Sebuah Program
• Representasi algoritma berbeda-beda.
• Diantaranya: block code,
diagram/FlowChart, dsb.
Representasi Sebuah Algoritma
Contoh algoritma 1
• Ada 2 buah gelas. Satu berisi teh dan
satunya lagi berisi kopi. Bagaimana caranya
menukar isi masing-masing gelas?
next
Algoritma Dalam Bahasa Natural
1. Ambil bilangan pertama dan set maks sama
dengan bilangan pertama
2. Ambil bilangan kedua dan bandingkan dengan
maks
3. Apa bila bilangan kedua lebih besar dari maks,
set maks sama dengan bilangan kedua
4. Ambil bilangan ketiga dan bandingkan dengan
maks
5. Apabila bilangan ketiga lebih besar dari maks,
set maks sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar.
Tayangkan hasilnya
next
• 3 komponen utama (saling berurutan)
INPUT PROSES OUTPUT.
• Hindari proses yang tidak perlu dan
berbelit-belit (Cari algoritma proses
terbaik).
• Gambar flowchart dari atas ke bawah
dengan penghubung anak panah yang jelas.
• Flowchart diawali dengan titik awal (start)
dan titik akhir (end)
Cara Membuat Sebuah
FlowChart
Contoh FlowChart
START
READ A, B, C
IS
A>B?
IS
A>C?
IS
B>C?
NO YES
PRINT B
YES
END
PRINT C PRINT A
NO
YES
NO
NO
Aspek Penting dari Algoritma
1. Finiteness
• Algoritma harus berhenti after a finite number of steps
2. Definiteness
• Setiap langkah harus didefinisikan secara tepat, tidak boleh
membingungkan (ambiguous)
3. Input
• Sebuah algoritma memiliki nol atau lebih input yang diberikan
kepada algoritma sebelum dijalankan
4. Output
• Sebuah algoritma memiliki satu atau lebih output, yang biasanya
bergantung kepada input
5. Effectiveness
• Setiap algoritma diharapkan miliki sifat efektif
Add
Algoritma dan Pseudocode
• Algoritma: urutan langkah-langkah yang dapat
digunakan untuk memecahkan suatu masalah
• Pseudocode:
• Bahasa buatan yang bersifat informal yang dapat
membantu untuk mengembangkan algoritma
• Serupa dengan bahasa sehari-hari
• Membantu mempermudah penulisan program; dengan
menggunakan statement-statement yang dapat
dieksekusi, mempermudah konversi ke bahasa
pemrograman
Struktur Kontrol
• Semua program ditulis dalam 3 macam bentuk struktur kontrol:
• Sequence atau berturutan: struktur ini tersedia secara built-in. Secara
default program dieksekusi secara berturutan sesuai urutan perintah
• Selection atau pilihan: ada 3 macam dalam bahasa C: if, if…else, dan
switch
• Repetition atau pengulangan: ada 3 macam dalam bahasa C: while,
do…while, dan for
• Flowchart
• Representasi grafis dari algoritma
• Menggunakan simbol-simbol khusus yang dihubungkan dengan garis
beranak panah
• Simbol kotak melambangkan aksi
• Simbol oval melambangkan awal dan akhir suatu program atau blok
program
• Simbol berlian melambangkan keputusan/pilihan
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: true false
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/diabaikan
• Contoh pseudocode:
I f 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, statement
printf( "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 case
switch ( 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:
int product = 2;
while ( product <= 1000 )
product = 2 * product;
Repetition Control [2] (while)
product <= 1000 product = 2 * product
true
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 one
While grade counter is less than or equal to ten
Input the next grade
Add the grade into the total
Add one to the grade counter
Set the class average to the total divided by ten
Print the class average
Latihan 1
Buat diagram alur untuk mencetak nama-nama
pelamar yang lolos saringan tahap pertama. Dalam
tes terdapat 2 materi. Bila jumlah nilai kedua
materi tersebut lebih besar dari 70 pelamar
dinyatakan lolos saringan tahap pertama. Bentuk
laporan yang diinginkan terdiri dari nama pelamar,
nilai tes dan keterangan.
Add
Latihan 2
Suatu perusahaan akan membuat laporan gaji
pegawainya berdasarkan golongannya. Data yang
dibaca terdiri dari nomor pegawai, nama pegawai,
golongan dan gaji bersih. Data yang dibaca sudah
urut per golongan yang terdiri dari : golongan 1, 2,
3,4. Jika golongan berubah maka cetak TOTAL
GAJI per golongan dan ganti halaman baru serta
NOMOR dimulai dari 1.
Add
Latihan
Add
Contoh algoritma
• Siapkan gelas
cadangan X
• Tuangkan gelas yang
berisi teh ke gelas X
• Tuangkan gelas yang
berisi kopi ke gelas teh
• Tuangkan gelas X
yang berisi teh ke
gelas kopi
Algoritma
TUKAR_ISI_BEJANA
• Diberikan dua buah bejana, A dan B; bejana A
berisi larutan merah, bejana B berisi larutan biru.
Pertukarkan isi kedua bejana itu sehingga bejana
A berisi larutan biru dan bejana B berisi larutan
merah
• DESKRIPSI
1. Tuangkan larutan dari bejana A ke bejana X
2. Tuangkan larutan dari bejana B ke bejana A
3. Tuangkan larutan dari bejana C ke bejana B
• Hasil akhir
• Bejana A berisi larutan dari bejana B semula
• Bejana B berisi larutan dari bejana A semula
Algoritma
TUKAR_ISI_BEJANA
• Misal urutan diubah menjadi
1. Tuangkan larutan dari bejana B ke bejana A
2. Tuangkan larutan dari bejana A ke bejana X
3. Tuangkan larutan dari bejana C ke bejana B
• Hasil akhir menjadi
• Bejana A kosong
• Bejana B berisi campuran larutan dari bejana
A dan bejana semula B
back
Algoritma dengan Flowchart
Maks = bilangan pertama
Maks <
bilangan kedua
Maks = bilangan kedua
Maks <
bilangan ketiga
Maks = bilangan ketiga
Ya
Ya
Selesai
Mulai
Tidak
Tidak
Algoritma dengan pseudo-code
maks ← bilangan pertama
if (maks < bilangan kedua)
maks ← bilangan kedua
if (maks < bilangan ketiga)
maks ← bilangan ketiga
back
0 komentar:
Posting Komentar