Selasa, 31 Desember 2013

Mengenal Dasar Algoritma Dalam Pemrograman Komputer

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:

  1. 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.
  2. Mencari solusinya
    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.
  3. Menentukan algoritma
    Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
  4. Menulis program
    Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.
  5. Menguji program
    Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
  6. 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).
  7. 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.

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.

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.
Bahasa Pemrograman

Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini memungkinkan seorang programmer dapat menentukan secara persis data mana yang akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi.

Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar:
  • Bahasa pemrograman bertujuan khusus, yang termasuk kelompok ini adalah COBOL (terapan bisnis dan administrasi), Fortran (terapan komputasi ilmiah), bahasa assembly (terapan pemrograman mesin), prolog (terapan kecerdasan buatan), dan lain-lain.
  • Bahasa pemrograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C.

Berdasarkan pada apakah notasi bahasa pemrograman lebih dekat ke mesin atau ke bahasa manusia, maka pemrograman dikelompokkan atas dua bagian:
  • Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah. Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Bahasa assembly dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih diperlukan penerjemahan ke dalam bahasa mesin.
  • Bahasa tingkat tinggi, yang membuat pemrograman menjadi lebih mudah untuk dipahami, lebih manusiawi dan berorientasi ke bahasa manusia. Program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (compiler atau interpreter) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Algoritma ditranslasikan menjadi program dalam bahasa tingkat tinggi. Selanjutnya, program dikompilasi dan diterjemahkan menjadi program dalam bahasa mesin dan dilakukan proses linking dengan berkas library. Instruksi dalam bahasa mesin diinterpretasi oleh CPU. Operasi yang bersesuaian dengan setiap instruksi dilaksanakan.

Penerjemah terdiri dari dua jenis, interpreter dan compiler. Perbedaan antara keduanya antara lain:

Interpreter

Compiler

✓ Menerjemahkan instruksi per instruksi
✓ Source program tidak harus ditulis lengkap
✓ Bila terjadi kesalahan instruksi, dapat langsung diperbaiki secara interaktif

✓ Tidak menghasilkan objek program
✓ Pemrosesan program lebih lambat, karena setiap instruksi yang dikerjakan harus diinterpretasi ulang
✓ Source code program terus dipergunakan
✓ Menerjemahkan secara keseluruhan
✓ Source program harus ditulis lengkap
✓ Bila terjadi kesalahan dalam kompilasi, source program harus dibenarkan dan proses kompilasi diulang kembali
✓ Menghasilkan objek program

✓ Pemrosesan program lebih cepat, karena program sudah dalam bahasa mesin

✓ Source code program dipergunakan satu kali pada saat kompilasi program
Penulisan Algoritma

Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi algoritma bukan notasi bahasa pemrograman, sehingga siapa pun dapat membuat notasi algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Selain itu, meskipun notasi algoritma bukan notasi baku sebagaimana pada notasi bahasa pemrograman, ketaatasasan terhadap notasi perlu diperhatikan untuk menghindari kekeliruan.

Pada umumnya terdapat tiga jenis cara penulisan algoritma, yakni:

  1. Cara deskriptif
    Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas.

    Contoh:
    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-urutan 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:
    • Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan
    • Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya
    • Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas
    • Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan "MENGHITUNG PAJAK PENJUALAN"
    • Setiap langkah dari aktivitas harus berada pada urutan yang benar
    • Gunakan simbol-simbol flowchart yang standar

Bahasa Pemrograman Java

Sebagai sebuah bahasa pemrograman, Java dapat digunakan untuk membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Sebagai sebuah bahasa pemrograman, Java dapat digunakan untuk membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain.

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

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:
  • Java Virtual machine (JVM) yang merupakan fondasi untuk platform Java yang dapat digunakan di berbagai platform perangkat keras
  • Java Application Programming Interface (Java API) yang merupakan kumpulan komponen-komponen perangkat lunak siap pakai untuk berbagai keperluan penulisan program.

Untuk lebih mengerti tentang Algoritma ini, silahkan lihat Video dibawah ini:
Algoritma & Pemrograman:

2 komentar:

  1. Kayaknya punya agan lebih mantap ni,,,salam kenal...

    makasi sebelumnya agan udah mampir di blog ane yg amburadul... :D

    BalasHapus
  2. wah mantap gan,ane juga lagi belajar dsar algoritma,mau kuliah ngambil tikom :D

    BalasHapus

Assalamu'alaikum Sahabat Blogger! Sebelum berkomentar bacalah ketentuan berikut ini:
✓ Berikanlah komentar yang sopan dan relevan
✓ Berikanlah komentar yang sesuai dan berkorelasi dengan materi artikel
✓ Dilarang memasukkan komentar dengan link aktif
✓ Dilarang memasukkan komentar Follow/Follback bukan pada tempatnya. Jika ingin saling Follow/Follback masuk KESINI
Terima kasih dan semoga hari anda menyenangkan!