Anda di halaman 1dari 36

Algoritma dan

Pemrograman
Struktur Teks
Algoritma

Pengampu Mata Kuliah


Hadian Mandala Putra, S.Si., M.
Kom
Konstruksi Dasar Algoritma

Pada hakekatnya, sebuah algoritma berisi sekumpulan instruksi yang


menggambarkan Langkah-Langkah penyelesaian suatu persoalan. Instruksi adalah
perintah untuk melakukan aksi tertentu. Contoh-contoh instruksi misalnya adalah
membaca data masukan, menulis hasil perhitungan, melakukan perhitungan
aritmetika, memanggil sebuah prosedur, dan sebagainya. Di dalam bahasa
pemrograman, instruksi dinyatakan sebagai pernyataan (statement)
Struktur Dasar Algoritma
• Algoritma berisi langkah-langkah penyelesaian suatu masalah.
Langkah-langkah tersebut dapat berupa runtutan aksi, pemilihan aksi
dan pengulangan aksi.

Aksi
1
Aksi
2
Aksi
3
Struktur Dasar Algoritma (lanjutan)

• SEQUENTIAL/ URUTAN
Program dijalankan mulai dari perintah paling atas/ awal
sampai paling akhir secara berurutan/ sekuensial.
• BRANCHING/ PERCABANGAN
Penyeleksian kondisi (TRUE/ FALSE) untuk menentukan
statemen selanjutnya
• LOOPING/ PERULANGAN
Mengulangi proses selama syarat/ kondisi tertentu masih
terpenuhi
Sequential/Urutan
Entry

Action 1

Action 2

Action 3

Exit
Contoh Urutan
Buatlah diagram alir untuk mengkonversi dari suhu Fahremhait ke Celcius

Masukkan f

c ← (f-32)x 5/9

Tampilkan c
Contoh Urutan (lanjutan)
Tinjau algoritma untuk
menghitung harga
barang di supermarket/
pasar setelah mendapat
diskon sebesar p%.
Percabangan
Entry

Condition 1
TRUE FALSE

Action 1
Condition 2

FALSE
TRUE

Action 2 Action 3

Exit
Percabangan (lanjutan)
• Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu
dipenuhi.
• Misalnya kendaraan anda tiba di perempatan yang ada di traffic
light, jika lampu traffic light sekarang berwarna merah, maka
kendaraan anda harus berhenti.
• Jika lampu traffic light berwarna merah, maka berhenti

• If KondisiThen Aksi
Percabangan (lanjutan)
• Biasa digunakan untuk seleksi nilai/ data
• Kondisi jamak  ((kondisi_1) &&/  (kondisi_2))
• if (kondisi=TRUE) jalankan_statement_ini
• if (kondisi=TRUE) statement_1
else statement_2 // if kondisi=FALSE
• if (kondisi=TRUE) statement_1
else if (kondisi=TRUE) statement_2
else statement_3 // if kondisi=FALSE
• if (kondisi=TRUE)
if (kondisi=TRUE) nested_statement
Switch Case
• Biasa 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


Contoh Percabangan
• If air di dalam ketel mendidih then
matikan api kompor

• If suhu ruangan diatas 50 C then


0

bunyikan alarm tanda bahaya

• If lampu A menyala then


tekan tombol merah
else
tekan tombol biru
Contoh Percabangan (lanjutan)

• If lampu traffic light berwarna merah then


hentikan kendaraan anda
else if lampu traffic light berwarna kuning then
jalan dengan hati-hati
else
jalan terus
Latihan Percabangan
• Tentukan nilai terbesar tiga buah bilangan bulat, x, y dan z.
Looping/Perulangan
Entry

Action 1

Action 2
Looping 1

Y T
if 1 if 2

Looping 2
T

Action 3 Exit
Looping (lanjutan)

• Looping adalah sebuah instruksi untuk melakukan aksi


yang sama berulang-ulang kali. Karena perintah dan aksi
yang berulang ini sehingga eksekusi dari suatu algoritma
disebut looping (perulangan).

• Contoh : Tulis kalimat “Saya berjanji tidak akan nakal dan


malas lagi”
Looping (lanjutan)
Algoritma
repeat 100 times
Tulis “ saya berjanji tidak akan nakal dan malas lagi”

Struktur pengulangan di atas bentuk umumnya adalah sebagai berikut:


repeat N times
aksi

yang artinya aksi diulang sebanyak N kali


Looping (lanjutan)
Struktur pengulangan yang mirip dengan repeat adalah for:

for pencacah dari 1 sampai N do


aksi

yang artinya aksi dilakukan sebanyak hitungan pencacah dari


mulai 1 sampai N (yaitu sebanyak N kali).
Looping (lanjutan)

• Contoh perulangan for


for i dari 1 sampai 100 do
Tulis “saya berjanji tidak akan nakal dan malas lagi”
Looping (lanjutan)
• Struktur pengulangan yang ketiga adalah repeat-until, artinya
“ulangi” dan berhenti “sampai”, dengan bentuk umum seperti
berikut ini

repeat
aksi
until kondisi

Pengulangan aksi dilakukan sampai kondisi (persyaratan) berhenti


terpenuhi. Jika kondis berhenti terpenuhi, maka proses
pengulangan selesai.
Looping (lanjutan)

Contoh: Terdapat sebuah tabel akademik berisi NIM,


Nama, Alamat, dan No. Hp. Carilah nomor induk = x
dalam tabel mahasiswa.
Looping (lanjutan)
Algoritma (tinjau algoritma berikut ini)

tinjau entry pertama di dalam tabel


if NIM pada entry = x then
ambil alamat dan no. hp dari entry tersebut
else
tinjau entry pertama di dalam tabel
if NIM pada entry = x then
ambil alamat dan no. hp dari entry tersebut
else

Looping (lanjutan)
tinjau entry pertama tabel
repeat
if NIM pada entry = x then
tulis alamat dan no.hp dari entry tersebut
else
tinjau entry berikutnya
until NIM yang dicari sudah ditemukan atau akhir tabel
sudah terdeteksi
Looping (lanjutan)
Struktur pengulangan yang terakhir adalah while – do,
yang artinya selama kondisi terpenuhi maka lakukan
perulangan, dan berhenti ketika syarat sudah tidak
terpenuhi, bentuk umumnya adalah

while kondisi do
aksi
Looping (lanjutan)
• Contoh lakukan pencarian informasi dari tabel mahasiswa
akademik, dengan asumsi tabel berisi paling sedikit satu entry

tinjau entry pertama tabel


while NIM yang dicari belum ditemukan dan belum akhir tabel do
if NIM pada entry tabel = x then
tulis alamat dan no. hp dari entry tersebut
else
tinjau entry berikutnya di dalam tabel
Notasi Pseudo-code
• Notasi pseudo-code memiliki kemiripan dengan notasi yang
digunakan dalam bahasa pemrograman

Contoh
Tulis nilai x dan y
Salah satu alternatif pseudo-code nya dalam notasi algoritma
adalah:
write (x,y)
Notasi Pseudo-code (lanjutan)
• Notasi algoritma dalam bentuk pseudo-code sebaiknya mudah
ditranslasikan ke dalam bahasa pemrograman pada saat
melakukan koding .
• Pada beberapa bahasa pemrograman, antara setiap instruksi
dipisahkan dengan tanda “;” (semicolon).
• Beberapa contoh translasi pseudo-code ke beberapa bahasa
pemrograman adalah sebagai berikut :
Notasi pseudo-code: Notasi bahasa C++:
write (x,y) cout << x, y;
Notasi bahasa pascal: Notasi bahasa python:
write (x,y); print (x,y)
Notasi bahasa C: Notasi bahasa basic:
printf (“%d %d”, x, y); write x,y
Notasi Pseudo-code (lanjutan)
• contoh lainnya adalah memasukkan nilai x ke dalam y
maka pseudo-code nya dalam notasi algoritma menjadi :
yx
Notasi pseudo-code: Notasi basic:
yx y=x
Notasi bahasa pascal: Notasi bahasa python:
y :=x; y = x;
Notasi bahasa C dan C++:
y =x;
Tentunya masih banyak lagi notasi pseudi-code yang digunakan
dalam menuliskan algoritma.
Struktur Teks Algoritma
Perhatikan algoritma berikut ini:
Dari contoh algoritma Euclidean sebelumnya, maka sebuah teks
algoritma selalu disusun oleh tiga bagian yaitu:
1. bagian judul (header)
2. bagian deklarasi (declaration)
3. bagian algoritma
Program Nama Program (header)
(berisi penjelesan singkat algoritma mengenai masalah apa yang akan diselesaikan,
termasuk apa masukan dan keluarannya)

Deklarasi
(bagian ini berisi deklarasi semua nama tipe, nama konstanta, nama peubah, nama
prosedur, dan nama fungsi diumumkan disini)

Algoritma
(bagian ini adalah inti algoritma, berisi Langkah-Langkah penyelesaian persoalan)
• Dalam setiap algoritma sangat dianjurkan untuk menuliskan komentar
untuk memperjelas maksud dari pernyataan. Komentar adalah kalimat
yang diapit oleh pasangan tanda kurung kurawal (“{ dan }”). Adanya
komentar membuat algoritma menjadi lebih mudah untuk dipahami oleh
orang lain. Di dalam kode program, komentar tidak akan dieksekusi dan
hanya akan dilewati saja.
• Contoh komentar pada algoritma Euclidean yang sebelumnya:
{Program mencari pembagi terbesar Bersama (gcd) dari 2 bilangan}
{dua bilangan yang akan dicari GCD nya}
{bagi m dengan n dan simpan sisanya dalam r}

dst
Bagian Judul (Header)

Bagian Deklarasi (Declaration)
• Bagian ini digunakan untuk mengumumkan semua nama yang
dipakai di dalam algoritma beserta propertinya. Nama yang
dideklarasikan di dalam bagian ini antara lain:
• nama konstanta
• nama peubah
• nama tipe bentukan
• nama prosedur/fungsi
• Bagian ini mungkin saja kosong apabila tidak ada penggunaan nama
apapun di dalam bagian algoritmanya.
• Perhatikan kembali algoritma Euclidean dan tunjukkan apa saja yang
dideklarasikan.
Bagian Algoritma
• Bagian inti dari sebuah algoritma. Bagian ini berisi sederetan
aksi. Aksi-aksi tersebut “bekerja” dengan menggunakan nama-
nama yang telah diumumkan pada bagian deklarasi.
• Perhatikan algoritma Euclidean yang sebelumnya.

• Desain algoritma sebagian besar dicurahkan untuk mengisi


bagian ini mengenai Langkah-Langkah penyelesainnya, data
masukan dimanipulasi, luaran yang akan dihasilkan dan lain-
lainnya.
Tugas
1. Tulislah algoritma (dalam notasi campuran pseudo-code dan kaliman deskriptif) untuk
memperoleh informasi nomor telepon berdasarkan alamat rumah (nama jalan dan nomor rumah)
kepada nomor penerangan lokal (108) PT Telkom. Algoritmanya harus menjelaskan proses bila (a)
nomor sibuk, (b) alamat yang diberikan penelepon belum mempunyai sambungan telepon
2. Dua buah algoritma di bawah ini menjelaskan sikap yang harus dilakukan bila menemui lampu
pengatur lalu lintas traffic
( light ) di jalan raya:

1. if traffic light menyala then


if lampu merah menyala then
berhenti
else
jalan

2. if traffic light menyala then


if lampu merah menyala then
berhenti
else
jalan
pada keadaan apa kedua algoritma di atas menggambarkan perilaku yang berbeda? dan manakah
yang lebih efektif menurut anda?
Tugas
3. Algoritma di bawah ini membagi sekantung permen secara adil kepada 3 orang anak
dengan cara membagikan satu permen kepada tiap anak secara berulang-ulang:
repeat
berikan satu permen kepada anak pertama
berikan satu permen kepada anak kedua
berikan satu permen kepada anak ketiga
until kantung permen kosong

pada keadaan bagaimana algoritma di atas gagal?

Anda mungkin juga menyukai