Algoritma dan Pemprograman

4.  Algoritma






A. Sejarah Algoritma

Para ahli sejarah matematika meyakini bahwa kata algorism berasal dari nama penulis buku juga ahli matematika berkebangsaan Arab yang terkenal yaitu Abu Ja’far Muhammad lbnu Musa Al-Khuwarizmi (770-840). Sebagian referensi menulis Abu Abdullah Muhammad lbnu Musa Al-Khawarizrni.

Orang barat melafalkan Al-Khuwarizmi dengan algorism. Entah karena Al-Khuwarizmi seorang algorist yang pintar, kemudian untuk selanjutnya dikenal dengan algorism sebagai definisi untuk langkah penyelesaian suatu masalah yang menghasilkan solusi oleh orang barat.

Al-Khuwarizmi lahir di Khwarizm (kheva), kota yang terletak di selatan Sungai Oxus (sekarang Uzbekistan). Ketika masih kecil, ia pindah bersama orangtuanya ke selatan kota Baghdad (Irak).

Salah satu buku Al-Khuwarizmi yang terkenal adalah Kitab Al Jabar Wal-Muqabala yang berarti “Buku pemugaran dan pengurangan” (The book of restoration and reduction).

Dari judul buku itu jugalah didapat kata “Aljabar” yang sekarang menjadi salah satu cabang ilmu matematika.

Sebuah sumber lain menuliskan algoritma adalah suatu metode khusus yang tepat dan terdiri dari serangkaian langkah yang terstruktur dan ditulis secara matematis, yang akan dikerjakan untuk menyelesaikan suatu masalah dengan bantuan komputer.

Seperti halnya sebuah bangunan yang kuat memiliki struktur rangka yang baik. Demikian juga pada program atau aplikasi yang baik juga harus disusun oleh struktur pemrograman yang baik. Teknik penyusunan struktur program disebut dengan algoritma.



B. Pengertian Algoritma

Algoritma merupakan dimana susunan langkah-langkah sistematis dan juga logis dalam pemecahan suatu masalah. Ada 3 cara dalam penyunsunan algoritma yaitu (1), Dengan merumuskan langkah-langkah pemecahan masalah melewati kalimat yang dimana terstruktur ; (2), Menggabungkan kalimat dengan penggalan stratements yang ada di suat bahasa pemrograman (mis: Pascal). Biasanya ini juga disebut juga dengan Pseudo code : dan (3), Menggunakan diagram alir . (Saniman dan Muhammad Fathoni: Pengantar Algoritma dan juga Pemrograman).
Algoritma merupakan suatu jantung dari ilmu komputer maupun juga informatika. Ada banyak cabang ilmu dari komputer yang dapat mengacu dalam terminologi algoritma. Akan juga tetapi, anda jangan beranggapan bahwa algoritma selalu di identikkan dengan ilmu komputer saja. yang misalnya mengenai algoritma, merupakan cara membuat kue maupun juga masakan yang akan dinyatakan dalam resep masakan, itu juga merupakan algoritma.
Definisi Algoritma meruapakan suatu susunan langkah dimana penyelesaian suatu masalah secara sistematika dan logis. Terdapat dua kata yang menjadi titik perhatian kita yakni sistemati dan logis. Algoritma merupakan suatu langkah-langkah yang disusun secara tertulis dan juga akan berurutan untuk dapat menyelesaikan suatu masalah.



C. Contoh Algoritma : 

1. Para ibu-ibu akan mencoba resep masakan tersebut akan membaca satu persatu langkah pembuatannya, lalu akan mengerjakan proses (melakukan aksi) sesuai yang ia baca tadi. Sehingga pada umumnya, pihak yang akan mengerjakan proses disebut dengan pemroses. Pemroses dapat berupa dengan manusia, robot, komputer, alat mekanik ,alat elektronik dan yang lain-lain. Melaksanakan algoritma merupakan sebuah mengerjakan langkah-langkah yang akan tertulis dalam algoritma tersebut.

2. Algoritma mengirim surat :
  • Ketik atau surat
  • Miapkan sampul surat atau amplop
  • Masukkan surat ke dalam amplop yang tersedia
  • Lem amplop surat dengan baik 
  • Tuliskan alamat pengiriman surat, jika tidak ingat, lebih dahulu ambil buku alamat & cari alamat yang dituju, lalu tulis alamat amplop surat
  • Beli dan tempelkan perangko pada amplop
  • Pergi ke kantor pos dan bawa surat untuk diserahkan pada pegawai pos.
3. Menentukan Apakah Bilangan Tersebut Ganjil atau Genap
Terdapat bilangan yang bernama bilang bulat yaitu 0, 1, -1, 2, dst serta bilangan asli 1, 2, 3, 4, 5, dst. Kedua jenis bilangan tersebut sering digunakan dalam berhitung. Himpunan bilangan-bilangan bulat dalam buku teks aljabar pada umumnya dinyatakan dengan lambang "Z" dan himpunan bilangan-bilangan asli dinyatakan dengan lambang "N". Algoritma guna menentukan apakah bilangan tersebut ganjil atau genap dapat disajikan dengan flowchart seperti dibawah ini :



Menentukan Apakah Bilangan Tersebut Ganjil atau Genap
Bilangan genap merupakan sebuah bilangan bulat yang akan habis atau tidak memiliki sisa jika dibagi 2 (dua). Bilangan ganjil merupakan sebuah bilangan bulat yang tidak akan habis apabila dibagi 2 (dua).


D. Kriteria Algoritma

Menurut Donald E. Knuth, Algoritma yang baik memiliki kriteria yakni:

a. Input

Suatu algoritma harus mempunyai 0 dan juga lebih masukan (input) yang juga berarti suatu algoritma itu akan dimungkinkan tidak memiliki masukan secara langsung dari pengguna tetapi dapat juga mewakili beberapa masukan. Algoritma yang ini tidak memiliki masukan secara langsung dari pengguna, maka dapat kita diinisalisasikan maupun juga dibangkitkan dalam algoritma.

b. Output

Suatu algoritma harus memiliki satu atau lebih algoritma. Suatu algoritma yang tidak memiliki keluaran adalah suatu algoritma yang sia-sia, yang tidak akan perlu dilakukan. Algoritma dibuat untuk tujuan menghasilkan sesuatu yang akan diinginkan, yaitu berupa hasil keluaran.

c. Finiteness

Setiap pekerjaan yang telah dikerjakan pasti dapat berhenti. Demikian halnya dengan algoritma harus dapat dijamin lalu kemudian berhenti setelah melakukan sejumlah langkah proses.

d. Defiteness

Tidak dapat menimbulkan makna ganda (ambiguous). Setiap baris aksi atau juga pernyataan dalam suatu algoritma harus pasti,yang artinya tidak dapat menimbulkan penafsiran lain yang bagi setiap pembaca algoritma tersebut, sehingga dapat memberikan output yang sesuai dengan apa yang kemudian diharapkan oleh pengguna tersebut.

e. Efectiviness

Langkah algoritma yang akan dikerjakan dalam suatu waktu yang wajar. Suatu algoritma tidak akan terdapat suatu aksi yang tidak perlu dilakukan. Setiap aksi akan membutuhkan waktu eksekusi, padahal aksi tersebut jelas tidak akan berpengaruh atau juga tidak ada gunanya.yang Misalnya aksi x- < x + 0. Aksi ini jelas tidak akan berpengaruh dan juga tidak ada gunanya karena X + 0 akan menghasilkan suatu bilangan X juga berarti tidak akan berguna. dengan demikian, tidak akan perlu untuk dilakukan karena sia-sia.



E. Jenis proses Algoritma : 

Disini saya akan membahas tentang jenis proses algoritma. Ada 4 proses kelompok untuk membentuk suatu algoritma, diantaranya :

1. Sequence Process
2. Selection Process
3. Iteration Process
4. Concurrent Process

Saya akan menjelaskan apa itu Sequence Process, Selection Process, Iteration Process, Concurrent Process beserta contohnya.

1. Sequence Process

Instruksi dikerjakan secara berurutan satu persatu dimulai dari langkah pertama sampai terakhir.

2. Selection Process

Instruksi pemilihan proses (percabangan),  sehingga apabila memenuhi persyaratan tertentu maka instruksi akan dikerjakan.
Contoh : jika pembayaran tunai diberi diskon 10%, Jika dilakukan secara kredit maka diskon 0 %. (dalam pernyataan diatas, hanya boleh melakukan 1 instruksi dari 2 alternatif instruksi.

3. Iteration Process

Suatu instruksi yang dikerjakan berulang-ulang selama beberapa kali selama masih memenuhi suatu kondisi.

4. Concurrent Process

Beberapa instruksi dikerjakan secara bersama.



F. Macam - macam Algoritma :

Ada beberapa bentuk untuk algoritma antara lain sebagai berikut:

1.      Deskriptif
Deskriptif ini maksudnya adalah susunan langkah-langkah menyelesaikan suatu masalah yang di buat secara urut dan mendetail. Misalnya:
1. (START) Buka Kemasan Mie
2. Pisahkan Bumbu Dengan Mie
3. Masukkan Mie Kedalam Panci Air Mendidih
4. Letakkan Bumbu Di Piring
5. Tiris Mie, & Campurkan Dengan Bumbu Di Piring
6. Hidangkan (END)
Kelemahan dari Algoritma ini adalah terlalu panjang meskipun mendetail

2.  Flowchart
Flowchart (Diagram alir) ini langkah-langkah penyelesaian suatu masalah yang di buat dalam bentuk grafik menggunakan simbol-simbol yang menggambarkan suatu kegiatan tertentu. Flowchart diawali dengan penerimaan masukkan (Input), Pemrosesan masukkan, & Diakhiri dengan menampilkan hasilnya (Output). Berikut Macam-Macam Simbol Dalam Flowchart:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgCO0csy8gLCBEEoIZhDWHYIYOBUraJWCtzfVtWbogGxKr3VZ0X1nErtYU0O3J-MCpq0Ex_-yon2ZsmHEoJ6EZONmPM5UOtR3gEiT0uptJxEX4VI05UEd7sLKL8OCGRNXTRwhbdh30ew/s320/ 
           
 Misalnya:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrM2uU0yL5nODxvMvmJRDVW8yw5chKjnzhSRyb9NgHl99vjE7L4o_stiOsSGezuZOW8Cf8yBjKumnjOS5WrbaT68L4nKOz6l0daqf7_q3Nf-pIShQKIBfU54vcrUe7iW3Ieins8wT3g/s320/ 
Kelemahan dari Algoritma ini adalah kurangnya pengertian atau terlalu ringkas yang dapat menimbulkan kesan ambigu meskipun cara ini paling mudah dan sering digunakan karena singkat.

3.  Pseudocode

Pseudo memiliki arti imitasi atau tiruan atau menyerupai dan code menunjukkan kode pemrograman. Pseudocode adalah algoritma yang di buat mirip dengan bahasa pemrograman aslinya. Tujuannya adalah mempermudah menjelaskan kepada sesama rekan Programer ( Bukan Progamer loh yah XD ).



G. Bagian - bagian Program : 

Bagian-bagian utama Program C++ : 

1. Bagian pengarah compiler atau File Header

#include <iostream> //File Header

using namespace std; //File Header

int main () {
     // Menampilkan tulisan Hello World ke Layar
     cout<<"Hello World";

     return 0;
}

File Header adalah file yang berisi deklarasi, baik berupa konstanta, fungsi, kelas, namespace, dan sebagainya. Ingat hanya berisi deklarasi. Apabila berupa fungsi, yang tertulis dalam file header hanya prototipenya saja. File ini tidak berisi implementasi atau kode-kode program dari fungsi atau kelas yang didefinisikan di dalamnya.


File Header juga merupakan statement praprosesor, disebut juga pengarah compiler karena berfungsi mengatur proses kompilasi. contohnya "iostream" merupakan file program yang mengandung deklarasi kelas-kelas yang diperlukan misal oleh objek "cout".

C++ menyediakan banyak file header untuk berbagai macam keperluan. perlu diketahui bahwa sebagian besar file header dalam C++ standar sudah tidak memiliki ekstensi ".h" , misalnya <iostream> , <string> , <cstring> dan sebagainya. dalam C++ klasik / tradisional, ekstensi ".h" wajib disertakan, misalnya <iostream.h> , <string.h> , <cstring.h> dan sebagainya.

Untuk lebih memahami kegunaan dari file header, perhatikan kembali contoh program diatas, dalam kode tersebut kita menggunakan perintah "cout", padahal kita tidak pernah mendefinisikan perintah tersebut. Pertanyaannya adalah, bagaimana compiler bisa mengenali perintah "cout" ? Jawabannya adalah karena "cout" telah dideklarasikan didalam file header "iostream". Pada saat kita menulis baris #include <iostream>, kita mengatakan kepada compiler bahwa kita akan menggunakan semua bentuk deklarasi yang ada di dalam file header "iostream".

2 & 3. Bagian Deklarasi dan Bagian Definisi

Semua program C pada dasarnya tersusun dari rangkaian pemanggilan fungsi yang bekerja atas sekelompok data. Selain pemanggilan fungsi, program C mengandung komponen lain yang disebut statement. Statement C ada dua, yaitu:
statement yang tidak dapat dieksekusi / non executable (bila dikompilasi tidak menghasilkan kode objek dan biasanya digunakan untuk mengatur alur program).
statement yang dapat dieksekusi / executable (bila dikompilasi akan menghasilkan kode objek). Setiap pemanggilan fungsi maupun statement executable dalam C harus diakhiri dengan tanda titik koma ( ; ).
#include <iostream> //File Header

using namespace std; //File Header

int main () { //Deklarasi
     int contohvariabel = 1; //Deklarasi
     // Menampilkan tulisan Hello World ke Layar
     cout<<"Hello World"; //Definisi

     return 0; //Definisi
}

Dalam contoh program C++ diatas, Return merupakan contoh statement executable yang menginstruksikan agar suatu fungsi mengembalikan nilai balik tertentu. Contoh statement non executable adalah : If, else, dan while.

Main () adalah contoh fungsi, sedangkan "contohvariabel" adalah contoh data. Baik data maupun fungsi harus dideklarasikan. Data perlu dideklarasikan agar compiler tahu berapa byte memori yang harus disediakan untuk data yang bersangkutan, sedangkan fungsi perlu dideklarasikan agar compiler dapat memeriksa ketepatan pemanggilan fungsi yang bersangkutan.

4. Bagian komentar

Program yang baik pada umumnya diberi komentar yang akan membantu orang lain maupun pembuat program itu untuk memahami program yang dibuat. Dalam C atau C++ setiap tulisan yang diapit oleh symbol /* … */ atau setiap baris yang dimulai dengan symbol // dianggap komentar. C++ tidak mengizinkan komentar bersarang ( nested comment), namun Borland C++ lebih fleksibel dalam hal ini. ini merupakan salah satu alat yang sangat penting meskipun tidak berpengaruh untuk pembacaan program.

Perbedaan "/*...*/" dan "//"
/* komentar */
/*...*/ digunakan untuk memberi tanda komentar pada pernyataan. Dimulai dari tanda /* dan akan diakhiri dimana saja dengan tanda */ . biasanya komentar jenis ini digunakan untuk menuliskan komentar yang banyaknya lebih dari satu baris.
// komentar
penggunaan // digunakan untuk memberi komentar hanya dibaris itu atau setelah tanda //.



H. Langkah - langkah Pembuatan Program :

Merancang sebuah program tentunya tidak mudah, perlu adanya beberapa tahap pembuatan progam yang baik dan benar. Program disusun dengan beberapa algoritma yang di implementasikan ke dalam bahasa pemograman.  Sedangkan orang yang profesinya membuat program disebut dengan programmer. Programmer dekat dengan system analyst, system analyst adalah profesi diatas seorang progammer , biasanya system analyst adalah senior programmer yang sudah banyak memakan asam garam dunia programming.


Program memang sudah menjadi kebutuhan pokok bagi masyarakat IT. karena segala sesuatu yang dilakukan di dalam IT pastilah memerlukan program. Program yang paling sederhana sekalipun setidaknya memiliki 3 bagian:

Input – Masukan data.
Proses – pemrosesan input.
Output – keluaran program, kebutuhan yang kita harapkan.
Dalam membuat program, pemrograman adalah pokok dari proses pembuatan program itu sendiri namun pemrograman bergantung dari pemahaman persoalan, analisis sistem, perencanaan-perencanaan  dalam mendesain program itu sendiri.

Selain pemrograman hal yang utama harus dilakukan adalah merencanakan langkah-langkah yang harus diambil dalam menyelesaikan masalah. Karena dengan mengetahui masalah dan langkah-langkah penyelesaikan berarti kita sudah menyelesaikan program tersebut sebanyak 50% dari total pekerjaan, selanjutnya adalah teknis pembuatan itu sendiri yang di kenal dengan pemrograman/koding.Sebaliknya jika kita tidak bisa mengetahui masalah dan belum bisa membuat perencanaan berarti kita sudah merencanakan kegalan itu sendiri.

  • Langkah - Langkah atau tahapan pembuatan program secara teori dasar :

1. Defining the problem ( definisi masalah )

Masalah disini yaitu masalah yang akan di analisis dan selanjutnya di pecahkan melalui program atau aplikasi melihat dari sundut pandang kebutuhan.

2. Planning and Design System ( perencanaan dan desain system )

Pada tahapan ini sangat diperlukan, karena tanpa tahapan planning pekerjaan yang dilakukan akan sia-sia tentunya dan memakan waktu yang lama. dengan planning system akan jelas serta tampilan aplikasi yang dibuat juga terarah. biasanya perancangan system dilakukan oleh system analyst yang selanjutnya di kerjakan oleh seorang programmer.Design System ini biasanya menggunakan Flowchart System atau symbol alur program dan sebagainya.

3. Implementasi

Pada tahap ini programmer tentunya mengimplementasikan rancangan ke dalam bentuk struktur coding atau sering di sebut code a programmer languange. Bahasa program tentu banyak tergantung pemakaian.

4. Documentation ( dokumentasi )

Setelah tahap implementasi dilakukan dan program sudah mencakup 80 % selanjutnya buat lah dokumentasi atau komentar-komentar pada cuplikan program, tujuannya adalah jika terjadi debug atau problem kita dapat mengoreksinya dengan mudah dan sebaliknya orang dapat mengoreksi program yang kita buat.

5. Testing

Tahap testing juga tidak luput dari pembahasan seperti yang di kutip dari blog sebelah yaitu tahap :

  • Unit Testing

Menguji setiap unit dan modul yang terdapat dalam program tersebut
  • Integration Testing

Menguji integrasi yang dilakukan kepada program seperti halnya ketika program tersebut sudah diinstall di client kita yang membutuhkan integrasi dengan sisitem yang lain seperti halnya integrasi dengan database.
  • Validation Testing

menguji masukan yang diberikan kepada program. apapun masukannya program harus bisa menyelesaikan dengan baik.
  • Sistem Testing

Pada tahap ini menguji permorfa dari program, apabila program dijalankan dengan kondisi-kondisi tertentu bagaimana?

6. Maintenance

Program tanpa maintenance tentu tidak update dalam masalah bug error report yang dikeluhkan oleh pemakaian.  Agar aplikasi dapat di kembangkan kembali beberapa tahun kemudian atau open source serta ada juga close source yang tidak bisa di kembangkan oleh pihak lain biasanya ditentukan oleh lisensi sebuah program hanya untuk pemakaian saja.

Hargailah profesi seorang programmer, karena menciptakan sebuah program itu tidak mudah seperti memasak air. Tanpa programmer dunia IT tidak berkembang pesat seperti saat ini. Programmer juga butuh hidup dan sosialisasi. karena menjadi programmer itu tidak mudah.

Sekian artikel tentang Algoritma dan Pemprograman, semoga dapat berguna dan menambah ilmu .

Sumber : 


  • https://www.kanalinfo.web.id/pengertian-algoritma-dan-sejarahnya 
  • http://www.artikelsiana.com/2017/07/pengertian-alogritma-definisi-algoritma.html 
  • http://invalidcodec.blogspot.com/2009/11/jenis-proses-algoritma-disini-saya-akan.html 
  • http://woocara.blogspot.com/2016/02/pengertian-algoritma-contoh-algoritma.html 
  • https://novtani.wordpress.com/2013/08/01/langkah-langkah-membuat-program-secara-teori-dasar/ 
  • http://www.materidosen.com/2017/01/struktur-dan-bagian-bagian-program-c.html 

Komentar

Postingan populer dari blog ini

Flowchart

Logika Informatika