Anda di halaman 1dari 31

TUGAS

ALGORITMA DAN PEMROGRAMAN

OLEH :

NAMA :ilham syafaat


NIM : 017-650-091
KELAS : C Angkatan (2017)

TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS DAYANU IKHSANUDDIN
BAUBAU
2017

1
KASUS I

ALGORITMA DALAM SUATU BIDANG KEILMUAN

 Algoritme graf

1. Algoritme Bellman-Ford
Menghitung jarak terpendek pada graf berbobot, di mana sisi bisa memiliki bobot negatif.

2. Algoritme Dijkstra
Menghitung jarak terpendek pada graf berbobot, tanpa sisi berbobot negatif.

3. Algoritme Floyd-Warshall
Menghitung solusi jarak terpendek untuk semua pasang titik pada sebuah graf berarah dan
berbobot.

4. Algoritme Kruskal
Algoritma Kruskal adalah algoritma untuk mencari pohon merentang minimum secara
langsung didasarkan pada algoritma MST (Minimum Spanning Tree) umum.

5. Algoritme Prim
Sebuah algoritma dalam teori graf untuk mencari pohon rentang minimum untuk sebuah
graf berbobot yang saling terhubung.

6. Algoritme Boruvka
Sebuah algoritma dalam teori graf untuk mencari pohon rentang minimum untuk sebuah
graf berbobot yang saling terhubungsebuah algoritma dalam teori graf untuk mencari pohon
rentang minimum untuk sebuah graf berbobot yang saling terhubung.

7. Algoritme Ford-Fulkerson
Menghitung aliran maksimal di dalam graf.

8. Algoritme Edmonds-Karp
Implementasi dari Ford-Fulkerson.

9. Spring based algorithm


Algoritme untuk penggambaran draf.

2
10. Algoritme Hungaria
Algoritme optimasi kombinatorial yang menyelesaikan masalah berdasarkan pembagian
kerja dalam waktu polinomial. Algoritme ini mudah dimengerti dan diterapkan untuk
menyelesaikan soal yang berupa penugasan dengan cara menemukan pemasangan sempurna

 .Algoritme pencarian

11. Pencarian linear


Mencari sebuah item pada sebuah list tak berurut.

12. Algoritme seleksi


Mencari item ke-k pada sebuah list.

13. Pencarian biner


Menemukan sebuah item pada sebuah list terurut.

14. Pohon Pencarian Biner


Pohon pencarian biner adalah sebuah struktur data dasar yang digunakan untuk membentuk
struktur data yang lebih abstrak seperti set, multiset, dan array asosiatif.

15. Pencarian Breadth-first


Menelusuri sebuah graf tingkatan demi tingkatan.

16. Pencarian Depth-first


Menelusuri sebuah graf cabang demi cabang.

17. Pencarian Best-first


Menelusuri sebuah graf dengan urutan sesuai kepentingan dengan menggunakan antrian
prioritas.

18. Pencarian pohon A*


Kasus khusus dari pencarian best-first.

19. PencarianPrediktif
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.

3
20. Tabel Hash
Mencari sebuah item dalam sebuah kumpulan tak berurut dalam waktu O(1).

 Algoritme string

21. Algoritme brute force


Serangan brutal (bahasa Inggris:Brute-force attack) adalah sebuah teknik serangan
terhadap sebuah sistem keamanan komputer yang menggunakan percobaan terhadap semua
kunci yang mungkin.

22. Algoritme Aho-Corasick


Dalam ilmu komputer, algoritma Aho-Corasick adalah algoritma pencarian string yang
ditemukan oleh Alfred V. Aho dan Margaret J. Corasick. Ini adalah sejenis algoritma
pencocokan kamus yang menempatkan elemen dari serangkaian string terbatas ("kamus")
dalam teks masukan.

23. Algoritme Bitap


Algoritma bitap (juga dikenal sebagai algoritma shift-or, shift-and or Baeza-Yates-Gonnet)
adalah algoritma pencocokan string perkiraan. Algoritma tersebut mengatakan apakah teks
yang diberikan mengandung substring yang "kira-kira sama" dengan pola tertentu.

24. Algoritme Boyer-Moore


Algoritme ini dianggap sebagai algoritme yang paling efisien pada aplikasi umum. Tidak seperti
algoritme pencarian string yang ditemukan sebelumnya, algoritme Boyer-Moore mulai
mencocokkan karakter dari sebelah kanan pattern. Ide di balik algoritme ini adalah bahwa dengan
memulai pencocokan karakter dari kanan, dan bukan dari kiri, maka akan lebih banyak informasi
yang didapat.

25. Algoritme Knuth-Morris-Pratt


Algoritme Knuth-Morris-Pratt adalah salah satu algoritme pencarian string, dikembangkan secara
terpisah oleh Donald E. Knuth pada tahun 1967 dan James H. Morris bersama Vaughan R. Pratt
pada tahun 1966, namun keduanya mempublikasikannya secara bersamaan pada tahun 1977.
26. Algoritme Karp-Rabin
Dalam ilmu komputer, algoritma Rabin-Karp atau algoritma Karp-Rabin adalah algoritma
pencarian string yang dibuat oleh Richard M. Karp dan Michael O. Rabin (1987) yang
menggunakan hashing untuk menemukan satu dari sekumpulan string pola dalam sebuah
teks.

4
 Approximate matching

27. Levenshtein distance


Dalam teori informasi, Linguistik dan ilmu komputer, jarak Levenshtein adalah metrik
string untuk mengukur perbedaan antara dua urutan. Secara informal, jarak Levenshtein
antara dua kata adalah jumlah minimum suntingan karakter tunggal (insertions, deletions or
substitutions) yang diperlukan untuk mengubah satu kata ke kata lainnya. Hal ini dinamai
Vladimir Levenshtein, yang mempertimbangkan jarak ini pada tahun 1965.

 Algoritme penyusunan

28. Tree shot


Semacam algoritma yang membangun pohon pencarian biner dari elemen yang akan
diurutkan, dan kemudian melintasi pohon (in-order) sehingga unsur-unsur itu keluar dalam
urutan yang diurutkan. Penggunaannya yang khas adalah menyortir elemen secara online:
setelah setiap penyisipan, kumpulan elemen yang terlihat sejauh ini tersedia dalam urutan
yang diurutkan.

29. Bogosort
Dalam ilmu komputer, bogosort adalah fungsi pemilahan yang sangat tidak efektif
berdasarkan paradigma menghasilkan dan menguji. Fungsi tersebut menghasilkan permutasi
dari inputnya sampai menemukan satu yang diurutkan.

30. Bubble sort


Terkadang disebut sinking sort, adalah algoritma pengurutan sederhana yang berulang kali
mengulang daftar yang akan diurutkan, membandingkan setiap pasangan item yang
berdekatan dan menukarnya jika berada dalam urutan yang salah. Pass melalui daftar
diulang sampai tidak ada swap yang diperlukan, yang mengindikasikan bahwa daftar
diurutkan.

31. ProxmapSort
Atau sering disebut Proxmap sort, adalah algoritma pengurutan yang bekerja dengan
mempartisi kumpulan item data, atau kunci, ke dalam sejumlah "subarrays" (disebut ember,
dalam bentuk yang serupa). Nama pendek untuk menghitung "peta kedekatan", yang
mengindikasikan setiap kunci K awal subarray di mana K akan berada dalam urutan akhir
yang diurutkan. Tombol ditempatkan ke setiap subarray dengan menggunakan sort
penyisipan.

32. Cocktail sort


Jenis pengocok koktail juga dikenal sebagai jenis gelembung bidirectional, jenis koktail,
semacam shaker (yang juga dapat mengacu pada varian dari jenis pilihan), jenis riak,

5
macam shuffle, atau jenis pesawat ulang-alik, adalah Variasi bubble sort yaitu algoritma
sorting yang stabil dan jenis perbandingan. Algoritma ini berbeda dari jenis bubble yang ada
di kedua arah pada masing-masing melewati daftar.

33. Counting sort


Dalam ilmu komputer, counting sort adalah algoritma untuk menyortir kumpulan objek
sesuai dengan kunci bilangan bulat kecil; Artinya, ini adalah algoritma sortasi integer. Ini
beroperasi dengan menghitung jumlah objek yang memiliki masing-masing nilai kunci yang
berbeda, dan menggunakan aritmatika pada hitungan tersebut untuk menentukan posisi
setiap nilai kunci dalam urutan output.

34. Gnome sort


Jenis Gnome (atau Stupid sort) adalah algoritma pengurutan yang awalnya diusulkan oleh
seorang insinyur komputer Iran Dr. Hamid Sarbazi-Azad (Profesor Teknik Komputer di
Universitas Teknologi Sharif) pada tahun 2000 dan disebut "tipe bodoh" (tidak boleh
bingung dengan bogosort), dan kemudian di lain waktu dijelaskan oleh Dick Grune dan
diberi nama "gnome sort".Ini adalah algoritma pengurutan yang mirip dengan sort
penyisipan, kecuali memindahkan elemen ke tempat yang tepat dilakukan dengan
serangkaian swap, seperti pada jenis bubble.

35. Heapsort
Dalam ilmu komputer, heapsort adalah algoritma sortasi berbasis perbandingan. Heapsort
dapat dianggap sebagai jenis seleksi yang disempurnakan seperti algoritma itu, ia membagi
inputnya menjadi wilayah yang diurutkan dan tidak tersortir, dan secara iteratif mengecilkan
daerah yang tidak disortir dengan mengekstraksi elemen terbesar dan memindahkannya ke
wilayah yang diurutkan. Perbaikan terdiri dari penggunaan struktur data tumpukan daripada
pencarian linier untuk menemukan yang maksimal.

36. Insertion sort


Menentukan dimana item tertentu termasuk dalam list yang ter-urut, dan menyisipkan
padanya.

37. Merge sort


Pisah daftar menjadi pasangan dua-dua, urutkan lalu digabung dengan satu pasangan
lainnya, kembali diurutkan, dan diulang hingga menjadi daftar utuh.

38. Pancake sorting


Pemilahan pancake adalah istilah sehari-hari untuk masalah matematika dalam memilah
tumpukan pancake yang tidak beraturan dalam ukuran ketika spatula dapat dimasukkan ke
titik manapun di tumpukan dan digunakan untuk membalik semua pancake di atasnya.
Jumlah pancake adalah jumlah minimum flips yang diperlukan untuk sejumlah pancake
tertentu.

39. Pigeonhole sort

6
Penyortiran Pigeonhole adalah algoritma pengurutan yang sesuai untuk menyortir daftar
elemen dimana jumlah elemen (n) dan anjang kisaran nilai kunci yang mungkin (N) kira-
kira sama.Hal ini membutuhkan waktu O (n + N). Hal ini mirip dengan penghitungan,
namun berbeda dalam hal itu "memindahkan item dua kali: sekali ke array ember dan lagi
ke tujuan akhirmenghitung semacam membangun array tambahan kemudian menggunakan
array untuk menghitung tujuan akhir masing-masing item dan memindahkan item di sana.

40. Quicksort
Quicksort merupakan sorting pembanding dan pada implementasi efisien tidak merupakan
algoritma sorting yang stabil.

41. Radix sort


Dalam ilmu komputer, radix sort adalah algoritma pengurutan bilangan bulat non-
komparatif yang memilah data dengan kunci bilangan bulat dengan mengelompokkan kunci
dengan masing-masing digit yang memiliki posisi dan nilai signifikan yang sama.

42. Selection sort


Ambil elemen terkecil dari elemen yang tersisa, tambahkan ke akhir daftar yang diurutkan.

43. Shell sort:


Shellsort, yang juga dikenal sebagai jenis Shell atau metode Shell, adalah jenis
perbandingan di tempat. Hal ini dapat dilihat sebagai generalisasi sortasi dengan pertukaran
(bubble sort) atau sortir dengan penyisipan (insertion sort). Metode ini dimulai dengan
menyortir pasangan elemen yang berjauhan satu sama lain, kemudian semakin mengurangi
jarak antar elemen untuk dibandingkan.

44. Smoothsort
Dalam ilmu komputer, smoothsort adalah algoritma sortasi berbasis perbandingan. Sebuah
varian dari heapsort, ditemukan dan diterbitkan oleh Edsger Dijkstra pada tahun 1981.
Seperti heapsort, smoothsort adalah algoritma di tempat dengan batas atas O (n log n),
namun bukan jenis yang stabil.

45. Topological sort


Di bidang ilmu komputer, semacam topologi atau urutan topologi dari graf berarah adalah
urutan linear simpulnya sehingga untuk setiap tepi yang diarahkan uv dari simpul u ke
simpul v, u datang sebelum v dalam pemesanan. Misalnya, simpul grafik dapat mewakili
tugas yang harus dilakukan, dan ujung-ujungnya mungkin merupakan kendala yang harus
dilakukan satu tugas sebelum yang lain; Dalam aplikasi ini, pemesanan topologi hanyalah
urutan yang valid untuk tugas.

 Kompresi data tanpa kehilangan

7
46. Burrows-Wheeler transform
Preprocessing berguna untuk memperbaiki kompresi lossless.

47. DEFLATE
Kompresi data lossless.

48. Delta encoding


Bantuan untuk kompresi data di mana data sekuensial sering terjadi.

49. Incremental encoding


Dikenal sebagai kompresi depan, kompresi belakang, atau pengkodean depan, adalah
sejenis algoritma kompresi encoding delta dimana awalan umum atau sufiks dan
panjangnya dicatat sehingga tidak perlu diduplikasi. Algoritma ini sangat cocok untuk
mengompresi data yang diurutkan, misalnya daftar kata dari kamus.

50. LZW
Singkatan dari (Lempel-Ziv-Welch)

51. LZ77 (algorithm)


LZ77 dan LZ78 adalah nama untuk dua algoritma kompresi data lossless.

52. LZMA
Singkatan dari Lempel-Ziv-Markov chain-Algorithm

53. LZO
Pemadatan data yang cepat

54. PPM compression algorithm


Prediksi dengan partial matching (PPM) adalah teknik kompresi data adaptif berdasarkan
pemodelan konteks dan prediksi. Model PPM menggunakan satu set simbol sebelumnya
dalam aliran simbol yang tidak terkompresi untuk memprediksi simbol berikutnya di arus.
Algoritma PPM juga dapat digunakan untuk mengklasifikasikan data ke dalam kelompok
yang diperkirakan dalam analisis cluster.

55. Shannon-Fano coding


Di bidang kompresi data, pengkodean Shannon-Fano, dinamai Claude Shannon dan Robert
Fano, adalah teknik untuk membangun kode awalan berdasarkan seperangkat simbol dan
probabilitasnya (diperkirakan atau diukur).

56. Truncated binary encoding

8
Encoding biner terpotong adalah pengkodean entropi yang biasanya digunakan untuk
distribusi probabilitas seragam dengan alfabet yang terbatas.

57. Run-length encoding


Pemadatan data yang menggunakan deretan huruf yang berulang.

58. SEQUITUR algorithm


Lossless compression by incremental grammar inference on a string

59. EZW (Embedded Zerotree Wavelet)


Embedded Zerotrees of Wavelet transforms (EZW) adalah algoritma kompresi gambar
lossy. Pada tingkat bit rendah, yaitu rasio kompresi yang tinggi, sebagian besar koefisiennya

60. Entropy encoding


Skema pengkodean yang memberikan kode pada simbol sehingga sesuai dengan panjang
kode dengan probabilitas simbol

61. Huffman coding


Kompresi lossless sederhana memanfaatkan frekuensi karakter relatif

62. Adaptive Huffman coding


Teknik pengkodean adaptif berdasarkan pengkodean Huffman

63. Arithmetic coding


Pengkodean entropi lanjutan

64. Range encoding


Metode kompresi data yang diyakini mendekati rasio kompresi pengkodean aritmatika.

65. Unary coding


Kode yang mewakili angka n dengan n yang diikuti nol.

66. Elias delta|gamma|omega coding


Kode universal mengkodekan bilangan bulat positif.

67. Fibonacci coding


Kode universal yang mengkodekan bilangan bulat positif menjadi kata kode biner

68. Golomb coding


Bentuk pengkodean entropi yang optimal untuk abjad mengikuti distribusi geometris

69. Rice coding

9
Bentuk pengkodean entropi yang optimal untuk abjad mengikuti distribusi geometris.

 Kompresi data berkehilangan

70. Linear predictive coding


Kompresi lossy dengan mewakili amplop spektral sinyal digital ucapan dalam bentuk
terkompresi.

71. A-law algorithm


Algoritma companding standar.

72. Mu-law algorithm


Kompresi sinyal analog standar atau algoritma kompanding.

73. Fractal compression


Metode yang digunakan untuk kompres gambar menggunakan fraktal.

74. Transform coding


Jenis kompresi data untuk data "alami" seperti sinyal audio atau gambar fotografi.

75. Vector quantization


Teknik yang sering digunakan dalam kompresi data lossy.

76. Wavelet compression


Bentuk kompresi data sangat cocok untuk kompresi gambar (terkadang juga kompresi video
dan kompresi audio)

 Computational geometry

77. Gift wrapping algorithm


Menentukan lambung cembung dari satu set titik.

78. Graham scan


Menentukan lambung cembung dari satu set titik di pesawat.

79. Point in polygon


Menguji apakah titik tertentu terletak pada poligon yang diberikan.

10
 Grafik komputer

80. Bresenham's line algorithm


Plot titik dari array 2 dimensi untuk membentuk garis lurus antara 2 titik yang ditentukan
(menggunakan variabel keputusan).

81. DDA line algorithm


Plot titik dari array 2 dimensi untuk membentuk garis lurus antara 2 titik yang ditentukan
(menggunakan floating-point math).

82. Flood fill


Mengisi wilayah yang terhubung dari array multi dimensi dengan simbol tertentu.

83. Painter's algorithm


Mendeteksi bagian yang terlihat dari pemandangan 3 dimensi.

84. Ray tracing


Rendering gambar realistis.

 Algoritme kombinatorial umum


85. Algoritme pencari-siklus Floyd
Iterasi untuk mencari siklus dalam barisan/sekuens(uniformly distributed).

86. Pseudorandom number generators


Pseudorandom number generatorsjuga dikenal sebagai Deterministic Random Bit
Generator(DRBG), adalah algoritma untuk menghasilkan urutan angka yang sifatnya
mendekati sifat urutan bilangan acak.

87. Robinson-Schensted algorithm


Korespondensi dan pasangan yang bijetif dari Young tableaux yang standar.

11
 Algoritme Kriptografi

88. Advanced Encryption Standard (AES)


Pemenang kompetisi NIST pada tahun 2000

89. Data Encryption Standard (DES)


Pemenang kompetisi NBS (sekarang NIST), telah digantikan dengan AES.

90. IDEA
IntelliJ IDEA (diucapkan / ɪntɛlɪdʒeɪ aɪdiə /) adalah lingkungan pengembangan terpadu Java
(IDE) untuk mengembangkan perangkat lunak komputer. Ini dikembangkan oleh JetBrains
(sebelumnya dikenal sebagai IntelliJ), dan tersedia sebagai edisi komunitas Licensed 2
Apache, [3] dan dalam edisi komersial eksklusif. Keduanya bisa digunakan untuk
pengembangan komersial

91. RC4 (cipher)


Dalam kriptografi, RC4 (Rivest Cipher 4 juga dikenal sebagai ARC4 atau ARCFOUR yang
diduga Dugaan RC4, lihat di bawah) adalah stream cipher. Sementara yang luar biasa
karena kesederhanaan dan kecepatan perangkat lunaknya, beberapa kerentanan telah
ditemukan di RC4, membuatnya tidak aman. [3] [4] Hal ini sangat rentan ketika awal
keystream output tidak dibuang, atau bila kunci nonrandom atau kunci yang terkait
digunakan. Terutama penggunaan RC4 yang bermasalah telah menyebabkan protokol yang
sangat tidak aman seperti WEP.

92. Enkripsi asimetris : dengan kunci publik atau tanda tangan digital:
 DSA
 ElGamal
 RSA
 Diffie-Hellman key exchange
 NTRUEncrypt

93. MD5
Sekarang ini sudah terdapat algoritme yang mampu memalsukan jumlah MD5.

94. RIPEMD-160
RIPEMD (RACE Integrity Primitives Evaluation Message Digest) adalah keluarga fungsi
hash kriptografi yang dikembangkan di Leuven, Belgia, oleh Hans Dobbertin, Antoon
Bosselaers dan Bart Preneel di kelompok penelitian COSIC di Katholieke Universiteit

12
Leuven, dan pertama kali diterbitkan pada tahun 1996. RIPEMD adalah berdasarkan prinsip
desain yang digunakan di MD4, dan serupa dengan kinerja SHA-1 yang lebih populer.

95. SHA-1
Dalam kriptografi, SHA-1 (Secure Hash Algorithm 1) adalah fungsi hash kriptografi yang
dirancang oleh United States National Security Agency dan merupakan Standar Pengolahan
Informasi Federal A.S. yang diterbitkan oleh NIST Amerika Serikat. [3] SHA-1
menghasilkan nilai hash 160-bit (20-byte) yang dikenal sebagai message digest. Nilai hash
SHA-1 biasanya diberikan sebagai bilangan heksadesimal, panjangnya 40 digit.

96. HMAC
Otentikasi pesan kunci-hash

97. Blum Blum Shub: Berdasarkan faktorisasi prima.


98. Algoritma Yarrow: adalah keluarga generator bilangan pseudorandom kriptografi
(PRNG) yang dirancang oleh John Kelsey, Bruce Schneier dan Niels Ferguson.
ItuFortuna, diduga merupakan peningkatan pada YarrowOther.
99. Diffie-Hellman: pertukaran kunci

 Algoritme Distributed systems

100. Lamport ordering:


Sebagian pemesanan kejadian berdasarkan hubungan yang terjadi sebelumnya

101. Snapshot algorithm: Sebuah snapshot adalah proses pencatatan keadaan global sebuah
sistem
102. Vector ordering: total pemesanan acara

 Algoritme Numerik

103. Algoritma De Boor:

13
Algoritma ini dirancang oleh carl r. De bood. Dalam matematika subfield dari analisis
nuimerik algoritma de boor ini adalah yang cepat dan stabil secara numerik algoritma untuk
mengevaluasi kurva spline di B-splie bentuk ini adalah generalisasi algoritma de castejau
untuk kurva beizer.

104.Algoritme de Casteljau: Untuk melakukan perhitungan kurva Bézier


105.False position method:Untukmendekati akar sebuah fungsi
106.Gauss-Jordan elimination:Untukmemecahkan sistem persamaan linier
107.Algoritme Gauss-Legendre:Untukmenghitung angka pi
108.Gauss-Newton algorithm:temukan minimal fungsi beberapa variabel
109.Penambahan Kahan: menambahkan bilangan-bilangan titik mengambang dengan
ketelitian lebih
110.Levenberg-Marquardt algorithm:temukan minimal fungsi beberapa variabel
111.MISER algorithm:Simulasi Monte Carlo, integrasi numerik
112.Newton's method:menemukan nol fungsi dengan kalkulus
113.Pembulatan: membulatkan bilangan pecah
114.Secant method:mendekati akar sebuah fungsi
115.Shifting nth-root algorithm:digit dengan ekstraksi akar digit
116.Akar persegi: menghitungkan akar persegi dengan ketelitian terbatas
117.Simplex algorithm:Algoritma untuk memecahkan masalah pemrograman linier.

 Optimization algorithms

118. Algoritme Strassen


Dalam matematika, khususnya aljabarlinear adalah sebuah algoritme yang dinamakan oleh
Volker Strassen yang merupakan sebuah algoritme yang digunakan untuk perkalian matriks
yang secara asimtot lebih cepat daripada algoritme perkalian matriks standar dan sangat
berguna dalam penggunaanya untuk matriks yang berukuran besar.

 Optimization (mathematics) Optimization algorithms

119. Branch and bound


Cabang dan terikat (BB, B & B, atau BnB) adalah paradigma perancangan algoritma untuk
masalah optimasi diskrit dan kombinatorial, serta optimasi matematis. Algoritma branch-
and-bound terdiri dari penghitungan solusi kandidat secara sistematis melalui pencarian
ruang negara: kumpulan solusi kandidat dianggap membentuk pohon berakar dengan set
lengkap pada akar. Algoritma ini mengeksplorasi cabang pohon ini, yang merupakan
himpunan bagian dari rangkaian solusi. Sebelum menghitung solusi kandidat dari cabang,

14
cabang diperiksa terhadap batas perkiraan atas dan bawah pada solusi optimal, dan dibuang
jika tidak dapat menghasilkan solusi yang lebih baik daripada algoritma terbaik yang
ditemukan sejauh ini oleh algoritma.

Algoritma ini bergantung pada estimasi efisien batas bawah dan atas suatu wilayah / cabang
ruang pencarian dan mendekati penghitungan yang lengkap karena ukuran (volume n-
dimensi) dari wilayah tersebut cenderung nol

120. Simulated annealing


Simulated annealing (SA) adalah teknik probabilistik untuk mendekati optimal global fungsi
yang diberikan. Secara khusus, metaheuristik mendekati perkiraan pengoptimalan global di
ruang pencarian yang besar. Hal ini sering digunakan saat ruang pencarian bersifat diskrit
(misalnya, semua tur yang mengunjungi sejumlah kota tertentu). Untuk masalah di mana
menemukan perkiraan optimum global lebih penting daripada menemukan optimum lokal
yang tepat dalam jumlah waktu tertentu, percepatan simulasi mungkin lebih baik daripada
alternatif seperti kemiringan gradien.

Nama dan inspirasi berasal dari anil dalam metalurgi, teknik yang melibatkan pemanasan
dan pendinginan bahan yang dikontrol untuk meningkatkan ukuran kristal dan mengurangi
cacatnya. Keduanya merupakan atribut material yang bergantung pada energi bebas
termodinamika. Pemanasan dan pendinginan material mempengaruhi suhu dan energi bebas
termodinamika. Simulasi anil sebagai pendekatan yang mengurangi minimisasi fungsi
sejumlah besar variabel ke mekanika statistik ekuilibrasi (anil) dari sistem multiatomali
buatan matematis yang setara (Jargon) pertama kali diformulasikan oleh Armen G.
Khachaturyan, Svetlana V. Semenovskaya, Boris K. Vainshtein pada tahun 1979 [1] dan
oleh Armen G. Khachaturyan, Svetlana V. Semenovskaya, Boris K. Vainshtein pada tahun
1981. [2] Penulis ini menggunakan simulasi komputer yang meniru anil dan pendinginan
sistem semacam itu untuk menemukan minimum globalnya.

Gagasan pendinginan lambat yang diimplementasikan dalam algoritma Simulated


Annealing ini diinterpretasikan sebagai penurunan yang lambat dalam probabilitas
menerima solusi yang lebih buruk karena ruang solusi dieksplorasi. Menerima solusi yang
lebih buruk adalah properti dasar metaheuristik karena memungkinkan penelusuran lebih
luas untuk solusi optimal global. Secara umum, algoritma Simulated Annealing bekerja
sebagai berikut. Pada setiap langkah waktu, algoritma secara acak memilih solusi yang
mendekati arus saat ini, mengukur kualitasnya, dan kemudian memutuskan untuk pindah ke
sana atau tetap mengikuti solusi saat ini berdasarkan salah satu dari dua probabilitas antara
yang dipilihnya berdasarkan pada fakta bahwa solusi baru lebih baik atau lebih buruk dari
yang sekarang. Selama pencarian, suhu semakin menurun dari nilai positif awal menjadi nol
dan mempengaruhi dua probabilitas: pada setiap langkah, probabilitas untuk beralih ke
solusi baru yang lebih baik dijaga ke 1 atau diubah menjadi nilai positif; Sebagai gantinya,
probabilitas untuk pindah ke solusi baru yang lebih buruk semakin berubah menjadi nol.

121. Genetic algorithms


Penelitian ilmu komputer dan operasi, algoritma genetika (GA) adalah metaheuristik yang
terinspirasi oleh proses seleksi alam yang termasuk dalam kelas yang lebih besar dari
algoritma evolusioner (EA). Algoritma genetika biasanya digunakan untuk menghasilkan

15
solusi berkualitas tinggi untuk optimasi dan masalah pencarian dengan mengandalkan
operator terinspirasi bio seperti mutasi, crossover dan seleksi.

122. [[Particle swarm optimization|Particle swarm]]

123. * [[Tabu search]]

124. * [[Local search (optimization)|Local search]]

125. * [[CORDIC]]: Fast [[trigonometric function]] computation technique.

126. * [[Fast Fourier transform]]: determines the frequencies contained in a (segment of a)


signal

127. [[Cooley-Tukey FFT algorithm]]

128. [[Rainflow-counting algorithm]]: Reduces a complex [[stress (physics)|stress]] history to


a count of elementary stress-reversals for use in [[fatigue (material)|fatigue]] analysis

129. [[Osem]]: algorithm for processing of medical images

130. [[Goertzel algorithm]] Can be used for [[Persinyalan nada ganda multifrekuensi|DTMF]]
digit decoding.

131. [[Discrete Fourier transform<ref>frequency domain ICA</ref>** [[Rader's FFT


algorithm]]

132. [[Bluestein's FFT algorithm]]

 Number theory|Number theoretic]] algorithms

133. Discrete logarithm


16
Dalam matematika, logaritma diskrit adalah bilangan bulat k, yang memecahkan persamaan
bk = g, di mana b dan g adalah elemen dari kelompok acak yang operasi kelompoknya
dinotasikan sebagai perkalian. Bila k seperti itu ada, maka dilambangkan sebagai k = logb g.
Logika diskrit dengan demikian merupakan analogan teoritis kelompok dari logaritma biasa,
yang memecahkan persamaan yang sama untuk bilangan real b dan g.

Tidak ada metode umum yang efisien untuk menghitung logaritma diskrit pada komputer
konvensional. Beberapa algoritma penting dalam kriptografi kunci publik mendasarkan
keamanan mereka pada asumsi bahwa masalah logaritma diskrit atas kelompok yang dipilih
dengan cermat tidak memiliki solusi yang efisien.

134. Baby-step giant-step


Dalam teori kelompok, cabang matematika, langkah raksasa bayi adalah algoritma meet-in-
the-middle untuk menghitung logaritma diskrit. Masalah log diskrit sangat penting bagi area
kriptografi kunci publik. Banyak sistem kriptografi yang paling umum digunakan
didasarkan pada asumsi bahwa log diskrit sangat sulit untuk dihitung; Semakin sulit,
semakin banyak keamanan yang diberikan transfer data. Salah satu cara untuk
meningkatkan kesulitan masalah log diskrit adalah dengan mendasari kriptosistem pada
kelompok yang lebih besar.

135. Pollard's rho algorithm for logarithms


Algoritma Pollho's rho untuk logaritma adalah algoritma yang diperkenalkan oleh John
Pollard pada tahun 1978 untuk memecahkan masalah logaritma diskrit, yang analog dengan
algoritma rho Pollard untuk memecahkan masalah faktorisasi bilangan bulat.

Tujuannya adalah untuk menghitung γ {\ displaystyle \ gamma} \ gamma sedemikian rupa


sehingga α γ = β {\ displaystyle \ alpha ^ {\ gamma} = \ beta} \ alpha ^ {\ gamma} = \ beta,
di mana β {\ displaystyle \ beta} \ beta milik grup siklik G {\ displaystyle G} G yang
dihasilkan oleh alpha alpha} alpha. Algoritma menghitung bilangan bulat a {b \ displaystyle
a} a, b {\ displaystyle b} b, A {\ displaystyle A} A, dan B {\ displaystyle B} B sedemikian
rupa sehingga α a β b = α A β B {\ displaystyle \ alpha ^ {a} \ beta ^ {b} = \ alpha ^ {A} \
beta ^ {B}} \ alpha ^ {a} \ beta ^ {b} = \ alpha ^ {A} \ beta ^ {B }. Jika kelompok yang
mendasari adalah siklik orde n {\ displaystyle n} n, γ {\ displaystyle \ gamma} \ gamma
adalah salah satu solusi dari persamaan (B - b) γ = (a - A) (mod n) { \ displaystyle (Bb) \
gamma = (aA) {\ pmod {n}}} (Bb) \ gamma = (aA) {\ pmod {n}}.

Untuk menemukan algoritma {\ displaystyle a} a, b {\ displaystyle b} b, A {\ displaystyle


A} A, dan B {\ displaystyle B} B, gunakan algoritma pencarian siklus Floyd untuk
menemukan siklus di urutan xi = α ai β bi {\ displaystyle x_ {i} = \ alpha ^ {a_ {i}} \ beta ^
{b_ {i}}} x_ {i} = \ alpha ^ {{a_ {i}}} \ beta ^ {{b_ {i}}}, di mana fungsi f: xi ↦ xi + 1 {\
displaystyle f: x_ {i} \ mapsto x_ {i + 1}} f: x_ {i} \ mapsto x_ { {i + 1}} dianggap acak-
acak dan kemungkinan besar akan masuk ke dalam lingkaran setelah kira-kira π n 2 {\
displaystyle {\ sqrt {\ frac {\ pi n} {2}}}} {\ sqrt {{\ frac {\ pi n} {2}}}} langkah-
langkahnya. Salah satu cara untuk mendefinisikan fungsi tersebut adalah dengan
menggunakan aturan berikut: Bagilah G {\ displaystyle G} G menjadi tiga himpunan bagian
yang terpisah dengan ukuran yang hampir sama: S 0 {\ displaystyle S_ {0}} S_ {0}, S 1 {\

17
displaystyle S_ {1}} S_ {1}, dan S 2 {\ displaystyle S_ {2}} S_ {2}. Jika x i {\ displaystyle
x_ {i}} x_ {i} ada di S 0 {\ displaystyle S_ {0}} S_ {0}, maka double kedua {\ displaystyle
a} a dan b {\ displaystyle b} b; jika xi ∈ S 1 {\ displaystyle x_ {i} \ in S_ {1}} x_ {i} \ in
S_ {1} maka pertambahan sebuah {\ displaystyle a} a, jika xi ∈ S 2 {\ displaystyle x_ {i } \
in S_ {2}} x_ {i} \ in S_ {2} maka kenaikan b {\ displaystyle b} b.

136. Pohlig-Hellman algorithm


Dalam teori kelompok, algoritma Pohlig-Hellman, yang kadang-kadang dikreditkan sebagai
algoritma Silver-Pohlig-Hellman, [1] adalah algoritma tujuan khusus untuk menghitung
logaritma diskrit dalam kelompok abelian terbatas yang urutannya adalah bilangan bulat
yang halus.

Algoritma ini ditemukan oleh Roland Silver, namun pertama kali diterbitkan oleh Stephen
Pohlig dan Martin Hellman (independen dari Silver).

137. Index calculus algorithm


Dalam teori bilangan komputasional, algoritma kalkulus indeks adalah algoritma
probabilistik untuk menghitung logaritma diskrit. Didedikasikan untuk logaritma diskrit di
(Z / q Z) * {\ displaystyle (\ mathbb {Z} / q \ mathbb {Z}) ^ {*}} ({\ mathbb {Z}} / q {\
mathbb {Z }}) ^ {*} di mana q {\ displaystyle q} q adalah bilangan prima, kalkulus indeks
mengarah ke keluarga algoritma yang disesuaikan dengan bidang yang terbatas dan
beberapa keluarga kurva elips. Algoritma ini mengumpulkan hubungan antara logaritma
diskrit bilangan prima kecil, menghitungnya dengan prosedur aljabar linier dan akhirnya
mengekspresikan logaritma diskrit yang diinginkan sehubungan dengan logaritma diskrit
bilangan prima kecil.

138. Euclidean algorithm: computes the [[greatest common divisor]]


Dalam matematika, pembagi umum terbesar (gcd) dari dua atau lebih bilangan bulat, yang
tidak semuanya nol, adalah bilangan bulat positif terbesar yang membagi masing-masing
bilangan bulat. Misalnya, gcd 8 dan 12 adalah 4. [1] [2]
Pembagi umum terbesar juga dikenal sebagai faktor umum terbesar (gcf), [3] faktor umum
tertinggi (hcf), [4] ukuran umum terbesar (gcm), [5] atau pembagi umum tertinggi

139. Faktorisasi prima: pemecahan bilangan bulat menjadi faktor [[Bilangan prima|prima]].
140. Trial division
Divisi percobaan adalah yang paling sulit namun paling mudah untuk memahami algoritme
faktorisasi bilangan bulat. Gagasan penting di balik pengujian divisi percobaan untuk
melihat apakah bilangan bulat n, bilangan bulat yang akan diperhitungkan, dapat dibagi
dengan masing-masing nomor pada gilirannya yang kurang dari n. Sebagai contoh, untuk
bilangan bulat n = 12, satu-satunya bilangan yang membaginya adalah 1, 2, 3, 4, 6, 12.
Memilih hanya kekuatan bilangan prima terbesar dalam daftar ini memberikan 12 = 3 × 4.

141. Pollard's rho algorithm

18
Algoritma pollho Pollard adalah algoritma untuk faktorisasi bilangan bulat. Itu ditemukan
oleh John Pollard pada tahun 1975. [1] Ini hanya menggunakan sejumlah kecil ruang, dan
waktu yang diharapkan berjalan sebanding dengan akar kuadrat dari ukuran faktor utama
terkecil dari bilangan komposit yang menjadi faktor.

142. Pollard's p-1 algorithm


Algoritma p-1 Pollard adalah algoritma teoritis bilangan bulat bilangan teoritik, ditemukan
oleh John Pollard pada tahun 1974. Ini adalah algoritma tujuan khusus, yang berarti hanya
cocok untuk bilangan bulat dengan tipe faktor tertentu; Ini adalah contoh algoritma
algoritme aljabar yang paling sederhana.

Faktor-faktor yang ditemukannya adalah yang mana yang mendahului faktornya, p - 1,


adalah kekuatan; Pengamatan penting adalah bahwa, dengan bekerja dalam kelompok
multiplicative modulo sebuah bilangan komposit N, kita juga bekerja dalam kelompok
multiplikatif modulo semua faktor N.

Keberadaan algoritma ini mengarah pada konsep bilangan prima yang aman, menjadi
bilangan prima dimana p - 1 dua kali merupakan prime prime Sophie Germain dan dengan
demikian sangat halus. Primes ini kadang-kadang ditafsirkan sebagai "aman untuk tujuan
kriptografi", namun mungkin tidak aman - dalam rekomendasi terkini untuk bilangan prima
kriptografi yang kuat (misalnya ANSI X9.31), perlu tetapi tidak cukup bahwa p - 1 memiliki
setidaknya satu bilangan prima besar faktor.
Bilangan prima yang cukup besar kuat; Jika bilangan prima yang digunakan untuk
keperluan kriptografi ternyata tidak kuat, kemungkinan besar akan mengalami kebencian
daripada melalui kecelakaan pada generasi bilangan acak. Terminologi ini dianggap usang
oleh industri kriptografi

143. Congruence of squares


Dalam teori bilangan, kongruensi kuadrat adalah kesesuaian yang umum digunakan dalam
algoritma faktorisasi bilangan bulat.

144. Quadratic sieve


Algoritma saringan kuadrat (QS) adalah algoritma faktorisasi bilangan bulat dan, dalam
praktiknya, metode tercepat kedua diketahui (setelah saringan lapangan nomor umum). Ini
masih yang tercepat untuk bilangan bulat di bawah 100 digit desimal atau lebih, dan jauh
lebih sederhana daripada saringan lapangan nomor. Ini adalah algoritma faktorisasi tujuan
umum, yang berarti bahwa waktu operasinya bergantung hanya pada ukuran bilangan bulat
yang menjadi faktor, dan bukan pada struktur atau sifat khusus. Ini ditemukan oleh Carl
Pomerance pada tahun 1981 sebagai perbaikan pada saringan linier Schroeppel

145. Special number field sieve


Dalam teori bilangan, cabang matematika, saringan lapangan nomor khusus (SNFS) adalah
algoritma faktorisasi bilangan bulat tujuan khusus. Nomor umum saringan lapangan
(GNFS) diturunkan darinya.

Saringan medan nomor khusus efisien untuk bilangan bulat dari bentuk re ± s, di mana r dan
s kecil (misalnya nomor Mersenne).

19
Secara heuristik, kompleksitas untuk anjak bilangan bulat n {\ displaystyle n} n adalah
bentuknya: [1] dalam O dan L-notasi.

SNFS telah digunakan secara ekstensif oleh NFSNet (sebuah usaha komputasi terdistribusi
sukarela), NFS @ Home dan yang lainnya menghitung jumlah proyek Cunningham; untuk
beberapa waktu catatan untuk factorisation bilangan bulat telah diperhitungkan oleh SNFS

146. General number field sieve


Dalam teori bilangan, saringan lapangan nomor umum (GNFS) adalah algoritma klasik yang
paling efisien yang diketahui dengan bilangan bulat anjak yang lebih besar dari 10100. Secara
heuristik, kompleksitas untuk anjak bilangan integer n (terdiri dari ⌊ log2 n⌋ + 1 bit) adalah
bentuknya.

147. Algoritme perkalian: cara perkalian dua bilangan yang cepat.


148. Ujian bilangan prima: menentukan apakah suatu bilangan adalah bilangan prima.
 AKS primality test
 Miller-Rabin primality test
 Sieve of Eratosthenes
 Sieve of Atkin

 Numerical algebra

149. Buchberger's algorithm: temukan basis Gröbner


150. Exponentiating by squaring:dengan cepat menghitung kekuatan angka dan matriks
151. Gram-Schmidt process:ortogonalkan satu set vektor
152. Knuth-Bendix completion algorithm:untuk menulis ulang sistem aturan
153. Multivariate division algorithm:untuk polinomial di beberapa indeterminatesParsing
154. Recursive descent parser:Parser top-down cocok untuk tata bahasa LL (k)
155. LL parser:Algoritma parsing waktu yang relatif sederhana untuk kelas tata bahasa tanpa
konteks yang terbatas
156. LR parser:Algoritma penguraian waktu linier yang lebih kompleks untuk kelas tata
bahasa bebas konteks yang lebih besar. Varian:
 Operator-precedence parser
157. Packrat parser:Algoritma parsing waktu linier yang mendukung beberapa tata bahasa
bebas konteks dan tata bahasa ekspresi parsing
158. CYK algorithm:Algoritma O (n3) untuk mengurai tata bahasa tanpa konteks apapun
159. Earley's algorithm:Algoritma O (n3) lainnya untuk menguraikan tata bahasa tanpa
konteks
 SLR (Simple LR) parser

20
 LALR (Look-ahead LR) parser
 Canonical LR parser

 Teknik perangkat lunak

160. Algorithms for Recovery and Isolation Exploiting Semantics: recovery


161. Unicode Collation Algorithm
162. CHS conversion: Converting between disk addressing systems
163. Cyclic redundancy check: calculation of a check word
164. Parity: Simple/fast error detection technique. Is a number even or odd?
165. 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).

 Algoritme kuantum
166. Grover's algorithm: provides quadratic speedup for many search problems
167. Shor's algorithm: provides exponential speedup for factorizing a number
168. Deutsch-Jozsa algorithm: criterion of balance for Boolean function

KASUS II

CONTOH PENYELESAIAN SUATU MASALAH ATAU


KASUS MENGGUNAKAN SUATU ALGORITMA

1. Memindahkan rumput – rumputan dan kambing

21
Ilustrasi “memindahkan rumput/tanaman, dan kambing”

Ada seorang nelayan yang ingin memindahkan rumput – rumputan dan kambing ke pulau
sebelah,tetapi dia tidak ingin kambingnya di makan serigala dan rumput – rumputannya dimakan
kambingnya ketika ia sedang memindahkan rumput – rumputan dan kambingnya, serigala hanya
takut ketika bertemu dengan Si Nelayan. Bagaimana memindahkan rumput – rumputan dan
kambingnya ke pulau sebelah dengan aman?

Penyelesaian :
Dengan cara Si Nelayan tersebut membawa keduanya dalam satu perahu ke pulau sebelah, sehingga
serigala di pulau sebelah melihat Si Nelayan kabur dan dapat memindahkan rumput – rumputan dan
kambing dengan aman.

2. Membuat rancangan program dengan menggunakan flowchart,


untuk mencari luas persegi panjang.

Solusi : Perumusan untuk mencari luas persegi panjang adalah :


L = p . l di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar
persegi.

22
Keterangan :

1. Simbol pertama menunjukkan dimulainya sebuah program.


2. Simbol kedua menunjukkan bahwa input data dari p dan l.
3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l.
4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.

3. Definisi Pseudo-code

Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan
suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.

Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
Solusi Pseudo-code :
1. Masukkan bilangan pertama
2. Masukkan bilangan kedua
3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan
langkah 5.
4. Tampilkan bilangan pertama
5. Tampilkan bilangan kedua

23
Solusi Algoritma :
1. Masukkan bilangan pertama (a)
2. Masukkan bilangan kedua (b)
3. if a > b then kerjakan langkah 4
4. print a
5. print b

Contoh Lain Algortima dan Pseudo-code :

4. . Algoritma kelulusan mahasiswa


Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60maka
mahasiswa tersenut dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.

Deskripsi:
Baca nama dan nilai mahasiswa
Jika nilai > = 60 maka
Keterangan = lulus
Tetapi jika salah
Keterangan = tidak lulus
Tulis nama dan keterangan.

Tahapan Pembuatan Program:


a. Mendefinisikan masalah dan menganalisanya. Mencangkup : tujuan pembuatan, parameter
yang digunakan, fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa
pemrograman yang digunakan.
b. Merealisasikan dengan langkah-langkah sebagai berikut :

24
5. Buatlah algoritma menggunakan flowchart dan pseudocode untuk
menentukan apakah bilangan yang di input adalah bilangan ganjil
atau bilangan genap.
Algoritma :
1. Masukkan sebuah bilangan
2. Bagi bilangan tersebut dengan bilangan atau angka 2
3. Jika bilangan menghasilkan sisa pembagian 0 maka genap
4. Jika bilangan tidak menghasilkan sisa pembagian 0 maka ganjil

Pseudocode :
Read Bilangan
If bil mod 2 = 0 then,
“Output Genap”
Else
“Output Ganjil”
End if

Catatan : Mod adalah sisa hasil bagi

25
6. Buatlah algoritma menggunakan flowchart dan pseudocode untuk
menginput 3 buah bilangan, kemudian tentukan bilangan terbesar,
terkecil, dan rata-ratanya.

Algoritma :
a. Masukkan bilangan A,B,C
b. Jika A>B dan A>C maka A paling besar
c. Jika B>A dan B>C maka B paling besar
d. Maka C paling kecil/terkecil

* Jumlah = A+B+C
Rerata = Jumlah

Pseudocode :* If (A>B ; A>C) then

Print “A paling besar”

If (B>A ; B>C) then

Print “B paling besar”

Else

26
Print “C terkecil”

End if

* Jumlah = A+B+C
Rerata = Jumlah
3
Output rerata

7,Buatlah algoritma menggunakan flowchart


dan pseudocode untuk mengubah satuan waktu yang diinputkan
dari detik ke satuan jam dan menit

Algoritma : Masukkan detik


Menit = 60 detik
Jam = 3600 detik
Tampilkan menit
Tampilkan jam

Pseudocode : Read detik


M = 60 s
H = 3600 s

27
Output M
Output H

8.Misalkan kita diminta untuk membuktikan bahwa pernyataan


matematika untuk perhitungan deret aritmatika berikut:

28
1+2+3+...+n=n(n+1)2

Adalah benar untuk semua bilangan bulat n≥1. Untuk membuktikan pernyataan matematika di atas,
terlebih dahulu kita harus mengubah pernyataan matematika tersebut menjadi sebuah fungsi
matematika:
P(k)=1+2+3+...+n=k(k+1)2

dan kemudian membuktikan kebenarannya menggunakan induksi matematika. Seperti yang telah
dijelaskan sebelumnya, kita harus menjalankan dua langkah untuk melakukan pembuktian dengan
induksi:

1. Pembuktian Kasus Dasar


Karena pernyataan matematika pada soal menyatakan bahwa pernyataan benar untuk semua
bilangan bulat k≥1, maka untuk pembuktian kasus dasar kita harus membuktikan
bahwa P(1) adalah benar untuk ruas kiri maupun ruas kanan dari P(k).

P(1)=1111=1(1+1)2=1(2)2=22=1

karena hasil akhir dari ruas kanan dan ruas kiri adalah sama (1), maka dapat dikatakan
bahwa kasus dasar telah terbukti.

2. Induksi
Untuk pembuktian induksi, kita harus membuktikan bahwa P(k)→P(k+1) bernilai benar.
Langkah pertama yang dapat kita lakukan yaitu menuliskan fungsi matematis
dari P(k+1) terlebih dahulu:

P(k+1)=1+2+...+k+(k+1)=(k+1)((k+1)+1)2
dan kemudian kita harus membuktikan bahwa ruas kiri dan ruas kanan dari P(k+1) adalah
sama. Pembuktian akan kita lakukan dengan melakukan penurunan pada ruas kiri agar
menjadi sama dengan ruas kanan:

1+2+...+k+(k+1)=(1+2+...+k)+(k+1)=k(k+1)2+(k+1)=k(k+1)+2(k+1)2=k2+3k+22=(k+1)(k+
2)2=(k+1)((k+1)+2)2

dan seperti yang dapat dilihat, ruas kiri dari P(k+1) telah menjadi sama dengan ruas
kanannya, sehingga dapat dikatakan bahwa tahap induksi telah berhasil dibuktikan benar.

Dengan pembuktian kasus dasar dan induksi yang bernilai benar, kita dapat menyimpulkan
bahwa P(n) bernilai benar untuk n≥1.

9.Anda diminta untuk membuktikan hipotesa bahwa fungsi


matematika n3−nhabis dibagi 6 untuk semua bilangan bulat n≥2.
29
Langkah untuk membuktikan pernyataan tersebut sama dengan sebelumnya. Mulai
dari definisi ulang fungsi matematikanya:
P(k)=k3−k
Dan kemudian lakukan induksi matematika, langkah demi langkah:

1. Pembuktian Kasus Dasar


Lakukan perhitungan P(2) (karena nilai k minimal 2) dan pastikan hasilnya habis
dibagi 6:

P(1)=23−2=8−2=6

karena 6mod6=0 maka telah dapat dibuktikan bahwa kasus dasar bernilai benar.

2. Induksi
Jika P(k) benar habis dibagi 6, maka P(k+1), atau (k+1)3−(k+1) harus juga habis
dibagi 6. Mari kita lakukan pembuktiannya:

P(k+1)=(k+1)3−(k+1)=(k3+3k2+3k+1)−k−1=k3−3k2+2k=k3−3k2+2k+k−k
=k3−3k2+3k−k=k3−k+3k2+3k=(k3−k)+3k(k+1)
dan dapat dilihat bagaimana P(k+1) telah terbukti habis dibagi 6 karena:

1. k3−k habis dibagi 6, sesuai dengan hipotesa P(k), dan


2. 3k(k+1) habis dibagi 6 karena salah satu nikai dari k atau k+1pasti
merupakan bilangan genap, yang jika dikalikan dengan 3 akan habis dibagi 6.

Setelah berhasil menyelesaikan dua langkah induksi, kita dapat menyimpulkan


bahwa P(k)=k3−k habis dibagi 6 untuk k≥2.

10.Pseudocode yang ada sudah sangat jelas, dan baris per barisnya
dapat diimplementasikan secara langsung menggunakan bahasa
pemrograman apapun.

Setelah mendapatkan model penyelesaian masalah sampai pada pseudocode-nya, kita kemudian
dapat mengimplementasikan solusi yang dikembangkan menggunakan bahasa pemrograman yang
diinginkan. Berikut adalah contoh implementasi algoritma tersebut pada python:
b=15
T=0
p=input("Masukkan jumlah pinjaman: ")
t=input("Masukkan lama pinjaman: ")
T=int(p)

30
foriinrange(1,int(t)):
T=T+(15/100*T)

print("Total pinjaman yang harus dibayarkan adalah: "+str(T))

31

Anda mungkin juga menyukai