Académique Documents
Professionnel Documents
Culture Documents
Dalam matematika dan komputasi, algoritma atau algoritme [1] merupakan kumpulan perintah untuk
menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga
akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal
yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua
kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai
langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai
tugasnya selesai.
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 waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang
membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.
Daftar isi
[sembunyikan]
[sunting]Sejarah
istilah "algoritma"
Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawrizmi (hidup
sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12
"Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturanaturan 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.
[sunting]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 permasalahanpermasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian
masalah kecil yang mudah untuk dipecahkan. Singkatnya menyelesaikan keseluruhan masalah
denganmembagi 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.
Metode serakah. 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.
DAFTAR ALGORITMA
Algoritma kombinatorial
[sunting]Algoritma
kombinatorial umum
Mersenne twister
Robinson-Schensted algorithm: generates permutations from pairs of Young tableaux
[sunting]Algoritma
graph
Algoritma Bellman-Ford: menghitung jarak terpendek pada graf berbobot, di mana sisi bisa
memiliki bobot negatif
Algoritma Dijkstra: menghitung jarak terpendek pada graf berbobot, tanpa sisi berbobot negatif.
Algoritma Floyd-Warshall: menghitung solusi jarak terpendek untuk semua pasang titik pada
sebuah graf berarah dan berbobot
Topological sort
[sunting]Algoritma
pencarian
Pencarian linear: mencari sebuah item pada sebuah list tak berurut
Pencarian Best-first: menelusuri sebuah graf dengan urutan sesuai kepentingan dengan
menggunakan antrian prioritas
Pencarian Prediktif: pencarian mirip biner dengan faktor pada magnitudo dari syarat pencarian
terhadap nilai atas dan bawah dalam pencarian. Kadang-kadang disebut pencarian kamus atau
pencarian interpolasi.
Tabel Hash: mencari sebuah item dalam sebuah kumpulan tak berurut dalam waktu O(1).
[sunting]Algoritma
string
[sunting]Pencarian
Algoritma Aho-Corasick
Algoritma Bitap
Algoritma Boyer-Moore
Algoritma Knuth-Morris-Pratt
Algoritma Karp-Rabin
[sunting]Approximate matching
[sunting]Algoritma
penyusunan
Bogosort
Bubble sort: for each pair of indices, swap the items if out of order
Bucket sort
Comb sort
Cocktail sort
Counting sort
Gnome sort
Heapsort: convert the list into a heap, keep removing the largest element from the heap and
adding it to the end of the list
Insertion sort: determine where the current item belongs in the list of sorted ones, and insert it
there
Merge sort: sort the first and second half of the list separately, then merge the sorted lists
Pancake sorting
Pigeonhole sort
Quicksort: divide list into two, with all items on the first list coming before all items on the second
list.; then sort the two lists. Often the method of choice
Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
Smoothsort
Stupid sort
Topological sort
[sunting]Compression
[sunting]Lossless
algorithms
compression algorithms
Delta encoding: aid to compression of data in which sequential data occurs frequently
LZ77 (algorithm): LZ77 and LZ78 are the names for the two lossless data compression algorithms
Shannon-Fano coding
Entropy encoding: coding scheme that assigns codes to symbols so as to match code lengths
with the probabilities of the symbols
Huffman coding: simple lossless compression taking advantage of relative character
frequencies
Adaptive Huffman coding: adaptive coding technique based on Huffman coding
Range encoding: data compression method that is believed to approach the compression
ratio of arithmetic coding
Entropy coding with known entropy characteristics
Unary coding: code that represents a number n with n ones followed by a zero
Fibonacci coding: universal code which encodes positive integers into binary code words
Golomb coding: form of entropy coding that is optimal for alphabets following geometric
distributions
Rice coding: form of entropy coding that is optimal for alphabets following geometric
distributions
[sunting]Lossy
compression algorithms
Linear predictive coding: lossy compression by representing the spectral envelope of a digital
signal of speech in compressed form
Transform coding: type of data compression for "natural" data like audio signals or photographic
images
Wavelet compression: form of data compression well suited for image compression (sometimes
also video compression and audio compression)
[sunting]Computational
geometry
Graham scan determining the convex hull of a set of points in the plane
Point in polygon: tests whether a given point lies within a given polygon
[sunting]Grafik
komputer
Bresenham's line algorithm: plots points of a 2-dimensional array to form a straight line between 2
specified points (uses decision variables)
DDA line algorithm: plots points of a 2-dimensional array to form a straight line between 2
specified points (uses floating-point math)
Flood fill: fills a connected region of a multi-dimensional array with a specified symbol
[sunting]Algoritma
Kriptografi
Blowfish
IDEA
RC4 (cipher)
Asymmetric (public key) encryption or digital signature:
DSA
ElGamal
RSA
NTRUEncrypt
Cryptographic Message digest functions:
MD5 Note that there is now a method of generating collisions for MD5
RIPEMD-160
SHA-1
Yarrow algorithm
Other
[sunting]Algoritma
Distributed systems
Snapshot algorithm: a snapshot is the process of recording the global state of a system
[sunting]Algoritma
Numerical
See also main article numerical analysis and list of numerical analysis topics
Bracketing Methods:
Strassen algorithm
[sunting]Optimization
algorithms
Simulated annealing
Genetic algorithms
Particle swarm
Tabu search
Local search
[sunting]Digital
signal processing
[sunting]Number
theoretic algorithms
Discrete logarithm:
Baby-step giant-step
Pohlig-Hellman algorithm
Trial division
Congruence of squares
Quadratic sieve
Sieve of Eratosthenes
Sieve of Atkin
[sunting]Numerical
algebra
Eigenvalue algorithm
[sunting]Parsing
LL parser: A relatively simple linear time parsing algorithm for a limited class of context-free
grammars
LR parser: A more complex linear time parsing algorithm for a larger class of context-free
grammars. Variants:
Operator-precedence parser
Canonical LR parser
Packrat parser: A linear time parsing algorithm supporting some context-free
Earley's algorithm: Another O(n3) algorithm for parsing any context-free grammar
[sunting]Teknik
perangkat lunak
Diff: compare two sequences. An example of Dynamic programming (dynamic refers to the
property that the optimal solution can be constructed by combining optimal solutions to sub-problems
e.g. quicksort).
[sunting]Algoritma
kuantum
[sunting]Algoritma
medis
Medical algorithm
[sunting]Lainnya
Astronomical algorithms
Banker's algorithm
Baum-Welch algorithm
Risch algorithm
Schreier-Sims algorithm
Todd-Coxeter algorithm
Viterbi algorithm
Xor swap algorithm: swaps the values of two variables without using a buffer
www.wikipedia.org
Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu langkah-langkah
pembuatan suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu program yaitu:
1.
2.
3.
4.
5.
6.
7.
Mendefinisikan masalah
Mencari solusinya
Menentukan algoritma
Menulis program
Menguji program
Mendokumentasikan program
Merawat program Read more
Categories:Programming AlgorithmsTags:algoritma, bahasa
pemrograman, konsep, kuliah, Pemrograman, program, pseudo code, solusi,source code
Tipe Data
April 27th, 2009AuthorNo comments
Dalam algoritma, kita harus bias menentukan tipe-tipe data yang sesuai digunakan dalam
penyelesaian masalah. Sehingga computer dapat mengolah dan mendapatkan hasil yang sesuai
menurut kebutuhan data.
Ada beberapa tipe data yang harus kita ketahui antara lain :
1. Tipe data Char dan String
Ini merupakan tipe data dasar, tipe data ini didefinisikan pada deklarsi var dibagian
algoritma/program.
Example :
Var Nama : String
Nilai : Char
Keterangan :
Nama merupakan sebuah variabel didefinisikan sebagai variabel bertipe string, maksudnya
pada variabel tersebut digunakan untuk menerima masukan sebuah nama yang terdiri dari
sekumpulan huruf, dapat berupa huruf besar, kecil, atau campuran kedua-duanya.
Nilai, didefinisikan sebagai variabel yang bertipe data char, maksudnya variabel tersebut hanya
dapat digunakan untuk memasukkan sebuah huruf dari huruf besar, seperti A, B, C,.. atau huruf kecil,
a, b, c, .
2. Tipe data Boolean
Tipe data ini digunakan untuk pengambilan keputusan dalam operasi logika. Terdiri dari true
disimbolkan T dan False yang disimbolkan F. Ketika kita ingin mendapatklan hasil yang valid/pasti,
kita menggunakan tipe data boolean untuk memperoleh keputusan dalam suatu penyelesaian yang
pasti.
Tipe Data
Rentang nilai
Memori
Byte
0255
1 byte
Word
065.555
1 byte
Integer
2 byte
Long Integer
-2.147.483.648
4 byte
Berdimensi dua
Var
Nama_Variabel_Array=Array[1...N,1...M]of tipe_data
2 buah Nomor Indeks
8. Tipe Data Record
Tipe data komposit yang sudah terstruktur denagn baik. Tipe data ini digunakan untuk menampung
data suatu obyek. Datanya berupa campuran dari tipe data seperti string, numerik, char, boolean,
atau tipe data lainnya. Tipe data ini merupakan struktur dasar dari suatu sistem database.
What is Algoritma?
April 23rd, 2009AuthorNo comments
Algoritma merupakan konsep dasar dari sebuah program. Dalam pembuatannya dibutuhkan daya
nalar yang baik dan logis. Algoritma terdiri dari beberapa langkah dalam penyelesaian masalah.
Namun perlu diketahui, langkah-langkah dalam algoritma dibatasi oleh obyek masalah yang
dihadapinya. Bahasa pemrograman adalah alat untuk berkomunikasi. Brainware dengan mesin
computer. Bahasa pemrograman terdiri dari berbagai macam, contohnya seperti Pascal, C, Basic,
sedangkan bahasa pemrograman itu sendiri terbagi menjadi dua kelompok, yaitu bahasa
pemrograman tingkat tinggi seperti pascal, basic, C. Dan Bahasa pemrograman tingkat rendah seperti
Assembly. Dari dua kelompok tersebut ada yang berbasiskan system operasi DOS dan pemrograman
Windows.
Dalam menyusun algoritma, diperlukan tahapan-tahapan dalam penyelesaiannya. Pertama kita harus
mendefinisikan masdalah agar masalah menjadi jelas dan dapat kita ketahui dengan pasti cara
penyelesaiannya. Jika sudah diketahui dengan pasti, barulah mencari metode-metode apa yang sesuai
digunakan dalam menyelesaikan masalah tersebut. And then menyusun konsep langkah-langkah
penyelesaian masalah secara real. Dengan menggunakan bahasa pemrograman.
Plan of Program?
Menganalisis masalah yang ada dapat dilakukan separti mengumpulkan data, cara penyelesaian,
menyeleksi data, dan output yang diinginkan. Mendesign sistem, logika yang dapat meliputi datainput/output. Dalam pelaksanaan program, hal yang dilakukan editing, memeriksa kesalahan
mengenai sintaksnya, pelaksanaan (Run). Kemudian barulah suatu permasalahan dapat diperoleh
hasil yang diinginkan.
Algoritmna merupakan kerangka dasar dari konsep suatu program untuk menyelesaikan masalah .
Algoritma tidak terikat dari suatu bahasa pemrograman manapun atau dengan kata lain bahasa yang
digunakan adalah bebas dengan ba
http://www.nusinau.com/tag/algoritma/