Berikut Ini Pengantar Algoritma Pemrograman

Belajar memprogram  adalah belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah tersebut kemudian menuangkannya dalam suatu notasi yang disepakati  bersama.

“lebih bersifat pemahaman persoalan, analisis, sintesis”

Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan sintaks (tatabahasa), setiap instruksi yang ada dan tata cara pengoperasian kompilator atau interpreter bahasa yang bersangkutan pada mesin tertentu.

Jadi :

“BELAJAR MEMPROGRAM””
TIDAK SAMA DENGAN
“BELAJAR BAHASA PEMROGRAMAN”


1.1    Algortima dan pemrograman Dasar


Perangko dari Rusia pada Gambar di atas ini bergambar seorang pria dengan nama Muhammad bin Musa al-Khwarizmi. Bagi kalian yang sedang berkecimpung dalam dunia komputer maka seharusnya mengetahui siapa orang di samping ini. Dia adalah seorang ilmuwan Islam yang karya karyanya dalam bidang matematika, astronomi, astrologi dan geografi banyak menjadi dasar  perkembangan  ilmu  modern. Dan  dari namanya istilah yang akan kita pelajari dalam bab ini muncul. Dari Al-Khawarizmi kemudian   berubah menjadi algorithm dalam Bahasa Inggris dan diterjemahkan menjadi algoritma dalam bahasa Indonesia.


1.2    Definisi Algortima


Algoritma  adalah  urutan  langkah-langkah  logis  penyelesaian  masalah  yang  disusun secara sistematis. 

Algoritma  yang  dapat  menyelesaikan  suatu  permasalahan  dalam  waktu  yang  singkat memiliki tingkat kerumitan yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.


1.3    Struktur Algortima

Perhatikan algoritma sederhana berikut :

Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus

dilakukan adalah:

  1. Menyiapkan Peralatan Tulis
  2. Menulis surat
  3. Surat dimasukkan ke dalam amplop tertutup
  4. Amplop ditempeli perangko secukupnya.
  5. Pergi ke Kantor Pos terdekat untuk mengirimkannya


Algoritma menghitung luas persegi panjang:

  1. Masukkan panjang (P)
  2. Masukkan lebar (L)
  3. Luas P * L
  4. Tulis Luas


Pembuatan algoritma mempunyai banyak keuntungan di antaranya:

  1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrogramam manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. 
  3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.


Beberapa hal yang perlu diperhatikan dalam membuat algoritma:

  1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi  bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  3. 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.
  4. 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.  Pseudocode  adalah  kode yang mirip dengan instruksi kode program sebenarnya.
  5. Algoritma  sebenarnya  digunakan  untuk  membantu  kita  dalam  mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. 
  6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman


Perhatikan algoritma sederhana berikut : 

Algoritma menghitung luas segitiga

  1. Start
  2. Baca data alas dan tinggi.
  3. Luas adalah alas kali tinggi kali 0.5
  4. Tampilkan Luas
  5. Stop


Penjelasan :

Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima langkah. Pada

algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua langkah dilakukan hanya

satu kali.

Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai data untuk alas dan tinggi.


Hasil perbaikan algoritma perhitungan luas segitiga

1.   Start

2.   Baca data alas dan tinggi.

3.   Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih besar dari nol maka

lanjutkan ke langkah ke 4 jika tidak maka stop

4.   Luas adalah alas kali tinggi kali 0.5

5.   Tampilkan Luas

6.   Stop


Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma. Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah berhenti, algoritma memberikan hasil yang benar.


Contoh : Algoritma Berangkat Sekolah

Mulai 

Bangun dari tempat tidur

Mandi Pagi 

Sarapan Pagi 

Pergi Ke Sekolah 

Cari Ruang Kelas

Masuk kelas untuk Belajar 

Selesai

 

Beda Algoritma dan Program ?

Program   adalah   kumpulan   pernyataan   komputer,   sedangkan   metode   dan   tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman.


Program = Algoritma + Bahasa (Struktur Data) 

Penerjemah Bahasa Pemrograman

Untuk menterjemahkan bahasa pemrograman yang kita tulis maka diperlukan Compiler dan

interpreter.

Compiler adalah suatu program yang menterjemahkan bahasa program (Source code) ke dalam bahasa obyek (object code) secara keseluruhan program.

Interpreter berbeda dengan Compiler, interpreter menganalisis dan mengeksekusi setiap baris dari program secara keseluruhan. Keuntungan dari interpreter adalah dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk alas an ini interpreter digunakan pada saat pembuatan program berskala besar.


Perbedaan Compiler dan interpreter.

Compiler

  • Menterjemahkan secara keseluruhan
  • Bila terjadi kesalahan kompilasi maka source program harus diperbaiki dan dikompilasi ulang
  • Dihasilkan Object program
  • Dihasilkan Executable program
  • Proses pekerjaan program lebih cepat
  • Source program tidak dipergunakan hanya bila untuk perbaikan saja
  • Keamanan dari program lebih terjamin

Interpreter

  • Menterjemahkan Instruksi per instruksi
  • Bila terjadi kesalahan interprestasi dapat Diperbaiki
  • Tidak dihasilkan obyek program
  • Tidak dihasilkan Executable program
  • Proses pekerjaan program lebih lambat
  • Source program terus dipergunakan
  • Keamanan dari program kurang terjamin


1.4    Jenis-Jenis Bahasa Pemrograman

    Bahasa Pemrograman Tingkat rendah (Bahasa mesin, Biner)

    Bahasa Pemrograman Tingkat tinggi


Contoh-contoh Bahasa Pemrograman yang ada :

1.    Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C

2.    Fungsional : LOGO, APL, LISP

3.    Deklaratif : Prolog

Object oriented murni: Smalltalk, Eifel, Java, PHP


Cara penulisan algortima

Ada tiga cara penulisan algoritma, yaitu :

1.   Structured English (SE)

SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma. Dasar dari SE

adalah Bahasa Inggris, namun kita dapat memodifikasi dengan Bahasa Indonesia sehingga

kita boleh menyebutnya sebagai Structured Indonesian (SI).


”SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang akan dikomunikasikan

kepada pemakai perangkat lunak”


2.   Pseudocode

Pseudocode   adalah   kode   yang   mirip   dengan   instruksi   kode   program   sebenarnya.

Pseudocode  didasarkan  pada  bahasa  pemrograman  yang  sesungguhnya  seperti  BASIC, 

FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan.

“Pseudo berarti imitasi atau tiruan atau menyerupai, sedangkan code menunjuk pada kode program”

Contoh Pseudocode :

1.   Start

2.   READ alas, tinggi

3.   Luas = 0.5 * alas * tinggi

4.   PRINT Luas

5.   Stop


Pada Contoh diatas tampak bahwa algoritma sudah sangat mirip dengan bahasa BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada bahasa BASIC yang masing-masing menggantikan kata “baca data” dan “tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses penterjemahan dari algoritma ke kode program menjadi lebih mudah.


1.5 Membuat Alur Logika Pemograman


A.  Penyajian atau Penulisan Algoritma

Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar.  Algoritma  yang disajikan  dengan  tulisan  yaitu dengan  struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode.


Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, yaitu dengan Flowchart


B.  Flowchart (Diagram Alir)

Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran (flow) di dalam suatu program secara logika.

Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentuk    notasi-notasi    tertentu.    Flowchart    merupakan    gambar    atau    bagan    yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini

dinyatakan   dengan   simbol.   Dengan   demikian   setiap   simbol   menggambarkan   proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian- bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai  fasilitas untuk berkomunikasi antara pemrogram  yang bekerja dalam tim  suatu proyek.

Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran:

1)   Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga

jalannya proses menjadi singkat.

2)   Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk

memperjelas. 

3)   Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.


Berikut   merupakan   beberapa   contoh   simbol   flowchart   yang   disepakati   oleh   dunia pemrograman:

 


Penjelasan lebih lanjut :

Simbol-simbol  bagan alir program (Flowchart)


Notasi    Membuat    algoritma    sederhana    untuk    menyelesaikan permasalahan menggunakan bahasa natural, flowchart dan pseudocode


Notasi ini disebut Data yang digunakan untuk   mewakili data input atau output atau menyatakan operasi pemasukan data dan pencetakan hasil


Notasi  ini  disebut  Process  yang  digunakan  untuk  mewakili  suatu proses.


Notasi  ini  disebut  Decision  yang  digunakan  untuk  suatu  pemilihan, penyeleksian kondisi di dalam suatu program


Notasi  ini disebut Preparation  yang digunakan  untuk memberi  nilai awal, nilai akhir, penambahan/pengurangan bagi suatu variabel counter. 


Notasi   ini   disebut   Predefined    Process   yang   digunakan    untuk menunjukkan suatu operasi yang rinciannya ditunjukkan ditempat lain (prosedur, sub- prosedur,  fungsi)



Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan dari flowchart yang terputus di halaman yang sama atau halaman berikutnya.



Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus   data   atau   aliran data dari proses satu ke proses lainnya.


Contoh program Flowchart


                                        Bagan alir logika program                                       

                   Bagan alir program komputer terinci 


C.   Struktur Dasar Algoritma

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat  berupa  runtunan  aksi  (sequence),  pemilihan  aksi  (selection),  pengulangan  aksi

(iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:

1.   Struktur  Runtunan  /  Beruntun  :  Digunakan  untuk  program  yang  pernyataannya sequential atau urutan.

2.   Struktur Pemilihan / Percabangan : Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.

3.   Struktur Perulangan : Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.


1.   Struktur Algoritma Runtunan / Berurutan :

Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan

(sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan (looping). Sebuah algoritma biasanya akan menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah.


Struktur berurutan dapat kita samakan dengan mobil yang sedang berjalan pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar disamping Mobil tersebut akan melewati kilometer demi kilometer jalan sampai tujuan tercapai. Struktur berurutan terdiri satu atau lebih instruksi.


Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yaitu sebuah instruksi dieksekusi setelah instruksi sebelumnya selesai dieksekusi. Urutan instruksi menentukan keadaan akhir dari algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin juga berubah.


Menurut Goldshlager dan Lister (1988) struktur berurutan mengikuti ketentuan-ketentuan sebagai berikut:

  Tiap instruksi dikerjakan satu persatu

  Tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang

  Urutan  instruksi  yang  dilaksanakan  pemroses  sama  dengan  urutan  aksi  sebagaimana yang tertulis di dalam algoritmanya

  Akhir dari instruksi terakhir merupakan akhir algoritma. 

Contoh bagan alir logika program berurutan (sequencing)

 


1.   Struktur Algoritma Percabangan

Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu  merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini seperti halnya ketika mobil/motor berada dalam persimpangan.

Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan ditempuh.


Contoh Struktur percabangan untuk masalah batasan umur.

Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk permasalahan tersebut.

Penyelesaian:

Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur percabangan. Hal ini ditandai dengan adanya pernyataan jika ..maka ...(atau If ... Then) dalam Bahasa Inggris.

Bagan alir logika (Flowchart) penyelesaian masalah nonton film 



 2.   Struktur Algoritma Perulangan / Pengulangan

Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang

berkali.Salah satu contoh yang gampang kita jumpai adalah balapan mobil


Struktur pengulangan terdiri dari dua bagian :

  Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan.

Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false)

  Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang


Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian terminasi. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan dilakukan pertama kali. Bagian   insialisasi   umumnya   digunakan   untuk   memberi   nilai   awal   sebuah   variable. Sedangkan terminasi adalah instruksi yang dilakukan setelah pengulangan selesai dilaksanakan.  Ada  beberapa bentuk pengulangan  yang  dapat digunakan,  masing-masing dengan syarat dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk kasus yang sama, namun ada bentuk yang hanya cocok untuk kasus tertentu saja.

Pemilihan bentuk pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang tepat bergantung pada masalah yang akan diprogram.

Bagan alir logika (flowchart) untuk mencetak pernyataan sebanyak 100 kali 


 

Bagan alir logika (Flowchart) untuk mencetak anggota suatu himpunan.


Struktur pengulangan dengan For

Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua  dalam  bahasa  pemrograman.  Hampir  semua  bahasa  pemrograman  menyediakan metode  ini,  meskipun  sintaksnya  mungkin  berbeda.  Pada  struktur  For  kita  harus  tahu terlebih  dahulu  seberapa  banyak  badan  loop  akan  diulang.  Struktur  ini  menggunakan sebuah variable yang biasa disebut sebagai loop s counter, yang nilainya akan naik atau turun selama proses pengulangan. 

Contoh :

Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, .., 19. Buatlah flowchart untuk mencetak anggota himpunan tersebut.

Penyelesaian:

Pada  contoh  ini,  kita  mencoba  menentukan  hasil  dari  sebuah  flowchart  .  Bagaimana

menurut kalian jawabannya? Marilah kita uraikan jalannya fowchart tersebut. Pada flowchart, setelah Start, kita meletakkan satu proses yang berisi pernyataan A = 1. Bagian inilah yang disebut inisialisasi . Kita memberi nilai awal untuk A = 1. Variabel counter-nya adalah X dengan nilai awal 1 dan nilai akhir 10, tanpa increment (atau secara default increment-nya adalah 1). Ketika masuk ke badan loop untuk pertama kali maka akan dicetak langsung nilai variabel A. Nilai variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan A = A + 2. Pernyataan ini mungkin agak aneh, tapi ini adalah sesuatu yang pemrograman. Arti dari pernyataan ini adalah gantilah nilai A yang lama dengan hasil penjumlah nilai A lama ditambah 2. Sehingga A akan bernilai 3. Kemudian dilakukan pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita ganti dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga output dari flowchart ini adalah 1,3, 5, 7, ..,19.



 


Struktur pengulangan dengan While

Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal pengulangan. Bagaimana jika kita tidak  tahu  pasti  harus  berapa  kali  mengulang?  Pengulangan  dengan  While  merupakan

jawaban dari permasalahan ini. Seperti halnya For, struktur pengulangan dengan While juga merupakan  struktur  yang  didukung  oleh  hampir  semua  bahasa  pemrograman  namun dengan sintaks yang berbeda.

Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang. Penyelesaian: Perhatikan Gambar. bisakah kalian menentukan hasil dari flowchart tersebut? Perhatikan tahapan eksekusi flowchart berikut ini. 

Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B. Kedua variabel tersebut kita inisialisasi nilai awalnya (A = 1 dan B = 0) sebelum proses loop terjadi. Variabel A adalah variabel counter.

Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (<b10). Jika Ya maka perintah berikutnya dieksekusi, jika tidak maka program akan berhenti. Pada awal eksekusi ini kondisi akan terpenuhi karena nilai A= 1.

    Jalankan perintah Print B.

Nilai variabel A kemudian diganti dengan nilai A lama (1) ditambah 2. Sehingga nilai variabel A baru adalah 3. Sedangkan nilai variabel B = 9 (hasil perkalian A = 3).

    Program akan berputar kembali untuk memeriksa apakah nilai variabel A masih lebih

kecil dari 10. Pada kondisi ini nilai A = 3, sehingga kondisi masih terpenuhi. Kemudian langkah berulang ke langkah ke 3. Begitu seterusnya sampai nilai variabel A tidak lagi memenuhi syarat kurang dari 10.




0 Response to "Berikut Ini Pengantar Algoritma Pemrograman"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel