Pokok Pembahasan :
1. Pengertian Agoritma dan Pemrograman
2. Definisi Algoritma
3. Algoritma
4. Notasi Algoritma Independen Terhadap Bahasa Pemrograman
Dan Mesin Komputer
5. Pemrograman Prosedural
6. Aturan Penulisan Algoritma
B. Definisi Algoritma
Programming
Language Paradigm
Imperative Declarative
4. Belajar Memprogram
a. Belajar memprogram ≠ belajar bahasa pemrograman
b. Belajar memprogram : belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati bersama.
c. Belajar memprogram : bersifat pemahaman persoalan, analisis dan
sintesis.
d. Belajar memprogram, titik berat : designer program.
5. Belajar Bahasa Pemrograman
Belajar bahasa pemrograman : belajar memakai suatu bahasa
pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi
yang spesifik untuk setiap bahasa.
Belajar bahasa pemrograman, titik berat : coder.
6. Produk yang dihasilkan Pemrogram :
a. Program dengan rancangan yang baik (metodologis, sistematis).
b. Dapat dieksekusi oleh mesin.
c. Berfungsi dengan benar.
d. Sanggup melayani segala kemungkinan masukan.
e. Disertai dokumentasi.
5
C. Algoritma
1. Aksi :
a. kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1).
b. Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan.
Contoh :
a. Ibu Tati mengupas kentang untuk mempersiapkan makan malam (luas
ruang lingkupnya).
b. Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan
efek netto yang direncanakan ( Initial State dan Final State).
c. Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang,
dan ditaruh di rak dapur dimana ibu Tati akan mengupasnya.
d. Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di
panci, siap untuk dimasak dan kantong kertasnya harus dikembalikan ke
rak lagi.
e. Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
f. Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari
kejadian.
g. Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari
sudut pandang. Contoh mengupas kentang dapat dijelaskan :
1) Ambil kantong kentang dari rak
2) Ambil panci dari almari
3) Kupas kentang
4) Kembalikan kantong kentang ke rak
Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong
kentang diambil dari rak sebelum ambil panci) :
1) Ambil kantong kentang dari rak dan ambil panci dari almari
2) Kupas kentang
3) Kembalikan kantong kentang ke rak
6
Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam
juga, dan kita mengamati hal-hal yang sama, apakah hal tsb bisa
disebut sama? Ini tergantung jawabannya bisa sama bisa tidak.
Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama
dengan kemarin. Sama karena kemiripan pola yang dilakukan.
E. Pemrograman Prosedural
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini
berarti Algoritma adalah proses yang procedural. Definisi Prosedural menurut
Kamus Besar Bahasa Indonesia :
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu
masalah.
7
Notasi I :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar dan
panjang
segiempat
Deklarasi
Luas,panjang,lebar : bilangan bulat
Deskripsi
1. Masukkan nilai lebar dan panjang
2. Hitung luas sama dengan panjang kali lebar
3. Tampilkan Luas
9
Notasi II :
Notasi III :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar dan
panjang
segiempat
Deklarasi
Luas,panjang,lebar :integer
Deskripsi
Input(n)
Luas= panjang * lebar
Output(Luas)
dimengerti, karena memang tidak ada notasi baku dalam penulisan algoritma.
Tiap orang dapat membuat aturan penulisan dan notasi algoritma sendiri. Agar
notasi algoritma mudah ditranslasi ke dalam notasi bahasa pemrograman, maka
sebaiknya notasi algoritma tersebut berkorespnden dengan notasi bahasa
pemrograman secara umum.
a. Judul (Header)
b. Kamus
c. Algoritma
Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai
setiap bagian tersebut dituliskan diantara tanda kurung kurawa contoh {
Komentar }. Notasi algoritmis yang dituliskan diantara tanda ini tidak akan
dieksekusi oleh program.
Contoh :
Judul
{ Komentar mengenai Algoritma seperti cara kerja program, Kondisi awal dan
kondisi akhir dari algoritma }
Kamus
{ Pada bagian ini, didefinifikan nama konstanta, nama variable, nama
Algoritma
{prosedur
Pada bagian
dan nama
ini algoritma
fungsi } dituliskan. Semua teks yang dituliskan tidak
diantara tanda kurung kurawa akan dianggap sebagai notasi algoritma yang
akan berpengaruh terhadap kebenaran algoritma }
Judul (Header)
Judul adalah bagian teks algoritma yang digunakan sebagai tempat
mendefinisikan nama dengan menentukan apakah teks tersebut adalah
program, prosedur, fungsi. Setelah judul disarankan untuk menuliskan
spesifikasi singkat dari teks algoritma tersebut. Nama algoritma
sebaiknya singkat namun cukup menggambarkan apa yang akan
dilakukan oleh algoritma tersebut.
11
Contoh :
Catatan :
Untuk memisahkan antara kata dalam judul algoritma menggunakan
tanda “_” bukanlah suatu keharusan. Anda dapat menuliskan
LuasLingkaran atau Luas_Lingkaran. Tetapi sebaiknya anda tidak
menggunakan spasi “ “ untuk memisahkan antara kata di dalam nama
algoritma.
Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk
mendefinisikan :
a. Nama type
b. Nama konstanta
c. Nama variable
d. Nama fungsi
e. Nama prosedur
Contoh :
Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : <hh,mm,ss :integer> {Type jam terdiri dari 3 masukan yaitu
“hh” sebagai jam. “mm” sebagai menit dan “ss” sebagai detik}
{Nama konstanta, harus menyebutkan type dan nilai }
constant phi : real = 3,14159
constant nama : string = ‘Alex’
constant benar : boolean = true
{Nama Informasi, menyebutkan type}
x,y : integer {suatu nilai yang bertype bilangan bulat}
NMax : real {nilai maksimum yang bertype bilangan real}
Contoh :
Algoritma
input (c,d) {menerima masukan 2 bilangan c dan d}
if c < d then {operasi kondisional}
e ← a + b {e di assignment oleh nilai a dan b}
else
e ← a – boutput (e) {hasil keluaran berupa bilangan e}
Catatan :
Untuk kata-kata input, output, if then else, output akan dipelajari lebih
mendalam dalam bab-bab selanjutnya.
Program Cetak_string
{mencetak string “Selamat Belajar Algoritma dan Pemrograman” ke piranti
keluaran}
Kamus
{tidak ada}
Algoritma
Output (‘Selamat Belajar Algoritma dan Pemrograman’)
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti
masukan dan menuliskan hasilnya ke piranti keluaran.