Algoritma Pemrograman (Sejarah dan Pengertiannya)

Apa sih Algoritma itu??
Ahli Sejarah Matematika menemukan asal kata algoritma tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja'far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat/eropa 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 itulah diperoleh akar kata "Aljabar" (Algebra).

Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran usm berubah menjadi uthm. 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.


Apa sih Definisi dari Algoritma itu??

Definisi Algoritma

Ada beberapa defenisi tentang Algoritma, diantaranya yaitu :
1.  Defenisi Pertama
"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.
Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.

2.  Defenisi Kedua

“Algoritma adalah alur pikiran dalam menyelesaikan suatu pekerjaan, yang dituangkan dalam bentuk tertulis baik berupa tulisan (Pseudo-Code) ataupun gambar (Flow Chart) yang dapat dimengerti orang lain”.

3.  Defenisi Ketiga
“Algorima itu merupakan deskripsi langkah-langkah pelaksanaan dari suatu proses. Setiap langkah dalam algoritma itu dinyatakan dalam sebuah pernyataan atau istilah lainnya adalah instruksi. Instruksi itu sendiri berisi sebuah aksi yang akan dilakukan.  Bila sebuah pernyataan dieksekusi maka akan dikerjakan sebuah aksi yang bersesuaian dengan instruksi tersebut”.


Tentang dasar algoritma sendiri sebenarnya ada 3 macam bentuk struktur dasar dari algoritma. Apa sajakah itu???

Pertama adalah runtutan
sering kita sebut dengan sequence. Sebuah runtutan itu terdiri dari satu atau lebih pernyataan dan setiap pernyataan itu ditulis dalam satu baris atau dipisahkan dengan tanda semicolon atau sering disebut titik koma  ( ; ). Tiap pernyataan dikerjakan secara berurutan mulai dari awal sampai akhir sesuai dengan urutannya di dalam teks algoritma. Sebuah instruksi akan dilaksanakan setelah instuksi sebelumnya selesai dilaksanakan. Bila urutannya diubah, ada kemungkinan hasilnya pun juga akan berubah
misalkan kita menulis sebuah urutan demikian
Algoritma urutan mau minum :
  • Ambil air
  • Tuangkan ke gelas
  • Minum air yang ada di dalam gelas
Atau demikian yang lebih singkat
Algoritma urutan mau minum:
  • Ambil sebotol air
  • Teguk air yang ada dalam botol
Dua algoritma di atas pada dasarnya bertujuan sama yaitu untuk urutan mau minum, tetapi caranya berbeda, namun coba anda bedakan dengan algoritma dibawah ini :

Algorima urutan mau minum:
  • Minum air
  • Tuangkan ke gelas
  • Ambil air
Tidak  akan mungkin kalau algoritma di atas akan menghasilkan suatu hasil yang sama dengan yang sebelumnya. Itu karena urutannya tidak benar.

Contoh lain…..
Bagaimana algoritma untuk menukarkan isi dari dua buah ember  berisi air yang misalnya masing-masing ember kita beri variabel A dan B (isi ember A menjadi isi ember B dan sebaliknya)? masing-masing ember berisi air penuh.
Tidak mungkin kalau kita akan langsung menuangkan ember A ke B atau sebaliknya. Karena embernya kan penuh. Misalnya kita tuang langsung ember A ke ember B pasti airnya akan tumpah.
Jadi hal yang harus kita lakukan adalah tambahkan sebuah variabel lagi yang kosong, misalnya ember C yang kosong. Hal yang kita lakukan adalah sebagai berikut :
Status awal :


Proses Pertukaran :


Masukkan isi ember A kedalam ember C


Masukkan isi ember B kedalam ember A


Masukkan isi ember C kedalam  ember B


Status akhir yang dihasilkan:



Yang ke dua adalah pemilihan,  
Ada kalanya suatu perintah itu di lakukan apabila pada kondisi tertentu. Misalnya saat kita melanggar peraturan pemerintah, kita akan dipenjara. Langkah tersebut dapat kita tuliskan sebagai berikut :
Jika kita melanggar peraturan pemerintah, maka kita akan dipenjara.

Pernyataan diatas dapat kita tulis dalam pernyataan pemilihan (selection-statement), atau disebut juga pernyataan kondisional, sebagai berikut:

If kodisi then
Aksi

Kalau kita definisikan dalam bahasa indonesia if artinya adalah jika dan then artinya adalah maka. Kondisi tersebut dapat bernilai benar ataupun salah. Seperti yang kita lihat pada contoh kalimat di atas, misalkan jika kita benar melanggar peraturan pemerintah , maka aksi yang dilakukan adalah kita akan dipenjara, namun jika kita tidak melanggar peraturan pemerintah, maka kita tidak akan dikenai aksi apapun.

Namun, adakalanya ketika kita ingin membuat pernyataan kondisional yang pasti dikenai suatu  aksi baik kondisi bernilai benar maupun salah kita dapat mendeklarasikannya sebagai berikut :

If kondisi then
aksi1

Else aksi2

Misalkan saja untuk kondisi seperti di bawah ini :
Jika tinggi > 165 maka tinggi selain itu pendek
Jadi ketika tinggi kita lebih dari 165 maka kita tergolong tinggi dan selain itu ( ≤ 165) kita tergolong pendek.

Dalam algoritma dapat kita tulis

if tinggi > 165 then
panjang

else pendek

Adakalanya juga ketika sebuah pernyataan kondisional bersarang. Kita sering menyebutnya nested if atau if bersarang.

Contohnya seperti di bawah ini:

if nilai>80 then
output(‘A’)

else if nilai>60 then
output(‘B’)

else if nilai>50 then
output(‘C’)

else if nilai>30 then
output(‘D’)

else output(‘E’)

{endif}

Algoritma yang dicek berurutan mulai dari if yang pertama sampai if yang terakhir secara berurutan

Jadi ketika inputan nilai adalah 40 maka akan dicek dari atas, apakah 40 itu lebih dari 80?Karena tidak, maka lanjut ke proses berikutnya. Apakah 40 lebih dari 60?Karena 40 tidak lebih dari 60 maka lanjut ke if berikutnya. Apakah 40 lebih dari 50? Karena tidak maka lanjut ke if berikutnya lagi. Di cek lagi apakah 40 lebih dari 30?Karena perbandingan tersebut bernilai benar maka akan menghasilkan outputan D . Sedangkan kondisi berikutnya tidak akan ikut dieksekusi karena kondisi sudah terpenuhi.

Kemudian,

Yang ketiga adalah perulangan,
Pernahkah anda dihukum menulis sesuatu misalnya “aku berjanji aku akan jadi anak baik” sebanyak 500 kali? Apakah anda melakukan hal tersebut? Apakah anda menulisnya seperti dibawah ini?
1.aku berjanji aku akan jadi anak baik
2.aku berjanji aku akan jadi anak baik
3.aku berjanji aku akan jadi anak baik
Sampai yang ke500.

Sebenarnya itu bagus, tapi kurang efektif. Tangan anda pasti akan serasa putus jika melakukan hal tersebut terus-menerus.

Sebenarnya ada cara lain yang lebih efektif, yaitu dengan memakai algoritma. Seperti apakah itu? Perhatikan Algoritma dibawah ini :

Repeat 500 times Output(‘aku berjanji aku akan menjadi anak baik’)

Singkatkan!!!!!!

Bagaimana? Cukup dengan menuliskan algoritma di atas anda jadi orang yang efektif. Tak perlu capek-capek menulisnya sebanyak 500 kali.

Itulah hebatnya komputer. Komputer itu tidak akan lelah dan bosan ketika mengerjakan sesuatu yang sama secara berulang-ulang, berbeda dengan manusia, manusia akan cepat lelah dan bosan ketika melakukan sesuatu secara berulang-ulang.

Perulangan itu digunakan ketika ingin melakukan proses yang sama dan berulang-ulang.
Berikut ini merupakan beberapa struktur Algoritma dalam pengulangan:

Repeat N times
Aksi

Yang artinya aksi diulang dan dikerjakan sebanyak N kali

Kemudian struktur lainya adalah:

Pencacah travesal [1..N]
Aksi

Kalau di pascal seperti “for….. to …..do…….”
Maksudnya adalah untuk pencacah dari satu sampai N kerjakan aksinya.
(pencacah harus bersifat suksesif, maksudnya adalah pencacah harus punya successor ataupun predesessor). Pencacahnya misalnya sesuatu yang bertipe char ataupun integer.

Struktur berikutnya adalah :

while kondisi do
Aksi

Maksudnya selama kondisi terpenuhi (bernilai benar) maka aksi akan dilakukan sampai kondisi tidak terpenuhi
 
Kemudian ada algoritma  yang berbentuk seperti ini :

Repeat Aksi

Until kondisi

Maksudnya adalah lakukan aksi hingga kondisi terpenuhi ( kondisi bernilai true).


 

Apa sih yang harus dipertimbangkan dalam Membuat Algoritma? 

Pertimbangan dalam pemilihan algoritma adalah:

Dalam memilih dan membuat algoritma, kita harus melakukan pertimbangan dan pemilihan, antara lain:
1.      Algoritma haruslah benar.
Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.

2.      kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut.
Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.

3.      Efisiensi algoritma.
Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut.




Download File PDF Disini