• Tidak ada hasil yang ditemukan

BAB 2 TINJAUAN PUSTAKA

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 TINJAUAN PUSTAKA"

Copied!
9
0
0

Teks penuh

(1)

BAB 2

TINJAUAN PUSTAKA

2.1 Konsep Dasar Algoritma

Algoritma adalah kumpulan instruksi atau perintah yang dibuat secara jelas dan sistematis berdasarkan urutan yang logis (logika) untuk penyelsaian suatu masalah. French, C.S (1948) menyatakan sejumlah konsep yang mempunyai relevansi dengan masalah rancangan program yaitu kemampuan komputer, kesulitan dan ketepatan. Knuth (1973) menyatakan algoritma fundamental. Untuk keperluan matematika dan program komputer metode yang sering digunakan yaitu : [3]

1. Diagram Alir (Flowchart) 2. Kode Semu (Pseudocode) 3. Algoritma Fundamental.

Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output, dan effectiveness. Sehingga dalam merancang sebuah algoritma ada 3 komponen yang harus ada yaitu :

1. Komponen masukan (input)

Komponen ini biasanya terdiri dari pemilihan variabel, jenis variabel, tipe variabel, konstanta dan parameter (dalam fungsi).

2. Komponen keluaran (output)

Komponen ini merupakan tujuan dari perancangan algoritma dan program. Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan

(2)

dalam komponen keluaran. Karakteristik keluaran yang baik adalah benar (menjawab) permasalahan dan tampilan yang ramah (user friendly).

3. Komponen Proses (Proccesing)

Komponen ini merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah , logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dan lain-lain).

Gambar 2.1. Struktur Hubungan dan Jenis Algoritma

2.2 Defenisi Analisis Algoritma

Algoritma tidak selalu memberikan hasil terbaik yang mungkin diperoleh,maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut (Liu, C.L, 1995, P271). Sekali sebuah algoritma diberikan kepada sebuah permasalahan dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan besar biaya yang diperlukan algoritma tersebut untuk memeroleh hasil itu. Proses inilah yang disebut dengan analisis algoritma.

Konsep Logika Matematika Format Algoritma Algoritma Fundamental, 1973 Pseudocode Flowchart

(3)

Ukuran biaya eksekusi suatu algoritma yang paling sering digunakan adalah lamanya waktu diperlukan. Namun juga masih ada ukuran-ukuran lainnya, misalnya besarnya memori yang diperlukan untuk mengeksekusi algoritma tersebut (Liu, C.L, 1995, P 272) [11]. Maksud dilakukannya analisis algoritma (Horowitz, Elis dan Sartaj Sahni, 1978, p1) adalah untuk :

1. Memenuhi aktivitas intelektual

2. Meramalkan suatu hal yang akan terjadi atau yang akan didapat algoritma tersebut. 3. Mengetahui efektifitas suatu algoritma dibanding dengan algoritma yang lain untuk

persoalan yang sama.

2.3 Kompleksitas Waktu Algoritma Dan Masalah

Algoritma tidak selalu memberikan hasil terbaik yang mungkin diperoleh maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut (Liu, C.L, 1995, p271). Sekali sebah algoritma diberikan kepada sebuah permasalahan dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan besar biaya yang diperlukan algoritma tersebut untuk memperoleh hasil itu. Proses inilah yang disebut analisis algoritma (Weiss, Mark Allen,p149). [11]

Ukuran biaya eksekusi suatu algoritma yang paling sering digunakan adalah lamanya waktu diperlukan. Namun juga masih ada ukuran-ukuran lainnya, misalnya besarnya memori yang diperlukan untuk mengeksekusi algoritma tersebut (Liu, C.L, 1995, p272).

Dua buah algoritama yang berbeda dapat digunakan memecahkan masalah yang sama dan mungkin saj mempunyai kompleksitas waktu (time complexity) yang sangat berbeda (Liu. C.L, 1995, P277). Kompleksitas waktu algoritma terbaik untuk memecahkan masalah tersebut dinamakan sebagai kompleksitas waktu (time complexity of problem) (Liu, C.L, 1995, p277).

(4)

2.3.1 Big O(O)

Notasi big O pertama kali diperkenalkan oleh seorang teoritis bilangan bernama Paul Bachmann pada tahun 1894, didalam buku keduanya yang berjudul Analytische Zahlentheorie (“analytic number teory”). Dalam teori kompleksitas komputasi, notasi big O sering digunakan untuk menjelaskan bagaimana ukuran data masukan mempengaruhi sebuah kegunaan algoritma dari sumber daya komputasi (biasanya running time atau memori). Definisi pertama dalam pengukuran kompleksitas suatu masalah adalah Big O (Weiss dan Mark Allen, 1996, p161).

Definisi :

T(n) = O(f(n)), jika ada konstanta positif c dan dimana T(n) < c(f(n)), ketika n > . T(n) = O(f(n)), artinya T(n) berorde paling besar f(n) bila terdapat konstanta c dan sehingga T(n) <= c(f(n)) untuk n >=

2.3.2 Big Omega (Ω)

Defenisi kedua dalam pengukuran kompleksitas suatu masalah adalah Big Omega. (Weiss dan Mark Allen, 1996, p161).

Definisi :

T(n) = Ω(f(n)), jika ada konstanta positif c dan dimana T(n) > c(F(n)), ketika N >

(5)

2.3.3 Big Theta (

ɵ

)

Definisi ketiga dalam pengukuran kompleksitas suatu masalah adalah Big Theta. (Weiss dan Mark Allen, 1996, p161).

Definisi :

T(n)=

ɵ

(f(n)), jika dan hanya jika T(n) = O(f(n)) dan T(n) = Ω(f(n))

Suatu algoritma dikatakan anggota Θ(h(n)) jika algoritma itu adalah anggota O(h(n)) dan anggota Ω(h(n)). Contoh : Karena T(n) = + adalah angota O( ) dan anggota Ω( ), maka T(n) adalah anggota Θ( ). [2]

Contoh : For i ← 1 to n do For j ← 1 to i do For k ← j to n do a ← a + 1 end for end for end for

Nilai O-besar, Ω-besar, dan Θ-besar dari algoritma di atas adalah sebagai berikut :

Untuk i = 1,

Untuk j = 1, jumlah perhitungan = n kali Untuk i = 2,

Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n–1 kali

Untuk i = n,

Untuk j = 1, jumlah perhitungan = n kali Untuk j = 2, jumlah perhitungan = n –1 kali

(6)

...

Untuk j = n, jumlah perhitungan = 1 kali.

T(n) = + + + ... + 1 = n(n + 1)(2n + 1)/6

= + + 1.

Diperoleh T(n) ≤ 3untuk n ≥ 4 dan T(n) ≥ 2 untuk n ≥ 1. Sehingga diperoleh : T(n) = O( ) = Ω( ) = Θ( ).

2.4 Algoritma Greedy

Algoritma Greedy merupakan metode yang paling umum digunakan untuk memecahkan masalah optimasi. Permasalahan optimasi adalah persoalan mencari solusi optimum yaitu maksimasi dan minimasi. Algoritma ini memecahkan masalah langkah per langkah, pada setiap langkah :

1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi kedepan dengan perinsip “take what you can get now!”.

2. Berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global.

Contoh permasalahan optimasi adalah seperti masalah penukaran uang. Misalnya sejumlah uang senilai 32. Tukarkan dengan koin-koin uang (1, 5, 10, 25) yang ada. Berapa jumlah minimum koin yang diperlukan untuk penukara tersebut?.

(7)

32 = 1+1+1+…+1 (32 koin) 32 = 5+5+5+5+10+1+1 (7 koin) 32 = 10+10+10+1+1 (5 koin) 32 = 25+5+1+1 (4 koin) Jumlah minimum penukaran uang sebanyak 4 koin.

Keuntungan Greedy adalah dengan pengambilan pilihan terbaik disetiap langkah (optimum lokal) diharapkan akan mendapatkan optimum global. Bila algoritma Greedy optimum, maka keomptimalannya dapat dibuktikan secara matematis. Meskipun begitu, Greedy tidak selalu memperoleh solusi optimum untuk keseluruhan masalah dikarenakan Greedy tidak melakukan operasi secara exhaustive search kepada semua data dan seringkali tidak mementingkan solusi optimum [6].

Dalam pencarian kartu tertinggi pada kartu, implementasi Greedy diletakkan pada kartu yang diurutkan secara descending dengan selection sort. Berikut contohnya :

1. 5 kartu yang terpilih secara random

2. Kartu di urutkan berdasarkan nilai dan corak dari maximum ke minimum (selection sort). Sehingga didapat kartu tertinggi paling kiri.

(8)

2.5 Algoritma Brute Force

Brute Force adalah sebuah pendekatan yang lempang (straight forward) untuk memecahan suatu masalah, biasanya didasarkan pada pernyataan masalah (problem statement) dan defenisi konsep yang dilibatkan. Algoritma Brute Force memecahkan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way). [7]

Kelebihan algoritma Brute Force adalah cara berpikir yang mudah karna langsung pada pernyataan masalah. Algoritma ini dapat digunakan untuk memecahkan hampir sebagian masalah (wide applicability). Disamping itu Brute Force juga menghasilkan algoritma baku (standar) untuk tugas-tugas komputasi seperti penjumalahan dan perkalian n buah bilanagan.

Kekurangan dari algoritma ini tentunya adalah butuh banyak jumlah langkah dalam menyelesaikan suatu masalah sehingga butuh banyak memori dan resource yang besar dan waktu yang lama sehingga jarang menghasilkan algoritma yang mangkus.

Berikut adalah contoh implementasi algoritma Brute Force dalam pencarian kartu tertinggi pada kartu remi :

1. 5 kartu yang terpilih secara random dan dieksekusi langsung.

2. Pencarian kartu tertinggi dilakukan mulai dari kanan sampai semua kartu habis dibandingkan. Jika nilai dan corak lebih besar akan di swap. Jika lebih kecil tidak akan dilakukan swap.

(9)

Sesuai dengan aturan permainan poker, urutan nilai kartu remi dari nilai terkecil ke nilai terbesar adalah 2, 3, 4, 5, 6, 7, 8, 9, 10, J(Jack), Q(Queen), K(King), As. Jika dalam pencarian kartu tertinggi terdapat nilai yang sama maka akan dipilih corak mana yang lebih tinggi. Sehingga corak kartu poker dalam pencarian kartu tertinggi disini berlaku. Berikut adalah kelas corak kartu dari tertinggi sampai terendah : [4]

1. Sekop 2. Hati 3. Keriting 4. Wajik

Gambar

Gambar 2.1. Struktur Hubungan dan Jenis Algoritma

Referensi

Dokumen terkait

Tujuan dilakukan penelitian ini untuk mengetahui pengaruh pemberian minyak ikan patin (Pangasius hypophtalmus) terhadap fungsi kognitif mencit putih (Mus musculus

Memahami al-Qur’a&gt;n dengan hanya menimbang konteksnya tanpa membawa hasil pemahaman tersebut untuk diproyeksikan pada kebutuhan-kebutuhan kontemporer, maka hanya menjadi kajian

Bagi siswa, penelitian ini dapat memberikan motivasi dan semangat belajar serta semakin aktif dalam proses belajar mengajar yang mengarah kepada tercapainya tujuan

Tindakan forensik nuklir secara prinsip dan garis besar identik dengan tindakan forensik yang telah dilaksanakan oleh POLRI secara umum dan telah diatur dalam SOP Kepolisian RI,

(1) PA/KPA atau Kementerian/Lembaga/Pemerintah Daerah menyampaikan surat permintaan rekomendasi kepada APIP yang bersangkutan berdasarkan usulan penetapan sanksi

Sistem ini berfungsi sebagai bahan evaluasi dalam menentukan kebijakan berdasarkan kebutuhan masing-masing wilayah per kecamatan atau per kelurahan meliputi Informasi penyebaran

Bagi setiap ayat, anda tidak boleh menyenaraikan lebih daripada satu kesalahan penggunaan kata atau istilah dan satu kesalahan tatabahasa.. Anda tidak perlu menyalin ayat

Seperti yang dikutip dari Kotler and Lee, Corporate Social Responsibility (CSR) atau tanggung jawab perusahaan adalah komitmen untuk meningkatkan kesejahteraan masyarakat