Upload
dian-fahrizal
View
7
Download
0
Embed Size (px)
DESCRIPTION
Algoritma
Citation preview
Algoritma
Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Belum Diperiksa
Diagram Alursering digunakan untuk menggambarkan sebuah algoritma.
Dalammatematikadankomputasi,algoritmaataualgoritme[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 denganheuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Booleandanperbandingan) sampai tugasnya selesai.
Desain dan analisis algoritmaadalah suatu cabang khusus dalamilmu komputeryang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas darisistem komputeratau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
Kompleksitasdari suatualgoritmamerupakan 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]
1Sejarah istilah "algoritma"
2Jenis-jenis Algoritma
3Lihat pula
4Catatan kaki
[sunting]Sejarah istilah "algoritma"
Kataalgoritmaberasal dari latinisasi nama seorang ahli matematika dariUzbekistanAl Khawrizmi(hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kataalgorismaadalah 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 menjadialgoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan.
[sunting]Jenis-jenis Algoritma
Terdapat beragam klasifikasialgoritmadan 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 untukmembagisuatu permasalahan besar menjadi permasalahan-permasalahan yang lebih kecil. Pembagian masalah ini dilakukan terus menerus sampai ditemukan bagian masalah kecil yang mudah untukdipecahkan. Singkatnya menyelesaikan keseluruhan masalah denganmembagimasalah besar dan kemudianmemecahkanpermasalahan-permasalahan kecil yang terbentuk.
Dynamic programming, paradigma pemrograman dinamik akan sesuai jika digunakan pada suatu masalah yang mengandungsub-struktur yang optimal(, dan mengandung beberapabagian permasalahan yang tumpang tindih. Paradigma ini sekilas terlihat mirip dengan paradigmaDivide 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. Sebuahalgoritma serakahmirip dengan sebuahPemrograman 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
Algoritma pencari-siklus Floyd: iterasi untuk mencari siklus dalam barisan/sekuens
(uniformly distributed)Pseudorandom number generators:
Blum Blum Shub
Mersenne twister
Robinson-Schensted algorithm: generates permutations from pairs ofYoung tableaux
[sunting]Algoritma graph
Artikel utama untuk bagian ini adalah:Teori graph
Algoritma Bellman-Ford: menghitungjarak terpendekpada graf berbobot, di mana sisi bisa memiliki bobot negatif
Algoritma Dijkstra: menghitungjarak terpendekpada graf berbobot, tanpa sisi berbobot negatif.
Algoritma Floyd-Warshall: menghitung solusi jarak terpendek untuk semua pasang titik pada sebuah graf berarah dan berbobot
Algoritma Kruskal: mencaripohon rentang minimumpada sebuah graf
Algoritma Prim: mencaripohon rentang minimumpada sebuah graf
Algoritma Boruvka: mencaripohon rentang minimumpada sebuah graf
Algoritma Ford-Fulkerson: computes themaximum flowin a graph
Algoritma Edmonds-Karp: implementation of Ford-Fulkerson
Nonblocking Minimal Spanning Switchsay, for atelephone exchange
Spring based algorithm: algorithm forgraph drawing
Topological sort
Algoritma Hungaria: algorithm for finding a perfectmatching
[sunting]Algoritma pencarian
Pencarian linear: mencari sebuah item pada sebuah list tak berurut
Algoritma seleksi: mencari item ke-kpada sebuah list
Pencarian biner: menemukan sebuah item pada sebuah list terurut
Pohon Pencarian Biner
Pencarian Breadth-first: menelusuri sebuah graf tingkatan demi tingkatan
Pencarian Depth-first: menelusuri sebuah graf cabang demi cabang
Pencarian Best-first: menelusuri sebuah graf dengan urutan sesuai kepentingan dengan menggunakanantrian prioritas
Pencarian pohon A*: kasus khusus dari pencarian best-first
Pencarian Prediktif: pencarian mirip biner dengan faktor padamagnitudodari 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 brute force
Algoritma Aho-Corasick
Algoritma Bitap
Algoritma Boyer-Moore
Algoritma Knuth-Morris-Pratt
Algoritma Karp-Rabin
[sunting]Approximate matching
Levenshtein edit distance
[sunting]Algoritma penyusunan
Binary tree sort
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
Radix sort: sorts strings letter by letter
Selection sort: pick the smallest of the remaining elements, add it to the end of the sorted list
Shell sort: an attempt to improve insertion sort
Smoothsort
Stupid sort
Topological sort
[sunting]Compression algorithms[sunting]Lossless compression algorithms
Burrows-Wheeler transform: preprocessing useful for improving lossless compression
DEFLATE: lossless data compression
Delta encoding: aid to compression of data in which sequential data occurs frequently
Incremental encoding: delta encoding applied to sequences of strings
LZW: lossless data compression (Lempel-Ziv-Welch)
LZ77 (algorithm): LZ77 and LZ78 are the names for the two lossless data compression algorithms
LZMA: short for Lempel-Ziv-Markov chain-Algorithm
LZO: data compression algorithm that is focused on speed
PPM compression algorithm
Shannon-Fano coding
Truncated binary encoding
Run-length encoding: lossless data compression taking advantage of strings of repeated characters
SEQUITUR algorithm: lossless compression by incremental grammar inference on a string
EZW (Embedded Zerotree Wavelet)
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
Arithmetic coding: advancedentropycoding
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
Eliasdelta|gamma|omegacoding: universal code encoding the positive integers
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
A-law algorithm: standard companding algorithm
Mu-law algorithm: standard analog signal compression or companding algorithm
Fractal compression: method used to compress images using fractals
Transform coding: type of data compression for "natural" data like audio signals or photographic images
Vector quantization: technique often used in lossy data compression
Wavelet compression: form of data compression well suited for image compression (sometimes also video compression and audio compression)
[sunting]Computational geometry
Gift wrapping algorithm: determining theconvex hullof asetof points
Graham scandetermining theconvex hullof 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
Painter's algorithm: detects visible parts of a 3-dimensional scenery
Ray tracing: realistic imagerendering
[sunting]AlgoritmaKriptografi
Lihat jugaTopik dalam kriptografi
Symmetric (secret key) encryption:
Advanced Encryption Standard(AES), winner of NIST competition
Blowfish
Data Encryption Standard(DES), sometimes DE Algorithm, winner of NBS selection competition, replaced by AES for most purposes
IDEA
RC4 (cipher)
Asymmetric (public key) encryptionordigital signature:
DSA
ElGamal
RSA
Diffie-Hellman key exchange
NTRUEncrypt
CryptographicMessage digestfunctions:
MD5 Note that there is now a method of generating collisions for MD5
RIPEMD-160
SHA-1
HMAC: keyed-hash message authentication
Cryptographically secure pseudo-random number generators
Blum Blum Shub- based on the hardness offactorization
Yarrow algorithm
Fortuna, allegedly an improvement on Yarrow
Other
Diffie-Hellman: key exchange
[sunting]AlgoritmaDistributed systems
Lamport ordering: apartial orderingof events based on thehappened-beforerelation
Snapshot algorithm: a snapshot is the process of recording the global state of a system
Vector ordering: atotal orderingof events
[sunting]Algoritma Numerical
See also main articlenumerical analysisandlist of numerical analysis topics
Algoritma De Boor: computessplines.
Algoritma De Casteljau: computesBezier curves
False position method: approximates roots of a function
Gauss-Jordan elimination: solves systems of linear equations
Algoritma Gauss-Legendre: computes the digits ofpi
Gauss-Newton algorithm: find minimum of function of several variables
Kahan summation algorithm: a more accurate method of summing floating-point numbers
Levenberg-Marquardt algorithm: find minimum of function of several variables
MISER algorithm: Monte Carlo simulation,numerical integration
Newton's method: finds zeros of functions withcalculus
Bracketing Methods:
Rounding functions: the classic ways to round numbers
Secant method: approximates roots of a function
Shifting nth-root algorithm: digit by digit root extraction
Square root: approximates the square root of a number
Strassen algorithm
[sunting]Optimization algorithms
Simplex algorithm: An algorithm for solving thelinear programmingproblem
Branch and bound
Simulated annealing
Genetic algorithms
Particle swarm
Tabu search
Local search
[sunting]Digital signal processing
CORDIC: Fasttrigonometric functioncomputation technique.
Fast Fourier transform: determines the frequencies contained in a (segment of a) signal
Cooley-Tukey FFT algorithm
Rainflow-counting algorithm: Reduces a complexstresshistory to a count of elementary stress-reversals for use infatigueanalysis
Osem: algorithm for processing of medical images
Goertzel algorithmCan be used forDTMFdigit decoding.
Discrete Fourier transform
Rader's FFT algorithm
Bluestein's FFT algorithm
[sunting]Number theoreticalgorithms
Discrete logarithm:
Baby-step giant-step
Pollard's rho algorithm for logarithms
Pohlig-Hellman algorithm
Index calculus algorithm
Euclidean algorithm: computes thegreatest common divisor
Integer factorization: breaking an integer into itsprimefactors
Trial division
Lenstra elliptic curve factorization
Pollard's rho algorithm
Pollard's p-1 algorithm
Congruence of squares
Quadratic sieve
Special number field sieve
General number field sieve
Jones's period proxy algorithm
Multiplication algorithms: fast multiplication of two numbers
Primality tests: determining whether a given number isprime
AKS primality test
Miller-Rabin primality test
Sieve of Eratosthenes
Sieve of Atkin
[sunting]Numerical algebra
Buchberger's algorithm: finds aGrbner basis
Eigenvalue algorithm
Exponentiating by squaring: quickly computes powers of numbers and matrices
Gram-Schmidt process: orthogonalizes a set of vectors
Knuth-Bendix completion algorithm: forrewritingrule systems
Multivariate division algorithm: forpolynomialsin several indeterminates
[sunting]Parsing
Recursive descent parser: Atop-down parsersuitable for LL(k) grammars
LL parser: A relatively simplelinear timeparsing algorithm for a limited class ofcontext-free grammars
LR parser: A more complexlinear timeparsing algorithm for a larger class ofcontext-free grammars. Variants:
Operator-precedence parser
SLR (Simple LR) parser
LALR (Look-ahead LR) parser
Canonical LR parser
Packrat parser: Alinear timeparsing algorithm supporting somecontext-free grammarsandparsing expression grammars
CYK algorithm: An O(n3) algorithm for parsing anycontext-free grammar
Earley's algorithm: Another O(n3) algorithm for parsing anycontext-free grammar
[sunting]Teknik perangkat lunak
Algorithms for Recovery and Isolation Exploiting Semantics: recovery
Unicode Collation Algorithm
CHS conversion: Converting between disk addressing systems
Cyclic redundancy check: calculation of a check word
Parity: Simple/fast error detection technique. Is a number even or odd?
Diff: compare two sequences. An example ofDynamic 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
Application ofquantum computationto various categories of problems and algorithms
Grover's algorithm: provides quadratic speedup for many search problems
Shor's algorithm: providesexponentialspeedup for factorizing a number
Deutsch-Jozsa algorithm: criterion of balance for Boolean function
[sunting]Algoritma medis
Medical algorithm
Texas Medication Algorithm Project
[sunting]Lainnya
Astronomical algorithms
Banker's algorithm
Baum-Welch algorithm
Doomsday algorithm: day of the week
Levenberg-Marquardt nonlinear least squares fitting algorithm
Marzullo's algorithm: distributed clock synchronization
Page replacement algorithms
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
Konsep Algoritma Pemrograman
August 4th, 2009NuNo comments
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. Mendefinisikan masalah
2. Mencari solusinya
3. Menentukan algoritma
4. Menulis program
5. Menguji program
6. Mendokumentasikan program
7. Merawat programRead 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 StringIni 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 BooleanTipe 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.3. Tipe Data IntegerMerupakan tipe data bilangan bulat.
Tipe Data
Rentang nilai
Memori
Byte
0255
1 byte
Word
065.555
1 byte
Integer
-32.768 s.d 32.767
2 byte
Long Integer
-2.147.483.648
4 byte
4. Tipe Data RealMerupakan tipe data bilangan pecahan seperti real, single, double, comp, extend.
5. Tipe Data SubrangeMerupakan tipe data bilangan yang punya jangkauan nilai tertentu sesuai dengan definisi pada pemrogram.Example:Type Variabel=Nilai_awalNilai_akhir
6. Tipe Data EnumerasiMerupakan tipe data yang memiliki elemen-elemen tertentu yang disebut satu/satu dari bernilai konstanta integer sesuai dengan urutannya. Pada tipe data ini elemen masukan diwakili oleh suatu nama variable yang ditlis di dalam kurung.Example :Indeks_Hari = (Nol, Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu)
7. Tipe Data Array (Larik)Tipe data ini sudah terstruktur dengan baik, walaupun masih sederhana. Tipe data ini menampung sejumlah data dengan tipe data sama (homogen) dalam sebuah variabel.
Cara mendefinisikan tipe data array
Berdimensi satu
Var
Nama_Variabel_Array[1...N]of tipe_data
1 Nomor Indeks
Berdimensi dua
Var
Nama_Variabel_Array=Array[1...N,1...M]of tipe_data
2 buah Nomor Indeks
8. Tipe Data RecordTipe 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.
9. Tipe Data Array RecordTipe data array yang dibangun dari tipe data record.
10. Tipe Data CitraBerisi grafik/gambar yang banyak digunakan pada aplikasi video.
Example :Grafik perkembangan jumlah penduduk.
Perbedaan variabel dengan konstantaVariabel adalah peubah, suatu nama lokasi yang diinginkan untuk menampung tipe data tertentu yang akan diolah komputer. Sedangkan konstanta adalah suatu harga yang diberikan pada sebuah variabel dengan harga/nilai tidak berubah/selalu tetap.
Categories:Pascal,Programming AlgorithmsTags:algoritma,array,array record,boolean,char,data citra,enumerasi,integer,konstanta,real,record,string,subrange,tipe data,variabel
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 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.
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/