Algoritma dan Pemograman
Materi dasar Algoritma dan Pemograman
Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami
terlebih dahulu langkah-langkah pembuatan suatu program. Terdapat
beberapa langkah umum dalam pembuatan suatu program yaitu:
- Mendefinisikan masalah
- Mencari solusinya
- Menentukan algoritma
- Menulis program
- Menguji program
- Mendokumentasikan program
- Merawat program
Mendefinisikan masalah
Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.
Mencari solusi
Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
Menentukan algoritma
Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
Menulis program
Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.
Menguji program
Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
Mendokumentasikan program
Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
Merawat program
Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.
Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program. Untuk lebih jelasnya tentang algoritma pemrograman akan diulas sebagai berikut :
Algoritma
Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.
Mencari solusi
Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
Menentukan algoritma
Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
Menulis program
Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.
Menguji program
Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
Mendokumentasikan program
Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
Merawat program
Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.
Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program. Untuk lebih jelasnya tentang algoritma pemrograman akan diulas sebagai berikut :
Algoritma
Definisi dari algoritma antara lain :
– Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
– Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.
– Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika.
– Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of
Computer Programming, algoritma harus mempunyai lima ciri penting :
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga)
2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous)
3. Algoritma memiliki nol atau lebih masukan (input)
4. Algoritma mempunya nol atau lebih keluaran (output)
5. Algoritma harus efektif dan efisien.
PROGRAM
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh
komputer, algoritma harus ditulis dalam notasi bahasa pemrograman
sehingga dinamakan program. Jadi program adalah perwujudan atau
implementasi teknis algoritma yang ditulis dalam bahasa pemrograman
tertentu sehingga dapat dilaksanakan oleh komputer. Kata algoritma dan
kata program seringkali dipertukarkan dalam penggunaannya. Algoritma adalah urutan langkah-langkah penyelesaian masalah sedangkan Program adalah realisasi algoritma dalam bahasa pemrograman. Program
ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat
program disebut pemrograman (programming). Orang yang menulis program
disebut programmer. Tiap-tiap langkah di dalam program
disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan
instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang
bersesuaian dengan instruksi tersebut dikerjakan oleh komputer. Secara
garis besar komputer tersusun atas empat komponen utama, yakni:
1. piranti masukan berfungsi untuk memasukkan data atau program ke dalam memori komputer
2. piranti keluaran berfungsi untuk menampilkan hasil dari eksekusi program komputer
3. unit pemroses utama berfungsi mengerjakan operasi-operasi dasar
4. memori berfungsi untuk menyimpan program dan data atau informasi.
Proses Eksekusi Program
Mekanisme eksekusi sebuah program adalah sebagai berikut:
1. Program disimpan di dalam memori melalui piranti masukan.
2. Ketika sebuah program dieksekusi maka setiap instruksi program
akan dikirim dari memori ke unit pemroses utama. Unit pemroses utama
kemudian akan menjalankan operasi sesuai instruksi-instruksi yang
dibaca.
3. Apabila sebuah instruksi membutuhkan data masukan, maka piranti
masukan akan membaca data masukan, mengirimkan ke memori kemudian
mengirimkan ke unit pemroses utama untuk diproses.
4. Apabila eksekusi program menghasilkan data keluaran, maka data
keluaran akan disimpan di dalam memori, kemudian dikirim ke piranti
keluaran.
Perbedaan interpreter dan compiler
Interpreter
1. Menerjemahkan instruksi per instruksi.
2. Source program tidak harus ditulis lengkap.
3. Bila terjadi kesalahan instruksi, dapat langsung diperbaiki secara interaktif.
4. Tidak menghasilkan objek program
5. Pemrosesan program lebih lambat, karena setiap instruksi yang dikerjakan harus diinterpretasi ulang.
6. Source code program terus dipergunakan.
Compiler
1. Menerjemahkan secara keseluruhan.
2. Source program harus ditulis lengkap.
3. Bila terjadi kesalahan dalam kompilasi, source program harus dibenarkan dan proses kompilasi diulang kembali.
4. Menghasilkan objek program.
5. Pemrosesan program lebih cepat, karena program sudah dalam bahasa mesin.
6. Source code program dipergunakan satu kali pada saat kompilasi program.
PENULISAN ALGORITMA
Pada umumnya terdapat tiga jenis cara penulisan algoritma, yakni :
1. Cara deskriptif
Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas. Contohnya : Algoritma
Bilangan_Maksimum
Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum di antara ketiga bilangan tersebut.
Deskripsi :
(1) baca bilangan 1.
(2) baca bilangan 2.
(3) bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih
besar, jika kedua bilangan tersebut sama besar, dapat kita ambil
bilangan 1, dan sebut bilangan tersebut MAX.
(4) baca bilangan 3.
(5) bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar,
jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX.
(6) keluarkan sebagai output MAX.
2. Pseudocode
Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat
tinggi. Keuntungan menggunakan notasi pseudocode adalah memberikan
kemudahan bagi programmer untuk menerjemahkan ke notasi bahasa
pemrograman, karena terdapat korespondensi antara setiap pseudocode
dengan notasi bahasa pemrograman.
Contoh : Algoritma Bilangan_Maksimum
{ Dibaca tiga buah bilangan dari piranti masukan. Carilah bilangan bulat maksimum di antara ketiga bilangan tersebut }
Deklarasi :
Bil1,Bil2,Bil3 : integer {bilangan yang dicari maksimumnya}
MAX : integer {variabel bantu}
Deskripsi :
read(Bil1,Bil2)
if (Bil1>=Bil2) then
Bil1←MAX
else
Bil2←MAX
read(Bil3)
if (Bil3>=MAX) then
Bil3←MAX
write(MAX)
3. Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
urut-rutan prosedur dari suatu program. Flowchart menolong analis dan
programmer untuk memecahkan masalah ke dalam segmen-segmen yang lebih
kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam
pengoperasian. Bila seorang analis dan programmer akan membuat
flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti:
1. Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2. Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan MENGHITUNG PAJAK PENJUALAN.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar
6. Gunakan simbol-simbol flowchart yang standar.
Simbol-simbol yang sering digunakan dalam flowchart antara lain:
Contoh flowchart untuk menghitung jumlah dua buah bilangan yakni sebagai berikut :
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :
1. Sederhana (Simple) Bahasa pemrograman Java menggunakan sintaks
mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki
terutama menghilangkan penggunaan pointer yang rumit dan multiple
inheritance. Java juga menggunakan automatic memory allocation dan
memory garbage collection.
2. Berorientasi objek (Object Oriented) Java mengunakan pemrograman
berorientasi objek yang membuat program dapat dibuat secara modular dan
dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan
dunia nyata ke dalam objek dan melakukan interaksi antar objek-objek
tersebut
3. Terdistribusi (Distributed) Java dibuat untuk membuat aplikasi
terdistribusi secara mudah dengan adanya networking libraries
yang terintegrasi pada Java
4. Interpreted Program Java dijalankan menggunakan interpreter yaitu
Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang
telah dikompilasi menjadi Java bytecodes dapat dijalankan pada
platform yang berbeda-beda
5. Robust Java mempuyai reliabilitas yang tinggi. Compiler pada
Java mempunyai kemampuan mendeteksi error secara lebih teliti
dibandingkan bahasa pemrograman lain. Java mempunyai runtime-exception
handling untuk membantu mengatasi error pada program.
6. Secure Sebagai bahasa pemrograman untuk aplikasi internet dan
terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga
aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan
aplikasi tersebut
7. Architecture Neutral Program Java bersifat independent
platform. Program cukup mempunyai satu buah versi yang dapat dijalankan
pada platform berbeda dengan menggunakan Java Virtual Machine
8. Portable Source code maupun program Java dapat dengan mudah dibawa
ke platform yang berbeda-beda tanpa harus dikompilasi ulang
9. Multithreaded Java mempunyai kemampuan untuk membuat suatu program
yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan
10. Dynamic Java didesain untuk dapat dijalankan pada lingkungan yang
dinamis. Perubahan pada suatu class dengan menambahkan properties
ataupun method dapat dilakukan tanpa menggangu program
yang menggunakan class tersebut.
Mekanisme eksekusi program di Java
Lingkungan pemrograman pada Java menggunakan compiler sekaligus
interpreter agar dapat berjalan pada platform yang berbeda. Java
compiler melakukan kompilasi pada source code (.java) menjadi Java
bytecodes (.class) seperti ditunjukkan oleh Gambar Berikut :
Program Java hasil kompilasi akan dapat dijalankan pada berbagai
platform sistem komputer dengan menggunakan Java Virtual machine (JVM).
JVM disebut juga bytecodes interpreter atau Java runtime
interpreter. Tidak seperti bahasa pemrograman lainnya, platform Java
mempunyai dua komponen, yaitu:
1. Java Virtual machine (JVM) yang merupakan fondasi untuk
platform Java yang dapat digunakan di berbagai platform perangkat keras.
2. Java Application Programming Interface (Java API)yang
merupakan kumpulan komponen-komponen perangkat lunak siap pakai untuk
berbagai keperluan penulisan program.