Bab 1 Pengantar Algoritma
Apakah Itu Algoritma
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang
hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda
dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa
berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli
sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-
Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang
berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan”
(The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar
kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi
–thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat
laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata
Algorithm diserap menjadi Algoritma.
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 logis dan harus dapat ditentukan bernilai salah atau benar.
Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer
yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu
identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat
proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang
dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu
ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak
dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan
akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses
sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut
pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat
elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau
“mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya.
Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan
lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam
bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
Jadi program adalah prwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Belajar Memprogram Dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar
memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangakan
belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan
memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya
dalam bahasa itu saja.
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan
tujuan dan fungsinya. Diantaranya adalah :
Belajar Memprogram
• Belajar memprogram ≠ belajar bahasa pemrograman
• Belajar memprogram : belajar tentang strategi pemecahan masalah, metodologi dan
sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang
disepakati bersama
• Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis
• Belajar memprogram, titik berat : designer program
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
Produk yang dihasilkan pemrogram :
• program dengan rancangan yang baik (metodologis, sistematis)
• Dapat dieksekusi oleh mesin
• Berfungsi dengan benar
• Sanggup melayani segala kemungkinan masukan
• Disertai dokumentasi
• Belajar memprogram, titik berat : designer program
Prosedural
C, Pascal,
Fortran,
Basic
Programming
Language Paradigm
Imperative Declarative
Parallel
Processing :
Ada, Pascal S,
Occam, CLinda
ObjOriented
Ada, Object
Pascal, C++,
Java,
Smalltalk,
Eiffel
Logic :
PROLOG
Functional :
LISP, APL,
SCHEME
Database :
SQL
Algoritma
Aksi :
– kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1)
– Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan
Contoh :
– Ibu Tati mengupas kentang untuk mempersiapkan makan malam..(luas
ruang lingkupnya)
– Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek
netto yang direncanakan ( Initial State dan Final State)
– Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan
ditaruh di rak dapur dimana ibu Tati akan mengupasnya
– Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci,
siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi.
– Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
– Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian
– Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari
sudut pandang. Contoh mengupas kentang dapat dijelaskan :
�� Ambil kantong kentang dari rak
�� Ambil panci dari almari
�� Kupas kentang
�� Kembalikan kantong kentang ke rak
– Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang
diambil dari rak sebelum ambil panci) :
�� Ambil kantong kentang dari rak dan ambil panci dari almari
�� Kupas kentang
�� Kembalikan kantong kentang ke rak
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
Notasi Algoritma Independen Terhadap Bahasa Pemrograman Dan
Mesin Komputer
Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Analoginya sama dengan resep membuat kue. Sebuah resep dapat ditulis dalam bahasa
apapun. Bahasa Jepang, Inggris, Perancis, Indonesia, dan lain sebagainya. Apapun
bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti.
Mengapa demikian ? Karena setiap juru masak (sebagai pemroses) dapat melakukan
operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain
sebagainya.
5
Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda teknologinya,
tetapi secara umum semua komputer dapat melakukan operasi-operasi dasar dalam
pemrograman seperti operasi pembacaan data, operasi perbandingan, operasi aritmatika,
dan sebagainya. Perkembangan teknologi komputer tidak mengubah operasi-operasi dasar
it, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap
program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum
akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi
dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.
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.
Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian
instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu
per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena
adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh
instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan
pemrograman procedural.
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung
kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural.
Selain paradigma pemrograman procedural, ada lagi paradigma yang lain yaitu
pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman
ini merupakan trend baru dan sangat populr akhir-akhir ini.
Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn
deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan
paradigma pemrograman procedural saja.
Bab 2 Aturan Penulisan Algoritma
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat
ditulis dalam notasi apapun, asalkan mudah dibaca dan 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.
Aturan Penulisan Algoritma
Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
• Judul (Header)
• Kamus
• 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 (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.
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.
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 prosedur dan
nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak diantara tanda
kurung kurawa akan dianggap sebagai notasi algoritma yang akan berpengaruh
terhadap kebenaran algoritma }
Program Luas_Kubus ← {Judul Algoritma}
{ Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan lalu
mencetak hasilnya kepiranti keluaran} ← {Spesifikasi Algoritma}
Apakah Itu Algoritma
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang
hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda
dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa
berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli
sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-
Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang
berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan”
(The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar
kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi
–thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat
laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata
Algorithm diserap menjadi Algoritma.
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 logis dan harus dapat ditentukan bernilai salah atau benar.
Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer
yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu
identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat
proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang
dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu
ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak
dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan
akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses
sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut
pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat
elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau
“mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma
tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya.
Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan
lagu berdasarkan papan not balok. Karena itu suatu Algoritma harus dinyatakan dalam
bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
Jadi program adalah prwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Belajar Memprogram Dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar
memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian
menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangakan
belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan
memanfaatkan instruksi-instruksi tersebut untuk membuat program yang ditulis hanya
dalam bahasa itu saja.
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan berdasarkan
tujuan dan fungsinya. Diantaranya adalah :
Belajar Memprogram
• Belajar memprogram ≠ belajar bahasa pemrograman
• Belajar memprogram : belajar tentang strategi pemecahan masalah, metodologi dan
sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang
disepakati bersama
• Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis
• Belajar memprogram, titik berat : designer program
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
Produk yang dihasilkan pemrogram :
• program dengan rancangan yang baik (metodologis, sistematis)
• Dapat dieksekusi oleh mesin
• Berfungsi dengan benar
• Sanggup melayani segala kemungkinan masukan
• Disertai dokumentasi
• Belajar memprogram, titik berat : designer program
Prosedural
C, Pascal,
Fortran,
Basic
Programming
Language Paradigm
Imperative Declarative
Parallel
Processing :
Ada, Pascal S,
Occam, CLinda
ObjOriented
Ada, Object
Pascal, C++,
Java,
Smalltalk,
Eiffel
Logic :
PROLOG
Functional :
LISP, APL,
SCHEME
Database :
SQL
Algoritma
Aksi :
– kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1)
– Menghasilkan efek netto yang terdefinisi dengan baik dan direncanakan
Contoh :
– Ibu Tati mengupas kentang untuk mempersiapkan makan malam..(luas
ruang lingkupnya)
– Karena ruang lingkup luas, maka harus didefinisikan keadaan awal dan efek
netto yang direncanakan ( Initial State dan Final State)
– Initial State (keadaan awal) : T0 kentang sudah ada dikantong kentang, dan
ditaruh di rak dapur dimana ibu Tati akan mengupasnya
– Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di panci,
siap untuk dimasak dan kantong kertasnya harus dikembalikan ke rak lagi.
– Kejadian : urut-urutan dari beberapa aksi yang terjadi secara berurutan.
– Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari kejadian
– Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung dari
sudut pandang. Contoh mengupas kentang dapat dijelaskan :
�� Ambil kantong kentang dari rak
�� Ambil panci dari almari
�� Kupas kentang
�� Kembalikan kantong kentang ke rak
– Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong kentang
diambil dari rak sebelum ambil panci) :
�� Ambil kantong kentang dari rak dan ambil panci dari almari
�� Kupas kentang
�� Kembalikan kantong kentang ke rak
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
Notasi Algoritma Independen Terhadap Bahasa Pemrograman Dan
Mesin Komputer
Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Analoginya sama dengan resep membuat kue. Sebuah resep dapat ditulis dalam bahasa
apapun. Bahasa Jepang, Inggris, Perancis, Indonesia, dan lain sebagainya. Apapun
bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti.
Mengapa demikian ? Karena setiap juru masak (sebagai pemroses) dapat melakukan
operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain
sebagainya.
5
Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda teknologinya,
tetapi secara umum semua komputer dapat melakukan operasi-operasi dasar dalam
pemrograman seperti operasi pembacaan data, operasi perbandingan, operasi aritmatika,
dan sebagainya. Perkembangan teknologi komputer tidak mengubah operasi-operasi dasar
it, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap
program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum
akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi
dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.
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.
Pada pemrograman procedural, program dibedakan antara bagian data dengan bagian
instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi yang dilaksanakan satu
per satu secara berurutan oleh pemroses. Alur pelaksanaan instruksi dapat berubah karena
adanya pencabangan kondisional. Data yang disimpan di dalam memori dimanipulasi oleh
instrusi secara beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan
pemrograman procedural.
Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C mendukung
kegiatan pemrograman procedural, karena itu mereka dinamakan juga bahasa procedural.
Selain paradigma pemrograman procedural, ada lagi paradigma yang lain yaitu
pemrograman berorientasi objek (Object Oriented Programming). Paradigma pemrograman
ini merupakan trend baru dan sangat populr akhir-akhir ini.
Paradigma pemrograman yang lain adalah pemrograman fungsional, pemrogramn
deklaratif dan pemrograman konkuren. Pada kesempatan ini penulis hanya menyajikan
paradigma pemrograman procedural saja.
Bab 2 Aturan Penulisan Algoritma
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut dapat
ditulis dalam notasi apapun, asalkan mudah dibaca dan 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.
Aturan Penulisan Algoritma
Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
• Judul (Header)
• Kamus
• 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 (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.
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.
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 prosedur dan
nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak diantara tanda
kurung kurawa akan dianggap sebagai notasi algoritma yang akan berpengaruh
terhadap kebenaran algoritma }
Program Luas_Kubus ← {Judul Algoritma}
{ Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan lalu
mencetak hasilnya kepiranti keluaran} ← {Spesifikasi Algoritma}
Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
• Nama type
• Nama konstanta
• Nama variabel
• Nama fungsi
• Nama prosedur
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah didefinisikan terlebih
dahulu didalam kamus. Penulisan sekumpulan nama dalam kamus sebaiknya dikelompokan
menurut jenis nama tersebut.
Nama variabel belum terdefinisi nilainya ketika didefinisikan. Pendefinisian nama
konstanta sekaligus memberikan harga konstanta tersebut, pendefinisian nama fungsi
dilakukan sekaligus dengan domain / range serta spesifikasinya. Pendefinisian nama
prosedur sekaligus dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur
(kondisi awal “Initial State”, Kondisi akhir “ Final State” dan proses yang dilakukan).
Contoh :
Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : {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}
Nama : string {suatu nilai yang merupakan kumpulan character}
P : point {suatu nilai pada bidang kartesian}
Cari : Boolean {suatu nilai logika}
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
Algoritma (Deskripsi)
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan
aksi yang telah didefinisikan. Komponen teks algoritma dalam pemrograman procedural
dapat berupa :
• Instruksi dasar seperti input/output, assignment
• Sequence (runtutan)
• Analisa kasus
• Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan perintah.
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 – b
output (e) {hasil keluaran berupa bilangan e}
{Nama fungsi, menyebutkan domain dan range}
function RealToInt (x:real) → integer
{mengubah harga x yang bertype real menjadi harga ekivalen yang bertype integer}
{Nama prosedur, menyebutkan “IS” initial state, “FS” final state dan proses}
procedure tukar (input/output x,y : real)
{ IS x dan y terdefinisi, x = a dan y = b
FS x = b dan y = a
Proses : menukar isi informasi bilangan x dan y }
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
5
Catatan :
Untuk kata-kata input, output, if then else, output akan dipelajari lebih mendalam dalam
bab-bab selanjutnya.
Contoh Penyelesaian Masalah Oleh Algoritma
Mencetak String “Selamat Belajar Algoritma dan Pemrograman” ke piranti Keluaran.
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti masukan dan
menuliskan hasilnya ke piranti keluaran.
Program Cetak_string
{mencetak string “Selamat Belajar Algoritma dan Pemrograman” ke piranti
keluaran}
Kamus
{tidak ada}
Algoritma
Output (‘Selamat Belajar Algoritma dan Pemrograman’)
Program Nilai_Maksimal
{Menentukan nilai tertinggi yang dibaca dari piranti masukan dan hasilnya dicetak
ke piranti keluaran}
Kamus
hasil,x,y : integer {hasil merupakan variabel untuk menampung nilai keluaran}
{x,y adalah variabel untuk menampung nilai masukan}
Algoritma
input (x,y) {membaca nilai x dan y dari piranti masukan}
if x < y then {operasi kondisional}
hasil ← x {hasil di assignment oleh nila terbesar}
else
hasil ← y
output (hasil) (nilai didalam variabel hasil dicetak ke piranti keluaran}
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
• Nama type
• Nama konstanta
• Nama variabel
• Nama fungsi
• Nama prosedur
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah didefinisikan terlebih
dahulu didalam kamus. Penulisan sekumpulan nama dalam kamus sebaiknya dikelompokan
menurut jenis nama tersebut.
Nama variabel belum terdefinisi nilainya ketika didefinisikan. Pendefinisian nama
konstanta sekaligus memberikan harga konstanta tersebut, pendefinisian nama fungsi
dilakukan sekaligus dengan domain / range serta spesifikasinya. Pendefinisian nama
prosedur sekaligus dengan pendefinisian parameter (jika ada) dan spesifikasi prosedur
(kondisi awal “Initial State”, Kondisi akhir “ Final State” dan proses yang dilakukan).
Contoh :
Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : {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}
Nama : string {suatu nilai yang merupakan kumpulan character}
P : point {suatu nilai pada bidang kartesian}
Cari : Boolean {suatu nilai logika}
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
Algoritma (Deskripsi)
Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau pemanggilan
aksi yang telah didefinisikan. Komponen teks algoritma dalam pemrograman procedural
dapat berupa :
• Instruksi dasar seperti input/output, assignment
• Sequence (runtutan)
• Analisa kasus
• Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi penulisan
menentuan urutan langkah pelaksanaan perintah.
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 – b
output (e) {hasil keluaran berupa bilangan e}
{Nama fungsi, menyebutkan domain dan range}
function RealToInt (x:real) → integer
{mengubah harga x yang bertype real menjadi harga ekivalen yang bertype integer}
{Nama prosedur, menyebutkan “IS” initial state, “FS” final state dan proses}
procedure tukar (input/output x,y : real)
{ IS x dan y terdefinisi, x = a dan y = b
FS x = b dan y = a
Proses : menukar isi informasi bilangan x dan y }
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
5
Catatan :
Untuk kata-kata input, output, if then else, output akan dipelajari lebih mendalam dalam
bab-bab selanjutnya.
Contoh Penyelesaian Masalah Oleh Algoritma
Mencetak String “Selamat Belajar Algoritma dan Pemrograman” ke piranti Keluaran.
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti masukan dan
menuliskan hasilnya ke piranti keluaran.
Program Cetak_string
{mencetak string “Selamat Belajar Algoritma dan Pemrograman” ke piranti
keluaran}
Kamus
{tidak ada}
Algoritma
Output (‘Selamat Belajar Algoritma dan Pemrograman’)
Program Nilai_Maksimal
{Menentukan nilai tertinggi yang dibaca dari piranti masukan dan hasilnya dicetak
ke piranti keluaran}
Kamus
hasil,x,y : integer {hasil merupakan variabel untuk menampung nilai keluaran}
{x,y adalah variabel untuk menampung nilai masukan}
Algoritma
input (x,y) {membaca nilai x dan y dari piranti masukan}
if x < y then {operasi kondisional}
hasil ← x {hasil di assignment oleh nila terbesar}
else
hasil ← y
output (hasil) (nilai didalam variabel hasil dicetak ke piranti keluaran}
Copyright © 2003 IlmuKomputer.Com
Pengantar Algoritma dan Pemrograman
Alex Budiyanto
Alex Budiyanto
alex@ilmukomputer.com
Comments :
0 komentar to “PENGANTAR ALGORITMA DAN PEROGRAMAN 1”
Posting Komentar
silahkan tinggalkan coment/kritikan anda,akan sangat membantu bt q.makasih sebelumya