Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

dokumen-dokumen yang mirip
Kompleksitas Algoritma Euclidean dan Stein(FPB Biner)

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

Journal Speed Sentra Penelitian Engineering dan Edukasi Volume 9 No

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Kompleksitas Algoritma

Analisis dan Strategi Algoritma

Algoritma Brute Force

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

Penyelesaian Persamaan Linear Dalam Bentuk Kongruen

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Kompleksitas Algoritma

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Analisis Algoritma Bubble Sort

Teori Algoritma. Algoritma Perulangan

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

BAB 2 TINJAUAN PUSTAKA

Nama Mata Kuliah : Teori Bilangan Kode Mata Kuliah/SKS : MAT- / 2 SKS

BAB I PENDAHULUAN 1.1 Latar Belakang

Fungsi Rekursif PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

Strategi Algoritma Penyelesaian Puzzle Hanjie

Logika dan Algoritma Yuni Dwi Astuti, ST 2

Manusia itu seperti pensil Pensil setiap hari diraut sehingga yang tersisa tinggal catatan yang dituliskannya. Manusia setiap hari diraut oleh rautan

Penerapan Algoritma Brute Force di Permainan Nonogram

KOMPLEKSITAS ALGORITMA PENGURUTAN (SORTING ALGORITHM)

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Algoritma Brute Force

Pemfaktoran prima (2)

BAB 2 LANDASAN TEORI

R. Rosnawati Jurusan Pendidikan Matematika FMIPA UNY

Penerapan Algoritma Brute Force pada permainan Countdown Number

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

BAB II TINJAUAN PUSTAKA

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Algoritma Brute Force (lanjutan)

Analisis Kompleksitas Algoritma dalam Operasi BigMod

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

Algoritma Perulangan. Kuliah algoritma dan pemrograman

Kompleksitas Algoritma

II. TINJAUAN PUSTAKA. Pada bab ini akan diberikan konsep dasar (pengertian) tentang bilangan sempurna,

Decrease and Conquer

Algoritma & Pemrograman #1. Antonius Rachmat C, S.Kom, M.Cs

MAKALAH KRIPTOGRAFI CHINESE REMAINDER

Algoritma, Pseudo Code Flow Chart

Pembuktian Sifat Barisan Keterbagian Kuat pada Barisan Fibonacci

Algoritma Brute Force (lanjutan)

Kompleksitas Algoritma

TEORI BILANGAN. Bilangan Bulat Bilangan bulat adalah bilangan yang tidak mempunyai pecahan desimal, misalnya 8, 21, 8765, -34, 0.

Lembar Kerja Mahasiswa 1: Teori Bilangan

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

MENENTUKAN PRIMALITAS SEMUA BILANGAN YANG TERDAPAT PADA SELANG TERTENTU SECARA BRUTE FORCE

MAKALAH ALGORITMA DIVIDE AND CONQUER

BAB 2 LANDASAN TEORI

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

Disajikan pada Pelatihan TOT untuk guru-guru SMA di Kabupaten Bantul

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

FAKTOR DAN KELIPATAN KELAS MARS SD TETUM BUNAYA

Penentuan Hubungan Kompleksitas Algoritma dengan Waktu Eksekusi pada Operasi Perkalian

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

TINJAUAN PUSTAKA. Pada bab ini akan diberikan beberapa definisi teori pendukung dalam proses

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

BAB I NOTASI, KONJEKTUR, DAN PRINSIP

II. TINJAUAN PUSTAKA. Pada bab ini akan diberikan konsep dasar (pengertian) tentang bilangan sempurna,

Sieve of Eratosthenes, Algoritma Bilangan Prima

BAB 2 TINJAUAN PUSTAKA

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda


Pembagi Persekutuan Terbesar dan Teorema Bezout

CCH1A4 / Dasar Algoritma & Pemrogramanan

Algoritma Pendukung Kriptografi

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

Alih Kontrol dengan Flowchart

Pengantar Teori Bilangan

Decission : if & if else

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

UNIVERSITAS GUNADARMA

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Teori Bilangan (Number Theory)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

BAB II KETERBAGIAN. 1. Mahasiswa bisa memahami pengertian keterbagian. 2. Mahasiswa bisa mengidentifikasi bilangan prima

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

BAB II LANDASAN TEORI

MODUL PRAKTIKUM PERCABANGAN DAN PENGULANGAN

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Algoritma Brute Force pada Fluid Particle Engine

ALGORITMA DIVIDE AND CONQUER

Konstruksi Dasar Algoritma

Algoritma dan Struktur Data

STRATEGI DIVIDE AND CONQUER

ALGORITMA MENCARI LINTASAN TERPENDEK

HASIL DAN PEMBAHASAN. Algoritma Modular Exponentiation mempunyai kompleksitas sebesar O((lg n) 3 ) (Menezes et al. 1996).

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

Transkripsi:

Analisa Algoritma Faktor Persekutuan Terbesar (FPB) Menggunakan Bahasa Pemrograman C++ Fitri Dwi Lestari Program Studi Manajemen Informatika, AMIK BSI Pontianak Fitridl02@gmail.com Abstrak - The algorithm is said to be good if the algorithm can minimize the need for time and space. One type of algorithm that there is an algorithm to find the value of Greatest Common Divisor (GCD). Greatest Common Divisor (GCD) of two numbers is the largest positive integer that can divide two numbers depleted tersebut.ada some algorithms that I use to find the value of the GCD as the Euclidean algorithm, the algorithm Stein, Brute Force algorithm, and the algorithm Dijkstra Algorithm Bishops. In this paper the authors analyze some of the algorithms used in the calculation of Greatest Common Divisor (GCD)and made in the programming language C ++. Of some existing algorithms on calculation GCD numbers, Brute Force algorithm is quite efficient algorithms are used because we are not using complex calculations. Keywords: Algorithms, FPB, Euclidean algorithm, Stein Algorithm, Brute Force Algorithm, Dijkstra's algorithm, Bishops Algorithm Abstrak - Algoritma dikatakan baik jika algoritma dapat meminimalkan kebutuhan ruang dan waktu. Salah satu jenis algoritma yang ada algoritma untuk menemukan nilai Divisor umum Greatest (GCD). Greatest Divisor Umum (GCD) dari dua angka adalah bilangan bulat positif terbesar yang dapat membagi dua nomor habis tersebut.ada beberapa algoritma yang saya gunakan untuk menemukan nilai GCD sebagai algoritma Euclidean, algoritma Stein, algoritma Brute Force, dan algoritma Dijkstra algoritma Uskup. Dalam tulisan ini penulis menganalisis beberapa algoritma yang digunakan dalam perhitungan Divisor umum Greatest (GCD) dan dibuat dalam bahasa pemrograman C ++. Dari beberapa algoritma yang ada pada nomor perhitungan GCD, Brute Force algoritma ini cukup efisien algoritma yang digunakan karena kita tidak menggunakan perhitungan yang rumit. Kata kunci: Algoritma, FPB, Algoritma Euclidean, Algoritma Stein, Algoritma Brute Force, Algoritma Dijkstra, Algoritma Bishop 1. PENDAHULUAN Seperti yang diketahui bersama bahwa algoritma merupakan suatu pemecahan masalah yang sering digunakan dalam kehidupan sehari-hari, algoritma juga biasanya dijadikan alternatif pencarian /perhitungan yang banyak digunakan dalam bentuk program, karna dianggap lebih efektif dan efisien. Salah satu permasalahan yang dapat dipecahkan dengan pencarian algoritma suatu bilangan yaitu perhitungan FPB (Faktor Persekutuan Terbesar). Faktor Persekutuan Terbesar (FPB) merupakan dua bilangan bulat positif terbesar yang dapat membagi habis kedua bilangan tersebut. Dalam bahasa Inggris FPB biasa juga dikenal dengan Greatest Common Divisor (GCD). Dari perhitungan dua buah bilangan tersebut dicari persekutuan terbesar yang akan menjadi hasil akhir dari dua bilangan tersebut. Dalam memecahkan suatu masalah pencarian nilai terbesar dibutuhkan sebuah algoritma penyelesaian secara komputasi. Algortima merupakan kumpulan beberapa instruksi atau perintah yang dibuat secara jelas dalam penyelesaian suatu masalah. Kumpulan instruksi atau perintah yang dimaksud dibentuk dari suatu bahasa pemrograman yang dapat dimengerti oleh komputer. Kumpulan instruksi atau perintah tersebut berupa langkah-langkah atau tahapan-tahapan yang diberikan untuk menyelesaikan suatu pekerjaan atau suatu masalah secara cepat,mudah, dan efisien. Untuk mencari sebuah FPB (Faktor Persekutuan Terbesar) dari dua buah bilangan bulat, kita dapat menggunakan beberapa algoritma diantaranya: 1. Algoritma Euclidean 2. Algoritma Stein 3. Algoritma Brute Force 4. Algoritma Dijkstra 5. Algoritma Bishops Tujuan dari penelitian ini yaitu untuk mengetahui algoritma mana yang paling mudah penggunaannya dan perhitungan yang paling singkat dalam suatu FPB (Faktor Persekutuan Terbesar), serta di buat dalam bahasa pemrograman C++. 1.1 Algoritma Algoritma pada dasarnya merupakan alur pikiran dalam menyelesaikan suatu pekerjaan, dan dituangkan dalam bentuk tertulis yang dapat dimengerti oleh orang lain Menurut Utami dan Sukrisno (2005:20), Algortima adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu atau metode dan tahapan sistematis dalam program. ISSN : 2338 8161 63

Menurut Rinaldi (2007:4), Algoritma merupakan prosedur komputasi yang terdefinisi dengan baik yang menggunakan bebebrapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran atau lebih detailnya disimpulkan bahwa algortima adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran. Menurut Donald Kunth dalam buku Suarga (2012:4), Sebuah algorima juga harus memenuhi kriteria sebagai berikut: 1. Input Suatu algoritma memiliki input atau kondisi awal sebelum dilaksanakan, bisa berupa nilai-nilai peubah yang diambil dari himpunan kusus. 2. Output Suatu algoritma akan mengahsilkan output setelah dilaksanakan atau algoritma akan mengubah kondisi awal menjadi kondisi akhir, dimana nilai output diperoleh dari nilai input yang telah diproses melalui algoritma. 3. Definiteness Langkah-langkah yang dituliskan dalam algoritma terdefinisi dengan jelas sehingga mudah dilaksanakan oleh pengguna algoritma. 4. Finiteness Suatu Algoritma harus memberi kondisi akhir setelah jumlah langkah yang terbatas jumlahnya dilakukan terhadap setiap kondisi awal atau input yang diberikan. 5. Effectiveness Setiap langkah dalam algoritma bisa dilaksanakan dalam suatu selang waktu tertentu sehingga pada akhirnya didapatkan suatu yang diharapkan. 6. Generality Setiap langkah alhoritma berlaku untuk setiap himpunan input yang sesuai dengan persoalan yang diberikan, tidak hanya untuk himpunan tertentu. 1.2 Kompleksitas Algoritma Terdapat dua macam kompleksitas algoritma, yaitu Kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu disimbolkan dengan T(n) dan kompleksitas ruang S(n). Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankkan algoritma sebagai fungsi dari ukuran masukan n. Komplesitas ruang, S(n) diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n(1). [4] Setiap algoritma memiliki dua buah ciri khas yang dapat digunakan sebagai parameter pembanding, yaitu jumlah proses yang dilakukan dan jumlah memori yang digunakan untuk melakukan proses. Jumlah proses ini dikenal sebagai kompleksitas waktu yang disimbolkan dengan T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n, dimana ukuran masukan (n) merupakan jumlah data yang diproses oleh sebuah algoritma. Sedangkan jumlah memori dikenal sebagai kompleksitas ruang yang disimbolkan dengan S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat didalam algoritma sebagai fungsi dari masukan n. Dengan menggunakan kompleksitas waktu atau kompleksitas ruang, dapat ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring dengan meningkatnya ukuran masukan (n). Dalam setiap algoritma, terdapat berbagai jenis operasi, di antaranya : a. Operasi baca tulis. b. Operasi aritmatika (+ - / *) c. Operasi pengisian nilai (assignment) d. Operasi pengaksesan elemen larik e. Operasi pemanggilan fungsi ataupun prosedur Bedasarkan kodisi dari kompleksitas algortima ada 3 kondisi yang dilihat dari beberapa kasus yaitu : a. Kondisi Best Case Waktu tempuh yang bernilai minimum dari suatu fungsi F(N) untuk setiap input atau disebut juga suatu keadaan yang terbaik dari suatu proses di dalam algoritma. b. Kondisi Worst Case Waktu tempuh yang bernilai maksimum dari suatu fungsi F(N) untuk setiap input atau keadaan ini disebut juga dengan keadaan analog terburuk. c. Kondisi Avarage Case Merupakan suatu keadaan dari suatu waktu tempuh yang equivalen dengan nilai eksperimentasi dari fungsi F(N) untuk setiap input.[5] 1.3 FPB (Faktor Persekutuan Terbesar) Menurut Erna (2011:7), FPB adalah singkatan dari Faktor Persekutuan Terbesar. ISSN : 2338 8161 64

Faktor Persekutuan Terbesar (FPB) dari dua bilangan adalah bilangan bulat positif terbesar yang dapat membagi habis kedua bilangan tersebut. Dalam bahasa Inggris FPB biasa juga dikenal dengan Greatest Common Divisor (GCD). 1.4 Algoritma Euclidean Algoritma Euclidean adalah metode yang efisien untuk menghitung pembagi umum terbesar (FPB) dari dua bilangan bulat tanpa meninggalkan sebuah sisa. Algoritma Euclidean juga memiliki aplikasi teoritis dan praktis. Algoritma ini adalah elemen kunci dari algoritma RSA, sebuah enkripsi public-key metode yang luas digunakan dalam perdagangan elektronik. Hal ini digunakan untuk memecahkan persamaan Diophantine, Algoritma Euclidean juga dapat digunakan dalam metode rantai untuk mencari akar Sturm nyata dari polinomial, dan dalam beberapa algoritma faktorisasi bilangan bulat yang modern. Konsep dari Algoritma Euclidean ini adalah menghitung bilangan yang lebih besar (m) dibagi dengan bilangan yang lebih kecil (n). Hasil sisa pembagian m dan n disimpan dalam sebuah bilangan r. Kemudian m diisi dengan nilai n dan n diisi dengan nilai r. Jika hasil sisa pembagian m dan n belum nol maka lakukan terus perulangan pembagian hingga sisanya nol. 1. Jika n=0 maka m adalah FPB(m,n); stop. Tetapi jika n 0 Lanjutkan ke langkah 2. 2. Bagilah m dengan n dan misalkan r adalah sisanya. 3. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1. [4] Contoh: FPB (275,51); 275=5.51+ 20 51 = 2.20 + 11 20 = 1.11 + 9 11 = 1.9 + 2 9 = 4.2 + 1 2 = 1.1 + 1 1 = 1.1 + 0 Karena sisa terakhir adalah nol maka FPB dari 275 dan 51 adalah sisa sebelumnya yaitu 1. FPB(797, 522); 797 =1.522 + 275 522=1.275 + 247 275 =1.247 + 28 247 =1.28+ 23 28 = 1.23 + 5 23 = 4. 5 + 3 5 = 1. 3 + 2 3 = 1. 2 + 1 2 = 1.1 + 1 1 = 1.1 + 0 Karena sisa terakhir adalah nol maka FPB dari 797 dan 522 adalah sisa sebelumnya yaitu 1. 1.5 Algoritma Stein Algoritma Stein(Algoritma FPB Biner) adalah algoritma yang menghitung pembagi umum terbesar dari dua bilangan bulat nonnegatif dengan menerapkan identitas-identitas secara berulang kali.[3] Konsep algoritma ini dipakai identitas yang berulang sebagai berikut: 1. gcd(0, v) = v, karena bilangan apapun membagi 0 dan v adalah bilangan terbesar yang membagi v. Sama halnya, gcd(u, 0) = u. gcd(0, 0) tidak dapat didefinisikan. 2. Jika u and v keduanya genap, maka gcd(u, v) = 2 gcd(u/2, v/2), karena 2 adalah pembagi keduanya. 3. Jika u genap dan v ganjil, maka gcd(u, v) = gcd(u/2, v), karena 2 bukan pembagi keduanya. Sama halnya, jika u ganjil dan v genap, maka gcd(u, v) = gcd(u, v/2). 4. Jika u dan v keduanya ganjil, dan u v, maka gcd(u, v) = gcd((u v)/2, v). Jika keduanya ganjil dan u < v, maka gcd(u, v) = gcd((v-u)/2, u). Ini merupakan kombinasi satu langkah dari algoritma Euclid, yang menggunakan pengurangan setiap langkah, dan sebuah aplikasi dari langkah 3. Pembagian oleh 2 menghasilkan sebuah integer karena perbedaan dari dua angka ganjil adalah genap. 5. Ulangi langkah 3 4 sampai u = v, (atau satu langkah lagi) sampai u = 0. Dalam kasus ini, hasilnya adalah 2kv, di mana k ISSN : 2338 8161 65

adalah faktor dari 2 yang ditemukan di langkah 2. [4] Contoh: Mencari FPB(2132, 2541); 1. FPB(2132, 2541) 2. FPB(2132, 2541) 3. FPB(1066, 2541) 4. FPB(533, 2541) 5. FPB(533, 1004) 6. FPB(533, 502) 7. FPB(533, 201) 8. FPB(166,201) 9. FPB(83,201) 10. FPB(83,59) 11. FPB(12,59) 12. FPB(6,59) 13. FPB(3,59) 14. FPB(3,28) 15. FPB(3,14) 16. FPB(3,7) 17. FPB(3,2) 18. FPB(3,1) 19. FPB(1,1) Maka FPB(2132, 2541 )=FPB(1,1)=1. 1.6 Algoritma Brute Force Brute force adalah sebuah pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah (problem statement) dan definisi konsep yang dilibatkan Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung, dan dengan cara yang jelas (obvious way) meskipun bukan merupakan solusi yang paling mangkus. Algoritma ini digunakan untuk menghitung bilangan bulat positif mulai dari n hingga kebawah sampai menemukan satu bilangan yang dapat membagi m dan n secara merata. Algoritma: 1- Gunakan dua bilangan positif m,n, dimana m<n. 2- Nilai i = m. 3- While (m mod i <> 0 or n mod i <> 0) do i=i-1; GCD = i;.[1] Contoh : M N I 4 11 4 3 GCD = 1 1.7 Algoritma Dijkstra Algoritma ini dikembangkan oleh Dijkstra yang merupakan ahli matematika Belanda dan seorang ilmuwan komputer. Konsep algoritma ini adalah : jika m > n, maka GCD ( m-n, n ). dan jika m<n, maka GCD (M, N-M) Algoritma ini dikatakan baik bahwa ia menggunakan algoritma struktur data rekursi [1] Algoritma: For m,n>0, GCD(m,n)= m if m=n GCD(m-n,n) if m>n Contoh : m N GCD 250 100 GCD (250,100) 150 100 GCD (150,100) 50 100 GCD (50,100) 50 50 GCD (50,50) FPB = 5 1.8 Algoritma Bishop s Konsep dari algoritma Bishop s ini adalah jika angka bilangan besar dan kecil keduanya kelipatan k, maka besar - kecil merupakan kelipatan dari k. Catatan: besar - kecil lebih kecil dari yang besar, jadi kami telah mengurangi masalah dan lebih mudah untuk dipecahkan. Algoritma: 1. Masukkan dua bilangan bulat positif x,y 2. While ( x <> y ) If (x>y) then X=x-y Else { temp = y y=x x=temp } Return(x) [1] 2 1 ISSN : 2338 8161 66

Contoh: X Y 50 60 60 50 10 50 50 10 40 10 30 10 Gambar 1. Implementasi Program Algoritma Euclidean 3.1.2 Algoritma Stein Stein menggunakan antar muka bahasa pemrograman C++, perhitungan menggunakan algoritma Stein pada C++: 20 10 10 10 FPB = 10 1.9 Pemrograman C++ Menurut Joni dan Raharjo (2011:3) mengemukakan bahwa bahasa C merupakan bahasa yang powerful dan fleksibel yang telah terbukti dapat menyelesaikan programprogram besar seperti pembuatan system operasi, pengolah kata, pengolahan gambar (seperti pembuatan game) dan juga pembuatan kompilator untuk bahasa pemrograman baru. Joni dan Raharjo (2011:3) mengemukakan bahwa bahasa C merupakan bahasa yang portabel sehingga dapat dijalankan di beberapa sistem operasi yang berbeda. Sebagai contoh program yang kita tulis dalam sistem operasi Windows dapat kita kompilasi di dalam sistem operasi Linux dengan sedikit ataupun tanpa perubahan sama sekali. 2. PEMBAHASAN Pada pembahasan ini akan membahas tentang implementasi algoritma yang digunakan dalam perhitungan FPB dengan menggunakan bahasa pemrograman C++. 3.1 Implementasi Program 3.1.1 Algoritma Euclidean euclidean menggunakan antar muka bahasa pemrograman C++, perhitungan menggunakan algoritma Euclidean pada C++: Gambar 2. Implementasi Program Algoritma Stein 3.1.3. Algoritma Brute Force Brute Force menggunakan antar muka bahasa pemrograman C++, perhitungan menggunakan algoritma Brute Force pada C++: Gambar 3. Implementasi Program Algoritma Brute Force 3.1.4. Algoritma Dijkstra Dijkstra menggunakan antar muka bahasa pemrograman C++, perhitungan menggunakan algoritma Dijkstra pada C++: Gambar 4. Implementasi Program Algoritma Dijkstra ISSN : 2338 8161 67

3.1.5. Algoritma Bishops Bishops menggunakan antar muka bahasa pemrograman C++, perhitungan menggunakan algoritma Bishops pada C++: Gambar 4. Implementasi Program Algoritma Bishops 3. KESIMPULAN Dari hasil analisis tiap algoritma dalam menghitung nilai FPB dapat disimpulkan: 1. Diantara lima algoritma dalam proses perhitungan Faktor Persekutuan Terbesar (FPB), algoritma Brute Force adalah algoritma yang sederhana dan mudah untuk dipahami, karna proses perhitungannya hanya mencari sisa bagi antara dua bilangan bulat positif. 2. Algoritma Stein memerlukan perhitungan yang kompleks dan cukup rumit untuk dipahami dibandingkan dengan algoritma lainnya. 3. Dari kompilasi yang dilakukan menghasilkan output yang sama tetapi dengan proses yang berbeda dari setiap algoritma yang digunakan. 4. DAFTAR PUSTAKA [1] Altarawneh. 2011. A Comparison of Several Greatest Common Divisor(GCD) Algorithms. Volume 26-No.5, Juli 2011 (http://www.ijcaonline.org/volume26/numb er5/pxc3874253.pdf, Diakses 20 Januari 2016) [2] Himawati,Erna. 2011. Menghitung Faktor Persekutuan Terbesar(FPB) dan Kelipatan Persekutuan Terkecil (KPK). Jakarta: Be Champion. [3] Joni, Budi Raharjo. 2011. Pemrograman C dan Implementasinya. Bandung: Informatika. [4] Okharyadi. 2007. Kompleksitas Algoritma Euclidean dan Stein(FPB Biner)(http://informatika.stei.itb.ac.id/~rinal di.munir/matdis/2011-2012/makalah2011/makalah-if2091-2011-077.pdf,, Diakses 20 Januari 2016) [5] Ryan Rheinadi. 2010. Analisis Algoritma Bubble Sort (http://informatika.stei.itb.ac.id/~rinaldi.mun ir/matdis/2009-2010/makalah0910/makalahstrukdis0910-032.pdf, Diakses 20 Januari 2016) [6] Suarga. 2012. Algoritma dan Pemrograman. Yokyakarta: Andi. [7] Utami,Sukrisno. 2005. 10 Langkah Belajar Logika dan Algoritma Menggunakan Bahasa C dan C++ di GNU/Linux. Yokyakarta: Andi [8] Widhaprasa. 2007. Penerapan Algoritma Brute Force Dalam Mencari Faktor Prima Pada Suatu Bilangan (http://informatika.stei.itb.ac.id/~rinaldi.mu nir/stmik/2010-2011/makalah2010/makalahstima2010-103.pdf, Diakses 19 Januari 2016) ISSN : 2338 8161 68