3
Oct

ALGORITMA , PSEUDOCODE & DIAGRAM ALIR (FLOWCHART)

Posted By fathuralfian in Tugas Dasprog

A. ALGORITMA

What it’s Algoritma ?

oke teman teman , kali ini saya akan menjelaskan tentang Algoritma ,  kalian pasti bertanya tanya , apa itu Algoritma ? baiklah silahkan membaca beberapa coretan coretan berikut ini yang mungkin berguna buat kalian

1. Sejarah Algoritma Menurut sejarah , ada seorang Ahli matematika yang menemukan asal kata dari algoritma itu tersebut , yang berasal dari nama penulis buku arab yang terkenal , dia yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi , Al -Khuwarizmi di baca oleh orang eropa (barat) yaitu 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). 0 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.

2. Pengertian Algoritma  Teman teman , apakah kalian tahu pengertian dari Algoritma ? , dalam SMA pernah kita mendengar Logaritma , klo sepintas dilihat kata Algoritma sama Logaritma hampir mirip pelafalannya , namun pengertian dari algoritma sesungguhnya berbeda dengan logaritma , Algoritma memiliki pengertian kearah code code atau kata kata berupa perintah logika , yang bertujuan untuk memecahkan suatu masalah sedangkan logaritma menurut matematika adalah kebalikan dari pemangkatan suatu eksponen , jadi jangan sampai kita menyalah artikan Algoritma dan Logaritma karena keduanya berbeda .

pengertian dari Algoritma adalah kumpulan urutan perintah yang menentukan operasi-operasi tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun mengerjakan suatu tugas tertentu. Algoritma merupakan urutan langkah instruksi yang logis. Setiap langkah instruksi mengerjakan suatu tindakan aksi. Apabila suatu aksi dilaksanakan, maka operasi atau sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Bila data yang digunakan benar, maka algoritma akan selalu berhenti dengan memberikan hasil yang benar pula.

3. KRITERIA atau CIRI ALGORITMA

  • Input :       algoritma dapat memiliki nol atau lebih inputan dari luar.Instruksi : sintaks (cara pengkodean) sesuai bahasa pemrograman yang dipakai dan mengandung komponen input, output, proses, seleksi, dan perulangan yang menugaskan komputer untuk mengeksekusi suatu perintah tertentu.
  • Output :    algoritma harus memiliki minimal satu buah output/keluaran.
  • Definiteness (pasti) :         algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
  • Finiteness (ada batas):      algoritma harus memiliki titik berhenti (stopping role).
  • Effectiveness (tepat dan efisien) :            algoritma sebisa mungkin harus dapat dilaksanakan dan efektif

Pembuatan algoritma harus selalu dikaitkan dengan : a. kebenaran algoritma, yakni bila program selesai maka hasilnya juga benar b. kompleksitas, lama dan jumlah waktu proses dan penggunaan memori. Jadi :

Suatu algoritma dikatakna baik jik menghasilkan output yang tepat guna (efektif) dalam waktu yang relative singkat

4. JENIS JENIS ALGORITMA Terdapat beragam klasifikasi algoritma dan setiap klasifikasi mempunyai alasan tersendiri. Salah satu cara untuk melakukan klasifikasi jenis-jenis algoritma adalah dengan memperhatikan paradigma dan metode yang digunakan untuk mendesain algoritma tersebut. Beberapa paradigma yang digunakan dalam menyusun suatu algoritma akan dipaparkan dibagian ini. Masing-masing paradigma dapat digunakan dalam banyak algoritma yang berbeda. Berikut ini adalah beberapa rumpun algoritma yang terkenal, yaitu:

  • Metode Greedy.
  • Dynamic Programming.
  • Kompresi data.
  • Backtracking.
  • Branch and Bound.
  • Divide and Conquer

Masing-masing algoritma diatas memiliki keunggulan dan tentunya juga memiliki kelemahan.

  • Divide and Conquer yaitu paradigma untuk membagi suatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah dengan membagi masalah besar dan kemudian memecahkan permasalahan-permasalahan kecil yang terbentuk.
  • Dynamic programming adalah paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandung sub-struktur yang optimal (, dan mengandung beberapa bagian permasalahan yang tumpang tindih . Paradigma ini sekilas terlihat mirip dengan paradigma Divide and Conquer, sama-sama mencoba untuk membagi permasalahan menjadi sub permasalahan yang lebih kecil, tapi secara intrinsik ada perbedaan dari karakter permasalahan yang dihadapi.
  • Metode greedy merupakan sebuah algoritma serakah mirip dengan sebuah Pemrograman dinamik, bedanya jawaban dari submasalah tidak perlu diketahui dalam setiap tahap; dan menggunakan pilihan “serakah” apa yang dilihat terbaik pada saat itu.
  • Kompresi Data adalah sebuah cara untuk memadatakan data sehingga hanya memerlukan ruangan penyimpanan lebih kecil sehingga lebih efisien dalam menyimpannya atau mempersingkat waktu pertukaran data tersebut.
  • Backtracking merupakan perbaikan dari pendekatan kekerasan, yang secara sistematis mencari solusi untuk masalah di antara semua pilihan yang tersedia.
  • Branch and Bround (B&B) juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Branch and Bround digunakan untuk mencari solusi optimal dari berbagai optimasi masalah, terutama dalam diskrit dan optimasi kombinatorial. Ini terdiri dari pencacahan sistematis semua solusi kandidat, dimana himpunan bagian besar calon sia-sia dibuang secara massal, dengan menggunakan perkiraan batas bawah dan atas kuantitas yang sedang dioptimalkan.

5. ANALISA ALGORITMA Menganalisis masalah yang ada dapat dilakukan seperti mengumpulkan data, cara penyelesaian, menyeleksi data, dan output yang diinginkan. Mendesign sistem, logika yang dapat meliputi data-input/output. Dalam pelaksanaan program, hal yang dilakukan editing, memeriksa kesalahan mengenai sintaksnya, pelaksanaan (Run). Kemudian barulah suatu permasalahan dapat diperoleh hasil yang diinginkan.

1. Bagaimana merencakan suatu algoritma

Menentukan beberapa model / desain sebagai penyelesaian masalah sehingga muncul beberapa model yang akan diambil solusi mana yang terbaik.

2. Bagaimana menyatakan suatu algoritma

3. Bagaimana validitas suatu algoritma

4. Bagaimana menganalisis suatu algoritma

5. Bagaimana menguji program dari suatu algoritma

Cara/Prosedur Algoritma

1. Kata-kata

2. Diagram alur

3. Statemen program

Tahap Proses Logaritma

  1. Fase Debugging Fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program/ error. Kesalahan program ini dapat berupa kesalahan dalam penulisan program baik logika atau sintaknya.

2. Fase profiling Fase yang akan bekerja jika program tersebut sudah benar.

 

 

B. PSEUDOCODE

1. Definisi Pseudo Code Pseudo Code adalah urutan baris algoritma seperti kode pemrograman dan tidak memiliki sintak yang baku. Dalam kata lain bahasa algorimik (sering juga di sebut pseudo-code) adalah sebuah bahasa penengah antara manusia dan komputer, sebenarnya komputer tidak dapat langsung mengeksekusinya. Bahasa algoritmik dibuat untuk memudahkan algoritma dengan bahasa manusia diubah menjadi bahasa pemrograman apa pun yang dimengerti oleh komputer. Pseudo Code lebih umum digunakan oleh programmer yang berpengalaman. Akan tetapi, flowchart lebih mudah dimengerti oleh programmer pemula, pseudo code sangat mudah diimplementasikan ke dalam kode program dibandingkan dengan flowchart. Kita bisa bebas menulis pseudo code selama itu mudah dimengerti bagi orang lain. Tetapi disarankan untuk menggunakan keyword yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan lainnya.

    • Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan.
    • Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma.
    • Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma.
  • Secara standart, pseudocode dituliskan menggunakan bahasa Simple English. Tidak ada tata cara menulis (syntax) yang baku untuk menuliskan Pseudocode karena tidak diperuntukan dijalankan pada bahasa pemrograman tertentu.

2. Manfaat atau Fungsi dari Pseudocode

  • Dengan Pseudocode, kita mampu menterjemahkan operasi dasar dari pemrograman. Operasi dasar tersebut adalah :
    • Program pasti dapat menerima masukan (input) dan mengeluarkan hasil (output).
    • Program mampu melakukan perhitungan aritmatika
    • Program mampu memberikan nilai pada sebuah nama dari sebuah lokasi memory (variable)
    • Program melakukan kontrol pemilihan dan pengulangan

3. Struktur Psedo Code

  • Secara ringkasnya dasar operasi dari seluruh program dan aplikasi yang dibuat akan meliputi 3 komponen :
    • Variabel : tempat untuk menyimpan data
    • Struktur Kontrol : ‘Sequence’, ‘Selection’, dan ‘Repeatation’
    • Modular : ‘Procedure’, ‘Function’, dan ‘Recursive’
  • Perhatikan kode dibawah ini
  1. Mulai
  2. Masukkan sebuah angka
  3. Masukkan sebuah angka dan tampilkan
  4. Ambil angka yang sebelumnya dan tampilkan
  5. Selesai
  • Walaupun pseudo code diatas masih bisa dimengerti tetapi ada beberapa statemen yang ambigu. Dari baris kedua, kita tidak tahu kemana angka tersebut disimpan dan kita juga tidak tahu angka yang mana yang dimaksud untuk “angka yang sebelumnya”. Apakah angka yang pertama atau yang kedua. Pseudo Code diatas dapat dimodifikasi menjadi seperti berikut :
  1. Start
  2. Masukkan A
  3. Masukkan B, Tampilkan B
  4. Tampilkan A
  5. End
  • Pseudo Code diatas lebih baik dibandingkan sebelumnya. Kita bisa dengan jelas melihat dimana angka disimpan dan angka yang mana yang ditampilkan. Sekarang kita akan mengubah flowchart pada gambar 1.2
  1. Start
  2. Masukkan A dan B
  3. C = A + B
  4. Tampilkan C
  5. End
  • Sebenarnya tidak ada aturan mengikat tentang penulisan algoritma dan pseudo-code, karena guna kedua hal ini adalah untuk memudahkan seseorang untuk menggambarkan urutan suatu kejadian. Biasanya untuk para programmer, guna kedua hal ini adalah sebagai dasar alur pembuatan program. Di mana dapat merepresentasikan alur cerita dari client tentang kebutuhan dasar dari sebuah program, sehingga lebih mudah untuk dipahami.
  • Jadi pseudo-code bisa dikatakan juga sebagai algortima yang sudah sedikit digabungkan dengan bahasa pemrograman yang akan digunakan

Berikut adalah contoh dari Algoritma dan pseudo Code

Algoritma

PseudoCode

masukan panjang

Input panjang

Masukan Lebar

Input Lebar

Luas adalah Panjang x Lebar

Luas Panjang x lebar

Tampilkan Luas

Print Luas

 

 

C. DIAGRAM ALIR (FLOWCHART)

  • Flowchart  adalah  representasi  grafik  dari  langkah-langkah  yang  harus  diikuti  dalam menyelesaikan suatu permasalahan yang terdiri atas sekumpulan simbol, dimana masing-masing  simbol  merepresentasikan  suatu  kegiatan  tertentu.
  • Flowchart  diawali  dengan penerimaan input, pemrosesan input, dan diakhiri dengan penampilan output.
  • bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
  • suatu diagram yang menggambarkan susunan logika suatu program

Simbol-simbol yang digunakan adalah sebagai berikut:

 

Flowchart terdiri dari 3 struktur:

1. Struktur Sequence / Sederhana

Diagram yang alurnya mengalir secara berurutan dari atas ke bawah atau dengan kata lain tid

ak adanya percabangan atau pengulangan. Bentuk flowchart tersebut seperti:

Flowchart Sequence Contoh dari flo

wchart dengan struktur sequence ini seperti algoritma untuk menghitung luas segitiga, luas persegi panjang, luas lingkaran.

2. Struk

tur Branching / Percabangan

  • Diagram yg alurnya terjadi/terdapat alih kontrol berupa percabangan.
  • Flowchart d

    engan stuktur percabangan  digunakan untuk meyeleksi kondisi dan menentukan pilihan proses selanjutnya.

Bentuk flowchart tersebut seperti :

Flowchart Branching contoh : flowchart dari algoritma menentukan apakah bilangan yang dimasukan ganjil atau genap

3. Struktur Looping / Perulangan

  • Flowchart dengan Struktur perulangan digunakan untuk mengulangi langkah-langkah sebelumnya sampai suatu kondisi terpenuhi.

Bentuk flowchart tersebut seperti:

Flowchart Looping Contoh dari flowchart ini misalnya algoritma untuk menentukan bilangan ganjil dibawah nilai 20. Sehingga proses mencetak bilangan tersebut akan dilakukan sampai kondisi terpenuhi yaitu 20.

Catatan: Ketiga struktur diatas dapat digunakan secara bersamaan pada satu diagram alur.

-VARIABEL :

  • Digunakan sebagai tempat untuk menyimpan nilai yang sejenis. Terdiri dari nama dari variabel itu sendiri dan nilai yang disimpan.

Contoh pemberian nilai ke variabel : A = 5 –> artinya Variabel A akan diberi nilai 5 A = B –> artinya Variabel A akan diberi nilai sama dengan nilai variabel B. A = A + 1 –> Variabel A dirubah isinya dengan variabel A yang dijumlahkan dengan 1. Jenis variabel terbagi atas:1. Variabel numerik –> berisi angka numerik / bilangan. 2. Variabel string –> berisi karakter / untaian karakter

  • Struktur Branching / Percabangan

1. Bersyarat Diagram yang alurnya ada / banyak terjadi alih kontrol berupa percabangan dan terjadi apabila kita dihadapkan pada suatu kondisi dengan dua pilihan BENAR/SALAH.  Struktur dari percabangan yang bersyarat terdiri dari: – If Then – If Then Else – If Then Else If – Case of 2. Tidak BersyaratStruktur : GO TO Bentuk umum penulisannya adalah GO TO Label

  • Pedoman-Pedoman dalam Membuat Diagram Alir (Flowchart)
  • 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 KEUNTUNGAN PENJUALAN.
  5. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
  6. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
  7. Gunakan simbol-simbol flowchart yang standar.
  • Jenis-Jenis Diagram Alir (Flowchart)

Flowchart terbagi atas lima jenis, yaitu :

  1. Flowchart Sistem (System Flowchart)
  2. Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
  3. Flowchart Skematik (Schematic Flowchart)
  4. Flowchart Program (Program Flowchart)
  5. Flowchart Proses (Process Flowchart)