ANALISIS ALGORITMA & PSEUDOCODE
PENDAHULUAN
Tulisan ini saya buat guna untuk memenuhi mata kuliah Logika dan Algoritma yang menerangkan tentang pengertian-pengertian Algoritma, Desain dan Analisis Algoritma, Jenis-jenis Algoritma serta penggunaan Algoritma yang dibuat dalam bentuk tugas 1 dengan tujuan agar mahasiswa dapat mengertitentang apa itu Algoritma, Desain dan Analisis Algoritma serta jenis-jenis algoritma dan penggunaannya.
Algoritma memegang peranan penting dalam bidang pemrograman. Sebegitu pentingnya suatu algoritma, sehingga perlu dipahami konsep dasar algoritma. Apalagi untuk seorang programer, tentu diperlukan suatu algoritma sehingga dapat membuat program yang lebih efektif dan efisien. Bagi kebanyakan orang, algoritma sangat membantu dalam memahami konsep logika pemrograman.
A. PENGERTIAN ALGORITMA
Sejarah istilah “algoritma” Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Abu Ja’far Mohammad Ibnu Musa Al Khawarizmi, pertama dan pelopor logika algoritma. Logika berasal dari kata Yunani Kuno. Pengertiannya yaitu hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa. Pada awalnya kata algoritma Makalah Desain dan Analisis Algoritma 2 adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.
Pengertian Algoritma adalah suatu prosedur yang tepat untuk memecahkan masalah dengan menggunakan bantuan komputer serta menggunakan suatu bahasa pemrogaman tertentu seperti bahasa Pascal, Visual Basic, Java, dan masih banyak lagi bahasa yang lain.Pranata (2002:8) dalam kehidupan sehari-hari, sebenarnya kita juga menggunakan algoritma untuk melaksanakan sesuatu.
Sebagai contoh, ketika kita menulis surat, maka kita perlu melakukan beberapa langkah sebagai berikut:
1. Mempersiapkan kertas dan amplop.
2. Mempersiapkan alat tulis, seperti pena atau pensil.
3. Mulai menulis.
4. Memasukkan kertas ke dalam amplop.
5. Pergi ke kantor pos untuk mengeposkan surat tersebut.
B. PENGERTIAN DESAIN DAN ANALISIS ALGORITMA
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama. Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah.
Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam Makalah Desain dan Analisis Algoritma 3 waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
C. JENIS-JENIS ALGORITMA
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. Divide and Conquer, 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, 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.
Konsep dasar algoritma
Beberapa metode untuk merancang algoritma dalam program
komputer :
1. Diagram Alir (Flow Chart) yaitu dengan membuat suatu penulisan atau penyajian algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan.





2. Kode Semu (Pseudo Code) yaitu dengan menggunakan bahasa sehari-hari, tetapi harus jelas dan struktur.
Penulisan Algoritma dengan Pseudocode
Dengan menggunakan pseudocode pemecahan masalah di atas dapat
ditulis sebagai berikut;
Contoh;
baca jumlah data
tulis jumlah data
while data belum habis
hitung data yang dibaca
baca data no_mhs, nama, nilai
tulis no_mhs dan nama
if nilai > 6,0
else then
tulis “LULUS”
else
tulis “TIDAK LULUS”
else if
when
tulis garis penutup tabal
selesai
Implementasi program dalam bahasa BASIC;
baca jumlah data
3. Algoritma Fundamental
Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output dan effectiveness.
1.Komponen masukan : terdiri dari pemilihan variable, jenis variable, tipe variable, konstanta dan parameter (dalam fungsi).
2. Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program.
Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah
4. Komponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dll).
5. Definiteness (pasti), algoritma memiliki instruksi yang jelas dan tidak ambigu.
6. Finiteness (batas), algoritma memiliki titik berhenti setiap pernyataan.
7. Effectiveness (tepat dan efisien), algoritma harus dapat dilaksanakan dan efisien.
D. PENGGUNAAN ALGORITMA
Dengan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kita membuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah kerja atau mempermudah dalam membuat program. Selain itu, algoritma dapat mengatasi masalah logika dan masalah matematika dengan cara berurutan, tetapi kadang-kadang algoritma tidak selalu berurutan, hal ini dikenal dengan proses percabangan.
Kriteria Program Algoritma dalam Bidang Komputer. Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya bisa mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrogaman komputer. Bahasa pemrogaman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin. Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah difahami manusia biasa disebut dengan mnemonic algoritma tidak menghasilkan solusi, tetapi proses harus berakhir hal ini disebut Makalah Desain dan Analisis Algoritma 5 dengan semi algorithm (prosedur akan berjalan terus atau biasa disebut dengan perulangan). Intinya kita tidak boleh menambah masalah, akan tetapi kita harus mampu menyelesaikan code.
Bahasa pemrogaman yang menggunakan singkatan kata inidisebut bahasa assembly. Program algoritma harus komplit, nyata, dan jelas. Meskipun tugas masalah untuk mendapat hasil yang tepat. Adapun contoh algoritma seperti dalam menghitung luas lingkaran dari masukan berupa jari-jari lingkaran. Rumus lingkaran adalah L=?*R*R
Berikut ini adalah contoh algoritma untuk menghitung luas lingkaran:
1. Masukkan R
2. Pi ? 3,14
3. L ? Pi*R*R
4. Tulis L
Perhatikan tanda ? pada baris kedua dan ketiga. Tanda ini berarti nilai di sebelah kanan diberikan pada operan di sebelah kiri. Sebagai contoh, untuk baris kedua, nilai 3,14 diberikan pada variabel Pi. Berikutnya, nilai Pi*R*R diberikan pada variable L. Baris terakhir menuliskan luas lingkaran tersebut. Seperti yang dikemukakan di atas, bahwa algoritma ada yang tidak berurutan dan biasa disebut dengan pengulangan. Adapun contohnya yaitu dalam penghitungan rata-rata dari sekumpulan data yang dimasukkan pengguna.
Berikut ini adalah algoritma untuk menghitung rata-rata data yang dimasukkan pengguna:
· Masukkan N
· i?1
· j?0
· Selama (i<=N) kerjakan baris 4 sampai dengan 7
· Masukkan dt
· i?i+1
· j?j+dt
· Rata?j/NMakalah Desain dan Analisis Algoritma 6
· Tulis rata
a) Baris pertama meminta pengguna memasukkan N, yaitu jumlah data.
b) Pada baris kedua, variabel I, yang berguna sebagai pencacah banyaknya data yang telah dimasukkan pegguna, bernilai 1.
c) Pada baris ketiga, variabel j, yang digunakan untuk menyimpan hasil penjumlahan data, diberi nilai 0.
d) Baris keempat memberikan perintah untuk mengulangi baris keempat sampai dengan baris ketujuh selama I kurang dari sama dengan N. Dengan kata lain, setelah i lebih besar dari N, baris kedelapan yang dijalankan.
e) Baris kelima meminta masukkan data yang ke-i.
f) Baris keenam menambah variabel I dengan 1. Perhatikan arti dari perintah i?i+1 adalah nilai i ditambah dengan 1 kemudian hasilnya disimpan pada variabel i kembali.
g) Baris ketujuh menambah variabel j dengan data yang dimasukkan pengguna. Sebagaimana dijelaskan di atas, variabel j digunakan untuk menyimpan hasil penjumlahan semua data, jadi untuk setiap masukan data, nilai variabel j harus ditambah dengan dt.
h) Baris kedelapan menghitung rata-rata dengan cara membagi hasil penjumlahan dengan banyaknya data.
i) Baris terakhir menuliskan rata-rata tersebut.
Tetapi banyak pemrogram yang sudah berpengalaman tidak pernah menuliskan algoritma di atas kertas lagi.. Artinya dia menuliskan algoritma itu di dalam kepalanya.
FlowChart
Pengertian FlowChart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Pedoman-pedoman dalam membuat FlowChart
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.
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.
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.
Gunakan simbol-simbol flowchart yang standar.
Jenis-jenis FlowChart
Flowchart terbagi atas lima jenis, yaitu :
Flowchart Sistem (System Flowchart)
Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
Flowchart Skematik (Schematic Flowchart)
Flowchart Program (Program Flowchart)
Flowchart Proses (Process Flowchart)
FlowChart Sistem
Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem.
Flowchart Sistem terdiri dari data yang mengalir melalui sistem dan proses yang mentransformasikan data itu. Data dan proses dalam flowchart sistem dapat digambarkan secara online (dihubungkan langsung dengan komputer) atau offline (tidak dihubungkan langsung dengan komputer, misalnya mesin tik, cash register atau kalkulator).
Di samping adalah contoh sederhana untuk flowchart sistem :
Flowchart Proses
Flowchart Proses merupakan teknik penggambaran rekayasa industrial yang memecah dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem. Flowchart Proses digunakan oleh perekayasa industrial dalam mempelajari dan mengembangkan proses-proses manufacturing. Dalam analisis sistem, flowchart ini digunakan secara efektif untuk menelusuri alur suatu laporan atau form.
Di bawah ini merupakan simbol-simbol flowchart standar yang biasanya dipakai secara umum yang dikeluarkan oleh ANSI dan ISO :

Pseudocode
Pengertian Pseudocode
Pseudocode adalah deskripsi dari algoritma pemrograman computer yang menggunakan struktur sederhana dari beberapa bahasa pemograman tetapi bahasa tersebut hanya ditujukan agar dapat dibaca manusia. Biasanya yang ditulis dari pseudocode adalah variabel dan fungsi. Tujuan penggunaan utama dari pseudocode adalah untuk memudahkan manusia dalam memahami prinsip-prinsip dari suatu algoritma. Penggunaan pseudocode umumnya banyak kita temukan di buku-buku dan artikel-artikel tentang pemrograman yang membahas tentang algoritma tertentu. Kadang pula pseudocode kita temukan dalam merencanakan pengembangan suatu program komputer. Dalam pseudocode, tidak ada bahasa pemrograman standar yang resmi. Karena itu, pseudocode ini dapat kita terapkan dalam berbagai bahasa pemograman. Tentu saja harus kita sesuaikan setiap tahap dengan bahasa pemograman yang kita gunakan. Fungsi dari pseudocode mungkin sama dengan Flowchart. Perbedaannya terletak pada cara penyampaiannya. Pseudocode menggunakan kata-kata untuk menjelaskan suatu algoritma, sedangkan Flowchart menggunakan gambar.
Contoh Soal Algoritma Dengan BahasaPseudocode
1. Ada seorang petani yang ingin berpindah ke kota, petani tersebut membawa seekor serigala dan seekor domba tak lupa petani juga membawa kotak yang berisikan sayuran, di tengah jalan petani harus menyeberangi sebuah danau. Tolong bantu seorang petani di perahu, untuk memindahkan serigala, domba dan kotak berisi sayuran, ke sisi lain dari danau.
Dengan catatan :
Serigala memakan domba dan domba memakan sayuran jika tidak ada seorang untuk menjaganya.
Contoh penyelesaian Algoritma dengan bahasa Pseudocode :
Pertama petani menyebrangkan domba ke sisi B, kemudian petani kembali menyebrang ke sisi A untuk menyebrangkan srigala ke sisi B, kemudian petani herus mengangut domba dan meyebrangkan kembali ke sisi A, petani harus mengangut sayuran ke sisi B, kemudian petani kembali ke sisi A untuk mengangkut domba dan menyebrangi kembali ke sisi B.
Poker Machines Near Me | Harrah's Philadelphia Casino
BalasHapusVisit Harrah's Philadelphia Casino in Chester, PA 벳 매니아 for 안산 출장안마 the hottest 인천광역 출장마사지 slots and table games, plus $50 밀양 출장안마 free to play slots & 사천 출장마사지 table games.