1. Dokumen tersebut membahas penerapan algoritma brute force pada fitur Instagram Friend Suggestions untuk merekomendasikan akun baru berdasarkan akun yang diikuti pengguna dan teman-temannya. Algoritma ini bekerja dengan mengevaluasi setiap pasangan akun yang saling mengikuti secara sistematis.
1. Penerapan Algoritma Brute Force
pada Instagram Friend Suggestions
Kelompok 1
1. Ahmad Rizky Ramadhani (50420082)
2. Christian Herbert Fritz (50420310)
3. Faturachman Kurniawan Putra
(50420480)
4. Nadswa Mizaru Siswasi (50420941)
2. Definisi Algoritma Brute Force
Algoritma Brute Force merupakan algoritma yang menggunakan
pendekatan secara langsung dalam memecahkan suatu persoalan.
Algoritma ini dapat menyelesaikan suatu persoalan dengan sistematis,
sederhana, mudah dimengerti, dan langsung. Namun, algoritma Brute
Force cenderung kurang mangkus dan kurang “cerdas”. Selain itu,
ketika menerima data masukan berukuran besar, algoritma ini berjalan
dengan sangat lambat.
Biasanya didasarkan pada:
- Pernyataan masalah (problem statement)
- Definisi konsep yang dilibatkan.
01
02
03
04
05
06
3. Definisi Algoritma Brute Force
Algoritma brute force memecahkan masalah dengan
- Sangat sederhana,
- Langsung,
- Jelas (obvious way).
Karakteristik Algoritma Brute Force
Algoritma brute force umumnya tidak cerdas, karena ia
membutuhkan jumlah langkah yang besar dalam
penyelesaiannya. Kadang-kadang algoritma brute force disebut
juga algoritma naif.
01
02
03
04
05
06
4. Kelebihan Brute Force :
• Dapat diimplementasikan pada hampir Sebagian besar masalah.
• Algoritmanya sederhana dan mudah untuk dimengerti.
• Dapat menghasilkan algoritma yang layak untuk beberapa masalah krusial
seperti searching, sorting, matching, dan perkalian matriks.
Kelemahan Brute Force :
• Algoritma yang dihasilkan kurang efektif
• Umumnya bergerak lambat untuk masukan berukuran besar
• Tidak sekonstruktif/sekreatif strategi pemecahan masalah lainnya
Kelebihan dan Kekurangan
01
02
03
04
05
06
5. Karakteristik Algoritma Brute Force
1. Algoritma brute force umumnya tidak “cerdas” dan tidak mangkus,
karena ia membutuhkan jumlah komputasi yang besar dalam
penyelesaiannya.
2. Meskipun bukan metode yang mangkus, hampir semua masalah
dapat diselesaikan dengan algoritma brute force.
3. Algoritma brute force seringkali lebih mudah diimplementasikan
daripada algoritma yang lebih canggih, dan karena
kesederhanaannya, kadang-kadang algoritma brute force dapat
lebih mangkus (ditinjau dari segi implementasi).
6. Metode Algoritma Brute Force
01
02
03
04
05
06
1. Enumerasi (list) setiap solusi yang mungkin dengan cara yang
sistematis.
2. Evaluasi setiap kemungkinan solusi satu per satu, mungkin
saja beberapa kemungkinan solusi yang tidak layak
dikeluarkan, dan simpan solusi terbaik yang ditemukan
sampai sejauh ini.
3. Meskipun algoritma exhaustive secara teoritis menghasilkan
solusi, namun waktu atau sumberdaya yang dibutuhkan
dalam pencarian solusinya sangat besar.
4. Bila pencarian berakhir, umumkan solusi terbaik.
7. a. Instagram Friend Suggestions
Instagram Friend Suggestions merupakan fitur dari
Instagram yang digunakan untuk pengguna mendapatkan
rekomendasi akun untuk di-ikuti. Instagram akan
memberikan rekomendasi akun yang banyak diikuti oleh
orang-orang yang pengguna ikuti.
Implementasi Algoritma pada fitur
Friend Suggestions
01
02
03
04
05
06
8. Dalam mengimplementasikan algoritma Brute-Force untuk
mencari friend suggestions, diperlukan beberapa tahap,
yaitu :
1. Menerima sebuah list berisi daftar akun yang saling
mengikuti satu sama lain. List ini didapatkan dari
sebuah file dan akan di ekstrak dengan cara berikut :
b. Implementasi Algoritma
9.
10. 2. Menerima nama sebuah user yang ingin dijadikan acuan untuk dicarikan friend
suggestions-nya.
3. Membuat sebuah list kosong untuk menyimpan daftar akun yang diikuti oleh
teman-teman akun acuan dan juga list kosong untuk menyimpan nama akun yang
difollow oleh akun acuan
4. Melakukan iterasi pada seluruh elemen berbentuk pair yang terdapat pada list
yang dihasilkan oleh file :
a. Mencari elemen yang memiliki value berupa nama akun acuan
b. Menyimpan value dari pasangan elemen sebelumnya ke dalam list kosong
penyimpanan akun yang difollow oleh akun acuan
c. Melakukan iterasi terhadap list untuk mencari elemen yang salah satu value-
nya adalah pasangan dari akun acuan yang didapatkan pada tahap
sebelumnya.dan menyimpan seluruh elemen pada list kosong untuk menyimpan
nama akun rekomendasi
11. 5. Menghilangkan akun mutual (sudah diikuti oleh akun acuan) dari list yang
menyimpan nama-nama akun rekomendasi.
6. Mencari jumlah mutual yang dimiliki oleh list dengan akun acuan.
Implementasinya adalah sebagai berikut :
12. 7. Mengurutkan list jumlah mutual dari yang terbesar hingga terkecil
dengan implementasi sebagai berikut :
13. Pengujian
Untuk menguji kode, dibutuhkan sebuah file yang berisi list nama akun yang saling
mengikuti satu sama lain.Kemudian, akan dipilih salah satu akun yang ingin
dijadikan sebagai acuan untuk mencari rekomendasi pertemanan. Pada pengujian
pertama, akan dipilih akun 1 sebagai acuan.
14. Dari gambar di atas, terlihat bahwa ada 5 rekomendasi akun yang diberikan
algoritma untuk pengguna terurut mengecil sesuai jumlah teman yang sudah
mengikuti akun tersebut. Berdasarkan file yang diterima, dapat ditelaah bahwa
akun1 (akun acuan) mengikuti akun2, akun3, akun10, dan akun5. Sedangkan akun-
akun tersebut mengikuti:
15. Dari list diatas, dengan mengkurasi akun-akun yang sudah diikuti oleh akun
acuan juga akun-akun yang tertulis lebih dari 1x, maka dihasilkan list
rekomendasi sebagai berikut :
17. Contoh Algoritma Brute Force
1. Mencari elemen terbesar (terkecil)
Persoalan: Diberikan sebuah senarai yang beranggotakan n
buah bilangan bulat (a1, a2, …, an). Carilah elemen terbesar di
dalam senarai tersebut.
Algoritma brute force: bandingkan setiap elemen senarai
untuk menemukan elemen terbesar
18.
19. Contoh Algoritma Brute Force
2. Pencarian beruntun (Sequential Search)
Persoalan: Diberikan senarai yang berisi n buah bilangan
bulat (a1, a2, …, an). Carilah nilai x di dalam senara tersebut. Jika x
ditemukan, maka keluarannya adalah indeks elemen senarai, jika
x tidak ditemukan, maka keluarannya adalah 0.
Algoritma brute force (sequential serach): setiap elemen
senarai dibandingkan dengan x. Pencarian selesai jika x
ditemukan atau elemen senarai sudah habis diperiksa.
22. Contoh Algoritma Brute Force
1. Menghitung an (a > 0, n adalah bilangan bulat tak-negatif)
Definisi:
an = a x a x … x a (n kali) , jika n > 0
= 1, jika n = 0
Algoritma brute force: kalikan 1 dengan a sebanyak n kali
23.
24. Contoh Algoritma Brute Force
2. Menghitung n! (n bilangan bulat tak-negatif)
Definisi:
n! = 1 × 2 × 3 × … × n , jika n > 0
= 1 , jika n = 0
Algoritma brute force: kalikan n buah bilangan, yaitu 1, 2,
3, …, n, bersama-sama
25.
26. Contoh Algoritma Brute Force
3. Mengalikan dua buah matriks A dan B
Definisi:
Misalkan C = A × B dan elemen-elemen matrik dinyatakan sebagai cij,
aij, dan bij
Algoritma brute force: hitung setiap elemen hasil perkalian satu per satu,
dengan cara mengalikan dua vektor yang panjangnya n.
27.
28. Kesimpulan
Algoritma Brute Force dapat diimplementasikan dalam berbagai hal di
kehidupan sehari-hari, contohnya adalah pada fitur Friend Suggestions di
Instagram. Setiap pasangan akun yang saling mengikuti satu sama lain akan
dikumpulkan dalam sebuah List yang kemudian akan diproses menggunakan
algoritma Brute Force untuk mencari rekomendasi akun yang paling banyak
difollow oleh teman-teman pengguna akun utama. Namun, apabila
diperhatikan, algoritma membutuhkan waktu yang cukup lama untuk bisa
menghasilkan list rekomendasi. Oleh sebab itu, diperlukan adaptasi lebih lanjut
agar program bisa jalan dengan lebih cepat dan efisien.