Pengenalan Analisis Algoritma

Slides:



Advertisements
Presentasi serupa
Pengertian Dasar Logika dan Algoritma
Advertisements

Kompleksitas Algoritma
Dosen : Rinci Kembang Hapsari, S.Si
Pengertian Algoritma dan Flowchart
TEORI ALGORITMA.
Algoritma dan Pemrograman
STRUKTUR DATA Materi 1 Latifah Rifani.
Tim Matematika Diskrit
Kompleksitas Algoritma
PENGANTAR ALGORITMA DAN PEMROGRAMAN
Kompleksitas Algoritma
Pengertian Algoritma Sumber Kepustakaan : gerlan1986.files.wordpress.com/.../materi-ii-penge... 1 Algoritma adalah kumpulan instruksi-instruksi/ perintah–perintah/langkah-langkah.
STRUKTUR DATA (1).
Design and Analysis Algorithm
Design and Analysis Algorithm
METODE NUMERIK.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
PERTEMUAN 1.
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Pemrograman Dasar Kelas X.
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
ALGORITMA & PEMROGRAMAN I-A
ALGORITMA PEMROGRAMAN 1C (KONSEP BAHASA PEMROGRAMAN)
Kompleksitas Algoritma
Rekayasa Perangkat Lunak Model Proses PL
Notasi Algoritma & Tipe Data
Algoritma Bruteforce Team Fasilkom.
BAB 1 BAHASA PEMROGRAMAN
Pengenalan Struktur Data Universitas Muhammadiyah Jakarta
PROTOTIPE (Berkerja dengan Model Pertama)
ALGORITHMA DAN ATURAN PENULISANYA
Pengertian Algoritma dan Flowchart
Pengantar struktur data
ALGORITMA PEMROGRAMAN 1C (KONSEP BAHASA PEMROGRAMAN)
Algoritma Bruteforce (disarikan dari diktat Strategi Algoritma, Rinaldi Munir) Team Fasilkom.
Exhaustive Search.
PROG.STUDI PEND.FISIKA UIN ALAUDDIN MAKASSAR
Struktur Data Yuniansyah.
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Array 1.
STRUKTUR DATA ( Menjelaskan Mengenai Data & Struktur Data )
Analisa Algoritma Konsep Algoritma.
Logika dan Algoritma Oleh: Ferawaty, S.Kom.
JENIS-JENIS DATA Denny Agustiawan, M.pd
DASAR PEMROGRAMAN Anita Qoiriah ..
PENGENALAN ALGORITMA Materi 1.
ALGORITMA GREEDY : MINIMUM SPANNING TREE
DIAGRAM ALUR (FLOWCHART)
Pengantar Algoritma dan pemograman
Review Algoritma 1 Teks Algoritma terdiri dari tiga bagian :
PENGANTAR TEKNOLOGI INFORMASI
PROG. STUDI FISIKA UIN ALAUDDIN MAKASSAR
PEMROGRAMAN I Semester I 2017/2018
Algoritma.
Kompleksitas Algoritma
Pendahuluan Komputer adalah alat bantu untuk menyelesaikan masalah.
PERTEMUAN II PENGANTAR
KOMPUTASI PEMROGRAMAN
STRUKTUR DATA Materi 1.
PEMROGRAMAN Belajar memrogram : belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami Belajar bahasa.
STRUKTUR DATA NAMA : ALDI NUGROHO SETYO PAMBUDI NIM :
Pengertian Dasar Logika dan Algoritma. LOGIKA Pertama kali diperkenalkan oleh Aristoteles (384 – 322 SM) Logika berasal dari kata Yunani kuno λόγος (logos)
Dr. Mufid Nilmada, SSi., MMSI
Desain dan Analisis Algoritma
Algoritma & Pemrograman 1 Chapter 1 Achmad Fitro The Power of PowerPoint – thepopp.com.
Notasi Algoritmik, Tipe Dasar, Nilai, Ekspresi dan Input/Output
Memori dan Scope Variabel
Transcript presentasi:

Pengenalan Analisis Algoritma

Pengantar Analisis Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam memyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Kompleksitas algoritma adalah ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Algorithm is a sequence of un ambiguous instructions for solving a problem

Pertimbangan memilih algoritma 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. 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. 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. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.

Isi dari algoritma Assignment Subroutine call Sequence Percabangan Looping

Assignment adalah pemberian nilai kepada suatu Variabel atau Konstanta sesuai dengan jenis/type datanya. Nilai yang diberikan bisa berupa: Variabel, Konstanta atau Pernyataan Matematis. Subroutine call adalah suatu subfungsi yang dijalankan yang mana bila telah selesai maka akan kembali ke program utama. Sequence adalah instruksi-instruksi yang dikerjakan secara berurutan. Berurutan di sini berarti sesuai dengan urutan penulisannya, yakni sebuah instruksi dijalankan setelah instruksi sebelumnya selesai dikerjakan. Percabangan. Percabangan dalam pemrograman komputer dikenal sebagai cara untuk mengendalikan program. Program yang dibuat dan diterjemahkan oleh penerjemah akan di eksekusi dari bari awal hingga baris akhir kecuali ada percabangan diantaranya, meski pada akhirnya juga akan sampai baris terakhir. Looping adalah suatu preoses perulangan suatu fungsi.

Fundamentals of Alhorithmic Problem Solving

Beberapa tipe problem penting Sorting Searching Pemrosesan string Problem graph Problem kombinatorik Problem geometri Problem numerik

Tipe Problem : Sorting Problem: menyusun ulang hal-hal yang terdapat pada daftar dengan urutan naik atau turun Jika ada records, kita perlu sebuah key Terdapat bermacam-macam algoritma sorting Dua properti algoritma sorting: - Stabil: Mempertahankan urutan relatif sembarang dua elemen input yang sama - Di tempat: tidak memerlukan memori ekstra, kecuali, mungkin, beberapa unit memori

Tipe Problem : Searching Problem: menemukan suatu nilai dari sekumpulan nilai yang ada Jangkauan algoritma searching: - Pencarian sekuensial hingga pencarian binary (sangat efisien, namun terbatas) dan algoritma didasarkan pada representasi kumpulan nilai tersebut sehingga memungkinkan pencarian yang lebih baik Tantangan: - Kumpulan data yang sangat besar - Update: add, edit, delete

Tipe Problem : Pemrosesan String String = urutan karakter alphabet Minat khusus: text strings, binary strings, gene sequencesbioinformatika, dll. Problem khusus: pencocokan string - Pencarian suatu kata dalam teks

Tipe Problem : Graph Algoritma graf dasar: graph traversal, shortest-path, sorting topologik pada graph dengan ujung berarah Beberapa problem sangat sulit diselesaikan dengan komputasi –hanya beberapa contoh problem yang dapat diselesaikan dalam waktu yang dapat diterima - Traveling Salesman Problem (TSP) - Graph-Coloring Problem (GCP)

Tipe Problem : Permasalahan Kombinatorik Problem: menemukan suatu objek kombinatorik –seperti permutasi, kombinasi, atau subset – yang memenuhi batasan-batasan tertentu dan memiliki properti yang diinginkan Problem-problem paling sulit - Sejumlah objek kombinatorik tertentu tumbuh dengan cepat seiring peningkatan ukuran problem - Tidak diketahui algoritma eksak untuk menyelesaikan problem tersebut dalam waktu yang diinginkan Dari perspektif yang lebih abstrak, TSP & GCP merupakan salah satu contoh permasalahan kombinatorik

Tipe Problem : Permasalahan Geometrik Berkaitan dengan objek geometrik: titik, garis, poligon, dll. Yunani kuno: membangun bentuk geometris sederhana –segitiga, lingkaran, dll.– menggunakan penggaris dan kompas yang tidak ditandai Masa kini: aplikasi komputer grafik, robot, tomography Problem klasik: - Problem closest-pair: diberikan n titik pada suatu bidang, temukan pasangan terdekat diantaranya - Problem Convex hull: temukan poligon cembung terkecil yang melibatkan semua titik yang telah ditentukan

Tipe Problem : Permasalahan Numerik Melibatkan objek matematis yang memiliki sifat kontinyu: memecahkan persamaan dan sistem persamaan, menghitung integral tak berhingga, mengevaluasi fungsi, dll. Mayoritas problem-problem di atas hanya dapat dipecahkan dengan perkiraan - Komputer hanya dapat merepresentasikan angka real dengan kira-kira - Akumulasi kesalahan round-off Perubahan fokus komputasi industri: analisis numerik (pada industri & ilmu pengetahuan) menuju aplikasi bisnis (penyimpanan informasi, retrieval, transportasi melalui jaringan, dan presentasi kepada pengguna)

Efisiensi Algoritma Pertimbangan Memilih Algoritma: Analisis Algoritma : menganalisis efisiensi algoritma, yang mencakup : Kebenaran efisiensi waktu (kecepatan) → banyaknya operasi yang dilakukan Tepat guna (efektif) Output sesuain dengan inputnya efisiensi memori → struktur data dan variabels yang digunakan Sesuai dengan permasalahan Kemudahan/kesederhanaan Untuk dipahami Untuk diprogram Kecepatan Algoritma Berkaitan dengan kecepatan eksekusi program Hemat Biaya mengacu pada kebutuhan memori Keempatnya sulit dicapai bersamaan dan biasaynya yang diutamakan adalah efisiensi (cepat dan hemat)

Algoritma yang bagus adalah algoritma yang efisien Algoritma yang efisien ialah algoritma yang meminimumkan kebutuhan waktu dan ruang/memori. Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Mana yang lebih baik : menggunakan algoritma yang waktu eksekusinya cepat dengan komputer standard atau menggunakan algoritma yang waktunya tidak cepat tetapi dengan komputer yang cepat?

Misal dipunyai : Algoritma dengan waktu eksekusi dalam orde 2 pangkat n Sebuah komputer dengan kecepatan 10-4 x 2(pangkat)n n=10 → 1/10 detik n=20 → 2 menit n=30 → lebih dari satu hari n=38 → 1 tahun Algoritma dengan waktu eksekusi dalam orde 2(pangkat)n Sebuah komputer dengan kecepatan 10-6 x 2(pangkat)n n=45 → 1 tahun

Mengapa kita memerlukan algoritma yang efisien?