Resume dan Analisis Desain dan Analisis Algoritma

download Resume dan Analisis Desain dan Analisis Algoritma

of 3

description

Materi pendahuluan Desain dan Analisis Algoritma

Transcript of Resume dan Analisis Desain dan Analisis Algoritma

ANALISIS DAN DESAIN ALGORITMA

Kelompok 8, DAA Kelas JRidlo Sayyidina Auliya-105060800111013Elha Dhanny-115060800111010Regita Ayu P.-115060800111028Gita Widigdo W.-115060807111021Ichwanda Baktiar-115060807111003

DEFINISI ALGORITMAAlgoritma dapat didefinisikan sebagai urutan langkah-langkah yang disusun secara sistematis dan logis untuk menyelesaikan suatu permasalahan. Algoritma digunakan untuk mempermudah pemecahan masalah logika dan matematika. Algoritma ditemukan pada abad ke-9 oleh seorang ahli matematika asal Uzbekistan yang, Al-Khawarizmi. Istilah algoritma tercantum dalam karya Al-Khawarizmi yang menyebutkan Algorithmi de numero Indorum, yang merujuk pada definisi algoritma sebagai aturan aritmatis untuk menyelesaikan suatu masalah dengan menggunakan notasi numerik (angka). Algoritma mengalami perkembangan sejak abad ke-12, lalu kemudian diterapkan dalam dunia komputer beberapa abad setelahnya. Algoritma dalam dunia komputer didefinisikan sebagai urutan langkah atau prosedur komputasi yang tepat yang digunakan untuk suatu kegiatan problem solving. Kegiatan tersebut dilakukan dengan mengeksekusi langkah atau prosedur dan menggunakannya untuk mentransformasi input yang valid menjadi output yang diinginkan. Analisis dan Desain Algoritma merupakan suatu cabang ilmu komputer yang mempelajari karakteristik dan performa suatu algoritma dalam menyelesaikan suatu permasalahan. Analisis dan Desain Algoritma mempelajari algoritma secara abstrak, terlepas dari implementasi algoritma tersebut yang mencakup sistem informasi dan bahasa pemrograman yang digunakan. Analisis dan Desain Algoritma membantu menentukan algoritma terbaik yang dapat digunakan untuk memecahkan suatu permasalahan dan mempermudah proses perancangan suatu algoritma berdasarkan analisa yang telah didapat.

KOMPONEN ALGORITMASuatu algoritma terdiri dari komponen berikut, antara lain :1. InputKomponen ini terdiri dari variabel, tipe variabel, konstanta, dan parameter yang direpresentasikan dalam bentuk fungsi.2. OutputKomponen ini merupakan hasil akhir dari perancangan algoritma dan program. Output merepresentasikan permasalahan yang telah diselesaikan. Karakter output yang baik ditunjukkan dengan adanya korelasi antara output itu sendiri dan permasalahan yang diselesaikan.3. Process Komponen ini merupakan bagian utama dalam perancangan suatu algoritma. Dalam komponen proses terdapat logika masalah, logika algoritma yang terdiri dari logika sintaksis dan semantik, rumusan, dan metode yang digunakan. Terdapat beberapa metode yang digunakan untuk memecahkan permasalahan matematika dan program komputer, diantaranya :1. Pseudo CodePseudocode dapat menggunakan bahasa sehari-hari, namun harus lebih jelas dan terstruktur.2. FlowchartFlowchart dibuat dengan menyajikan diagram yang mewakili susunan alur logika dari permasalahan yang ingin diselesaikan.

JENIS ALGORITMAAlgoritma komputer dapat dikelompokkan berdasarkan paradigma yang digunakan untuk merancang algoritma tersebut. Satu paradigma dapat diterapkan ke dalam beberapa algoritma. Berikut beberapa jenis paradigma yang sering digunakan :1. Brute ForceParadigma ini menerapkan penyelesaian masalah dengan pendekatan secara langsung, yakni kepada pernyataan masalah dan definisi konsep terkait.2. Divide and ConquerParadigma ini membagi permasalahan besar menjadi masalah yang lebih kecil, hingga ditemukan masalah terkecil yang mudah untuk diselesaikan. 3. Decrease and ConquerParadigma ini berdasarkan pada pemanfaatan hubungan antara solusi dari sontoh permasalahan yang diberikan dengan solusi dari contoh permasalahan yang sama, namun lebih kecil. Paradigma ini meliputi 3 aspek utama, yakni penurunan konstanta, penurunan dengan faktor konstan, dan penurunan ukuran variabel. 4. Dynamic ProgrammingParadigma ini cocok digunakan pada suatu permasalahan yang memiliki substruktur yang optimal dan memiliki bagian permasalahan yang tumpang tindih. Paradigma ini memiliki perbedaan dengan paradigma Divide and Conquer, yakni pada karakteristik permasalahan yang dihadapi. 5. Greedy AlgorithmPerbedaan utama paradigma ini dengan Dynamic Programming adalah pada jawaban dari submasalah menggunakan konsep greedy, dimana hanya jawaban terbaik yang dipertimbangkan sedangkan jawaban submasalah tidak dilihat.

PERANCANGAN ALGORITMABerikut merupakan langkah-langkah dalam mendesain suatu algoritma.1. Mentransformasi permasalahan sehingga menjadi suatu inputan, yakni dengan cara mengidentifikasi untuk menentukan objek input dan struktur data.2. Gunakan metode yang sesuai untuk permasalahan yang akan diselesaikan. 3. Ubah solusi yang didapat sehingga menjadi output, yakni dengan menganalisa solusi permasalahan dan struktur datanya.

PENGGUNAAN ALGORITMAAlgoritma digunakan untuk menyelesaikan masalah dengan tingkat kompleksitas yang berbeda. Mulai yang paling sederhana hingga yang paling rumit. Algoritma menyelesaikan permasalahan logika dan matematika secara berurutan, kecuali pada percabangan dimana algoritma akan menyelesaikan permasalahan logika dan matematika secara acak.Penggunaan algoritma pada komputer didasari oleh hakikat komputer sebagai sebuah mesin digital. Komputer hanya bisa mengenali kondisi arus litrik, sehingga pemrograman dilakukan dengan memasukkan sandi kondisi arus listrik, yakni jika ada arus litrik maka bernotasi 1 dan sebaliknya jika tidak ada maka bernilai 0. Bahasa pemrograman ini disebut dengan bahasa mesin.Penggunaan bahasa mesin terlalu rumit dan susah dipahami, sehingga digunakanlah mnemonic code yang lebih sederhana dan mendekati bahasa manusia. Salah satu jenis mnemonic code diantaranya adalah bahasa assembly. Mnemonic code merupakan semi-algorithm, karena terdapat tahap dimana proses akan diakhiri meskipun solusi belum ditemukan.

EFISIENSI ALGORITMADalam memilih algoritma yang akan digunakan untuk menyelesaikan suatu permasalahan, harus melakukan pertimbangan terhadap beberapa krteria berikut :1. KebenaranAlgoritma yang akan dipakai harusnya tepat guna, efektif, menghasilkan output yang sesuai denga inputannya, dan sesuai dengan permasalahan.2. Kemudahan Algoritma yang akan dipakai harusnya sederhana dan mudah untuk dipahami, serta mudah untuk diprogram dalam proses coding.3. KecepatanAlgoritma yang dipakai seharusnya memiliki kecepatan eksekusi program yang tinggi. Kecepatan eksekusi dihitung berdasarkan jumlah waktu dan komputasi yang dibutuhkan dalam proses eksekusi. Kecepatan eksekusi juga dapat menunjukkan kompleksitas suatu algoritma. Semakin banyak waktu yang dibutuhkan, semakin tinggi kompleksitas algoritma tersebut.4. BiayaAspek ini mengacu pada kebutuhan memori. Semakin besar memori yang digunakan, maka biaya juga semakin besar, begitu pula sebaliknya.

Keempat kriteria algoritma yang efektif tersebut mustahil diwujudkan secara bersamaan. Aspek yang diprioritaskan pada umumnya adalah kecepatan dan biaya.

Analisis dan Desain Algoritma menganalisis algoritma dari segi karakteristik dan performansi dengan menggunakan parameter efisiensi. Efisiensi algoritma ditinjau dari dua hal, yakni efisiensi waktu dan efisiensi memori.Efisiensi waktu diukur dari banyaknya operasi yang dilakukan dalam sekali eksekusi dalam satu satuan waktu. Sedangkan efisensi memori ditinjau dari struktur data dan variabel yang digunakan. Dari hasil analisis tersebut, akan dapat ditentukan mana algoritma terbaik yang sesuai dengan permasalahan. Algoritma terbaik adalah algoritma yang efisien, yakni algoritma yang meminimumkan kebutuhan waktu serta memori dalam penggunaannya.

Sumber :Levitin, Anany. 2010. Pengantar Desain dan Analisis Algoritma.Jakarta : Salemba Infotek.Baizal, ZK Abdurahman. 2010. Introduction to Design & Analysis of Algorithms. Materi Kuliah Desain & Analisis Algoritma. STT Telkom bandung