16
Algoritma Dari Wikipedia bahasa Indonesia, ensiklopedia bebas Belum Diperiksa Diagram Alur sering digunakan untuk menggambarkan sebuah algoritma. 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

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/