Algoritma dan Pemrograman
Program = Algoritma +
Bahasa (Struktur Data)
Bagaimanapun juga
struktur data dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat
program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan algoritma
mempunyai banyak keuntungan di antaranya :
Pembuatan atau
penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya
penulisan algoritma independen dari
bahasa pemrograman dan komputer yang melaksanakannya.
Notasi algoritma
dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Apapun bahasa
pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang
perlu diperhatikan dalam membuat algoritma :
Teks algoritma berisi
deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis
dalam notasi apapun asalkan mudah dimengerti dan dipahami.
Tidak ada notasi yang
baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi
yang digunakan dalam menulis algoritma disebut notasi algoritmik.
Setiap orang dapat
membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan
teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik
mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka
sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
Notasi algoritmik
bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik
tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer,
pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke
dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang
menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi
mesin yang menjalannya.
Algoritma sebenarnya
digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam
bahasa pemrograman.
Algoritma merupakan
hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma
harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang
harus diperhatikan pada translasi tersebut, yaitu :
a. Pendeklarasian variabel
Untuk mengetahui
dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman
apabila tidak semua bahasa pemrograman
membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa
pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu
hal ini dipertimbangkan pada saat pemilihan tipe data.
c. Pemakaian instruksi-instruksi
Beberapa instruksi
mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan
kekurangan yang berbeda.
d. Aturan sintaksis
Pada saat menuliskan
program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan
digunakan.
e. Tampilan hasil
Pada saat membuat
algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal
teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman
yang digunakan termasuk dalam kelompok compiler atau interpreter.
Langkah-langkah dalam pemrograman komputer
1. Mendefinisikan
masalah
Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum
Murphy
(oleh Henry Ledgard):
“Semakin cepat menulis program, akan semakin lama kita dapat
menyelesaikannya”.
Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan
masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa
inputan serta outputnya.
2. Menemukan solusi
Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan
solusi.
Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah
menjadi
modul-modul kecil agar lebih mudah diselesaikan.
Contohnya masalah invers matriks, maka kita dapat membagi menjadi
beberapa
modul:
�� meminta masukkan
berupa matriks bujur sangkar
�� mencari invers
matriks
�� menampilkan hasil
kepada pengguna
Dengan penggunaan modul tersebut program utama akan menjadi lebih
singkat dan
mudah dilihat.
3. Memilih algoritma
Pilihlah algoritma yang benar-benar sesuai dan efisien untuk
permasalahan tersebut
4. Menulis program
Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik
lagi jika
sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat
keras dan
platform lainnya.
5. Menguji program
Setelah program jadi, silahkan uji program tersebut dengan segala macam
kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan
benar-benar handal dan layak digunakan.
6. Menulis
dokumentasi
Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan
melakukan
perubahan atau membaca source code yang sudah kita tulis dapat kita
ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan
menuliskan komentarkomentar kecil tentang apa maksud kode tersebut, untuk apa,
variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada
suatu prosedur dan fungsi.
7. Merawat program
Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang
sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan fasilitas
baru yang dulu tidak ada.
Jenis
Proses Algoritma
1.
Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
2.
Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
3.
Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
4.
Concurrent Process: beberapa instruksi dikerjakan secara bersama.
Contoh
Algoritma
Algoritma
menghitung luas persegi panjang:
1.
Masukkan panjang (P)
2.
Masukkan lebar (L)
3. L ← P
* L
4. Tulis
L
Dalam
Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman
tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa
pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh
bahasa pemrograman manapun.
Definisi
Pseudo-code
Kode atau
tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan
algoritma.
Problem:
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh
Pseudo-code:
1.
Masukkan bilangan pertama
2.
Masukkan bilangan kedua
3. Jika
bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak,
kerjakan
langkah
5.
4.
Tampilkan bilangan pertama
5.
Tampilkan bilangan kedua
Contoh
Algoritma
1.
Masukkan bilangan pertama (a)
2.
Masukkan bilangan kedua (b)
3. if a
> b then kerjakan langkah 4
4. print
a
5. print
b
Algoritma
Pemrograman
Definisi
Program/Pemrograman
- Adalah
kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang
dibuat oleh programmer (pembuat program)
Paradigma
Pemrograman
1.
Pemrograman Prosedural
�� Berdasarkan urutan-urutan, sekuensia
�� 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.
2.
Pemrograman Fungsional
�� Berdasarkan teori fungsi matematika
�� Fungsi merupakan dasar utama program.
3.
Pemrograman Terstruktur
�� Secara berurutan dan terstrukrtur.
�� Program dapat dibagai-bagi menjadi
prosedur dan fungsi.
�� Contoh: PASCAL dan C
4.
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
5.
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.
6.
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.
7.
Pemrograman Deklaratif
�� Pemrograman ini mendeskripsikan suatu
masalah dengan pernyataan daripada memecahkan masalah dengan implementasi
algoritma.
�� Contoh: PROLOG
Algoritma
Asal kata
Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan
Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and
reduction) sekitar tahun 825 M
Definisi
Algoritma
-
Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah.
Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti
suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press
Computer and Internet Dictionaary 1997, 1998)
- Alur
pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis.
Yang
ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga
berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis,
yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma
dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1)
Contoh Algoritma
dalam kehidupan nyata:
- Jika
seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak
pasti
akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau
kuenya
jadi.
- Jika
seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang
harus
dilakukan adalah:
� Menulis surat
�Surat dimasukkan ke dalam amplop tertutup
�Amplop ditempeli perangko secukupnya.
� Pergi ke Kantor Pos terdekat untuk mengirimkannya.
Dalam
bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai
masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang
dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat
dan tidak efisien.
Pelaksana
algoritma adalah Komputer.
Manusia
dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah
kepada komputer berupa instruksi-instruksi yang disebut program.
Alat yang
digunakan untuk membuat program tersebut adalah bahasa pemrograman.
Bahasa
pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP,
ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa
pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan
menghasilkan output yang sama.