Anda di halaman 1dari 28

Algoritma

Pemrograman
Mengapa Belajar Algoritma
dan Pemrograman?
• Untuk melatih logika berpikir
• Untuk menulis kode dalam bahasa
yang dimengerti komputer
Apakah belajar
programming itu sulit?
• Hanya butuh waktu / “jam terbang”
• Hanya butuh semangat dan kemauan
• Hanya butuh sering mencoba /
latihan!
• Kuncinya latihan dan diskusi!
Tips Belajar
• Buat catatan!
• Baca buku acuan!
• Banyak latihan / praktek / mencoba
• Banyak bertanya dan belajar dari
sumber lain
Computer
Bagan Sistem Komputer
Definisi Program
• Program adalah kumpulan instruksi atau perintah (source
code) yang disusun sedemikian rupa sehingga
mempunyai urutan nalar yang tepat untuk menyelesaikan
suatu persoalan yang dibuat oleh programer.
• Instruksi (statement) yang dimaksud mempunyai syntax
(cara penulisan) sesuai dengan bahasa pemrograman
yang digunakan yang mempunyai komponen-komponen :
Input, Output, Proses, Percabangan dan Perulangan.
Bahasa Pemrograman
• Teknik komunikasi standar untuk mengekspresikan
instruksi kepada komputer. Layaknya bahasa
manusia, setiap bahasa memiliki tata tulis dan aturan
tertentu.
• Bahasa pemrograman memfasilitasi seorang
programmer untuk secara spesifik apa yang akan
dilakukan oleh komputer selanjutnya
• Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP,
JHP, Java, dll.
• Perbedaan: cara memberikan instruksi
• Persamaan: bertujuan menghasilkan output yang
sama
Bagaimana komputer menjalankan
instruksi-instruksi pemrograman??
• Gambaran sederhana komputer dan instruksi
pemrograman:
‘memori’

Instruksi 1

Instruksi 2
eksekusi
eksekusi secara
Instruksi 3
sekuensial
komputer
(berurutan)
Instruksi 4

....

Instruksi n
Perkembangan Bahasa
Komputer
1. Bahasa Generasi Pertama (1st
GL):bahasa mesin
2. Bahasa Generasi Kedua(2nd
GL):bahasa assembly
3. Bahasa Generasi Ketiga:Bahasa
Tingkat Tinggi  yang akan kita
pelajari
• Ukuran ‘kecanggihan’ suatu bahasa
pemrograman tersebut diukur dari kemudahan
programmer menyusun suatu program
• Lebih ‘tidak canggih’ bukan berarti tidak ‘powerful’
 kadang-kadang dalam membuat suatu program
dibutuhkan penggunaan bahasa tingkat 1 atau 2
atau kombinasi antara bahasa tingkat tinggi
dengan bahasa assembly. Tergantung tujuan
programnya dan komputer jenis apa yang
diprogram.
Bahasa Generasi Pertama (Bhs Mesin)
• Merupakan kode-kode bilangan biner, terdiri dari kombinasi
bilangan ‘1’ dan ‘0’
• Setiap kombinasi mewakili satu instruksi
• Instruksi bahasa mesin tergantung dari jenis komputer yang
dipakai(machine dependent)
• contoh: instruksi transfer data dari akumulator ke register:
– Komputer intel 8051 1) : ‘01000111B’ (47H)
– Komputer Z80 2) : ‘00010011B’ (13H)
• Pemrograman bahasa mesin: instruksi-instruksi langsung
dimasukkan ke memori untuk dieksekusi komputer
1) Intel 8051 adalah komputer generasi lama yang sekarang digunakan sebagai mikrokontroler
2) Z80 adalah komputer generasi lama produksi Zilog
Bahasa Generasi Ke-2 (bhs assembly)
• Merupakan penyempurnaan bhs generasi pertama,
sudah memasukkan unsur kata bahasa Inggris dalam
bentuk singkat
• Masih bersifat machine dependent
• Penulisan sudah jauh lebih mudah dari bahasa
mesin,tetapi programmer tetap harus memahami
perangkat keras komputer
• Beberapa variabel masih mengacu pada register,alamat
memori maupun I/O
• Contoh: instruksi transfer data dlm bhs assembly:
– Komputer 8051 : MOV R1,#22H
– Komputer AVR 3) : LDI R1,0x22
3) AVR digunakan sebagai mikrokontroller produksi Atmel
Bahasa Generasi ke-3 (Bhs Tingkat tinggi)
• Memasukkan lebih banyak unsur kata bahasa Inggris
yang digunakan sehari-hari dan mempunyai sintaksis
yang lebih baik
• Merupakan bahasa pemrograman yang digunakan
sekarang pada umumnya untuk memprogram komputer
• Contoh macam-macam bahasa tingkat tinggi: Pascal, C,
C++,BASIC dsb
Contoh listing program dalam bahasa
C
:source code program hello world1
• #include <stdio.h>

• int main ()
• {
• char quit;

• quit = '\0';
• while (quit != 'q')
• {
• printf("Hello World!\n");
• printf("Press q then enter to quit\n");
• scanf("%c",&quit);
• }

• return 0;
• }
Siklus Hidup Perangkat Lunak
(Waterfall Model)

• Dilihat dari Siklus diatas, Algoritma Pemrograman menempati


posisi dibagian Code / implementasi karena bagian implementasi
merupakan bagian dimana pemrogram melakukan proses coding
(pembuatan program).
• Dilihat dari Struktur Sistem Komputer dan Siklus
diatas, Algoritma Pemrograman menempati posisi
dibagian implementasi karena bagian
implementasi merupakan bagian dimana
pemrogram melakukan proses coding
(pembuatan program).
Definisi Algoritma
• Algoritma adalah urutan langkah-
langkah logis penyelesaian masalah
yang disusun secara sistematis dan
logis.
• Kata logis merupakan kata kunci
dalam algoritma.
• Langkah-langkah dalam algoritma
harus dapat ditentukan bernilai benar
atau salah.
Contoh
• Misalkan terdapat dua buah gelas, gelas A dan
gelas B. Gelas A berisi air berwarna merah
dan gelas B berisi air berwarna biru, kita ingin
menukarkan isi air kedua gelas tersebut,
sehingga gelas A berisi air berwarna biru dan
gelas B berisi air berwarna merah
• Algoritma Tukar_Isi_Gelas
1. Tuangkan air dari gelas A ke gelas B
2. Tuangkan air dari gelas B ke gelas A
• Dibutuhkan sebuah gelas bantuan yang dipakai
untuk menampung salah satu air dalam gelas
(gelas C)
Contoh 2 : water jug problem
• Terdapat 2 ember, volume 5 liter dan
3 liter
• Bagaimana algoritma untuk
mendapatkan tepat 1 liter air hanya
dengan menggunakan 2 ember
tersebut ?
Contoh 3
• Buat sebuah algoritma untuk memilih
bilangan terbesar dari 3 buah
bilangan.
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 blangan ketiga dan bandingan dengan maks
5. Apabila bilangan ketiga lebih besar dari maks, set
maks sama dengan bilangan ketiga
6. Variabel maks berisi bilangan terbesar. Tayangkan
hasilnya
Aspek Penting dari Algoritma
• Finiteness
Algoritma harus berhenti after a finite number of
steps
• Definiteness
Setiap langkah harus didefinisikan secara tepat,
tidak boleh membingungkan (ambiguous)
• Input
Sebuah algoritma memiliki nol atau lebih input yang
diberikan kepada algoritma sebelum dijalankan
Aspek Penting dari Algoritma
• Output
Sebuah algoritma memiliki satu atau
lebih output, yang biasanya bergantung
kepada input
• Effectiveness
Setiap algoritma diharapkan miliki sifat
efektif

Anda mungkin juga menyukai