SlideShare a Scribd company logo
BINARY SEARCH
Praktikum Algoritma dan Pemrograman
Teknik Informatika UIN Sunan Gunung Djati Bandung
Agus Andri Putra, ST.
PENDAHULUAN
• Salah satu syarat agar binary search dapat dilakukan adalah data sudah
dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan
urut, binary search tidak dapat dilakukan.
• Sebuah algoritma pencarian biner (atau pemilahan biner) adalah sebuah
teknik untuk menemukan nilai tertentu dalam sebuah larik (array) linear,
dengan menghilangkan setengah data pada setiap langkah
• Sebuah pencarian biner mencari nilai tengah (median), melakukan
pembandingan untuk menentukan apakah nilai yang dicari ada sebelum
atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang
sama. Sebuah pencarian biner adalah salah satu contoh dari algoritma
divide and conquer (atau lebih khusus algoritma decrease and conquer)
dan sebuah pencarian dikotomi.
ATURAN BINARY SEARCH
• Prinsip dari Binary search dapat dijelaskan sebagai berikut :
• Mula-mula diambil posisi awal 0 dan posisi akhir = N-1, kemudian dicari
posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data
yang dicari dibandingkan dengan data tengah.
• Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap
sama dengan posisi tengah –1.
• Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap
sama dengan posisi tengah +1.
• Jika data sama, berarti data ditemukan.
ALGORITMA
• Penerapan terbanyak dari pencarian biner adalah untuk mencari
sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan,
pencarian biner dapat dilihat sebagai sebuah permainan tebak-
tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari
daftar (list) nilai.
• Pencarian diawali dengan memeriksa nilai yang ada pada posisi
tengah list, oleh karena nilai-nilainya terurut, kita mengetahui apakah
nilai terletak sebelum atau sesudah nilai yang di tengah tersebut,
dan pencarian selanjutnya dilakukan terhadap setengah bagian
dengan cara yang sama.
PENCARIAN BINER (BINARY SEARCH) DILAKUKAN UNTUK :
• memperkecil jumlah operasi pembandingan yang harus dilakukan
antara data yang dicari dengan data yang ada di dalam tabel,
khususnya untuk jumlah data yang sangat besar ukurannya.
• Prinsip dasarnya adalah melakukan proses pembagian ruang
pencarian secara berulang-ulang sampai data ditemukan atau
sampai ruang pencarian tidak dapat dibagi lagi (berarti ada
kemungkinan data tidak ditemukan).
• Syarat utama untuk pencarian biner adalah data di dalam tabel
harus sudah terurut, misalkan terurut menaik.
CONTOH PENULISAN ALGORITMA BINARY SEARCH
Kamus
Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 }
Type A = array [ 1 ..... N ] of integer
Cari, BatasAtas, BatasBawah, Tengah : Integer
Ketemu : boolean
ALGORITMA
Input (cari) { meminta nilai data yang akan dicari}
BatasAtas  1 { indeks array dimulai dari 1 }
BatasBawah  N
Ketemu  False
While (BatasAtas < BatasBawah) and (not ketemu) do
Tengah  (BatasAtas + BatasBawah) div 2
If A [Tengah] = cari then
Ketemu  true
Else
If ( A [Tengah] < cari ) then { cari di bagian kanan }
BatasAtas  Tengah + 1
Else
BatasBawah  Tengah – 1 { cari di bagian kiri }
Endif
Endif
EndWhile
If (ketemu) then
Output ( ‘Data berada di index nomor’, Tengah )
Else Output ( ‘Data tidak ditemukan’ )
Endif
CONTOH DATA KASUS
Kasus 1 : cari = 12
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan
Kasus 2 : cari = 15
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 8) div 2 = 6
A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah - 1 = 6 - 1 = 5
Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 5) div 2 = 5
A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan
Kasus 3 : cari = 10
Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4
A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah - 1 = 4 - 1 = 3
Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 3) div 2 = 2
A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3
Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (3 + 3) div 2 = 3
A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan
Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali. Untuk contoh di atas, jumlah data 8, maka
proses pembandingan maksimal sebanyak 3 kali.

More Related Content

PDF
7 Metode Pencarian Data Array
PDF
Teknik Searching
PPTX
Sorting ppt
PDF
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
PDF
Pemrograman Web 5 - Javascript
PPTX
Algoritma pencarian (searching algorithm)
PPTX
Materi : Struktur Data (1 Pengantar)
7 Metode Pencarian Data Array
Teknik Searching
Sorting ppt
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
Pemrograman Web 5 - Javascript
Algoritma pencarian (searching algorithm)
Materi : Struktur Data (1 Pengantar)

What's hot (20)

PPTX
Pewarisan (inheritance) pada JAVA
PPTX
Data mining 1 pengantar
PPTX
membuat function dalam mysql
PDF
Tugas Dampak Positif Dan Negatif IMK
PDF
Algoritma dan Struktur Data - Binary Search
PPTX
Algoritma Greedy (contoh soal)
PPT
Forward Backward Chaining
PDF
Konsep Inheritance
PDF
IT BSC and Strategic Alignment Model (SAM)
PPT
System Unit
PDF
PHP CRUD Database Mysql
PDF
6 Algoritma Pengurutan Data
PDF
3 rekayasa kebutuhan
PDF
Algoritma dan Struktur Data - Sequential Search
PDF
4 diagram relasi antar entitas (ERD)
DOC
My Project "Sistem Database (MySQL) : Pemesanan Makanan dan Minuman Online"
DOCX
Caesar cipher adalah algoritma cipher
PPTX
Sistem Pakar Certainty factor
ODP
Kode etik profesi it
PPT
Sistem Basis Data(PPT)
Pewarisan (inheritance) pada JAVA
Data mining 1 pengantar
membuat function dalam mysql
Tugas Dampak Positif Dan Negatif IMK
Algoritma dan Struktur Data - Binary Search
Algoritma Greedy (contoh soal)
Forward Backward Chaining
Konsep Inheritance
IT BSC and Strategic Alignment Model (SAM)
System Unit
PHP CRUD Database Mysql
6 Algoritma Pengurutan Data
3 rekayasa kebutuhan
Algoritma dan Struktur Data - Sequential Search
4 diagram relasi antar entitas (ERD)
My Project "Sistem Database (MySQL) : Pemesanan Makanan dan Minuman Online"
Caesar cipher adalah algoritma cipher
Sistem Pakar Certainty factor
Kode etik profesi it
Sistem Basis Data(PPT)
Ad

Similar to Binary Search pada Java (20)

PPTX
MATERI SEARCHING adalah materi komputasional thinking.pptx
PPTX
Asd sesi searching part1
PDF
Ifc modul 5 (searching)
PPTX
Modul pembelajaran Searching Algorithm.pptx
PDF
Pertemuan 11 Tehnik Searching
PPTX
Algoritma Divide and Conquer (Sorting & Searching)
PPTX
7. Algoritma.pptx
PDF
Pertemuan 11 Tehnik Searching
DOCX
Makalah pencarian dan pengurutan data
PDF
ALPRO SEARCHING K.4.pdf
PPTX
TUGAS TIK.pptx
PPTX
Tiga macam titik ALGORITMA PENCARIAN.pptx
DOCX
Binary search
DOC
tugas algoritma
PDF
Array statis if
PDF
Struktur data pertemuan 12
DOC
Algoritma Sorting
PDF
Algoritma Searching Sorting Stack dan Queue Kelas 10
PPTX
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
PPTX
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
MATERI SEARCHING adalah materi komputasional thinking.pptx
Asd sesi searching part1
Ifc modul 5 (searching)
Modul pembelajaran Searching Algorithm.pptx
Pertemuan 11 Tehnik Searching
Algoritma Divide and Conquer (Sorting & Searching)
7. Algoritma.pptx
Pertemuan 11 Tehnik Searching
Makalah pencarian dan pengurutan data
ALPRO SEARCHING K.4.pdf
TUGAS TIK.pptx
Tiga macam titik ALGORITMA PENCARIAN.pptx
Binary search
tugas algoritma
Array statis if
Struktur data pertemuan 12
Algoritma Sorting
Algoritma Searching Sorting Stack dan Queue Kelas 10
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Berpikir Komputasional Informatika Fase E SMA Kelas 1.pptx
Ad

More from Putra Andry (20)

PPTX
Sequential Search
PPTX
Insertion Sort
PPTX
Pertemuan viii Sorting
PPTX
Pertemuan vi (Function Java)
PPTX
Pertemuan V
PPTX
Pertemuan iv
PPTX
Function
PPTX
Procedure dalam Pascal
PPTX
Pertemuan 9
PPTX
Trigger
PPTX
Pengolahan transaksi
PPTX
Stored procedure
PPTX
Pertemuan 8
PPTX
Membuat responsif html email sederhana
PPTX
PPTX
Akses multiple table part2
PPTX
Sql outer join
PPTX
Akses multiple table part1
PPTX
Dasar Pemrograman Part VII
PPTX
Dasar Pemrograman Part VI
Sequential Search
Insertion Sort
Pertemuan viii Sorting
Pertemuan vi (Function Java)
Pertemuan V
Pertemuan iv
Function
Procedure dalam Pascal
Pertemuan 9
Trigger
Pengolahan transaksi
Stored procedure
Pertemuan 8
Membuat responsif html email sederhana
Akses multiple table part2
Sql outer join
Akses multiple table part1
Dasar Pemrograman Part VII
Dasar Pemrograman Part VI

Recently uploaded (20)

PPTX
PENGIMBASAN PEMBELAJARAN MENDALAM (DEEP LEARNING)
PPTX
Bahan Presentasi Persamaan Elips .pptx
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
PDF
Materi Seminar AITalks: AI dan Konseling GPT
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Tari Kelas XII Terbaru 2025
PPTX
PPT SURAT AL FIL LOMBA MAPSI SEKOLAH DASAR
DOCX
Lembar Kerja Mahasiswa Information System
DOCX
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
PPTX
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
PDF
Materi Seminar AITalks AI dan Suku Digital
PPTX
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
DOCX
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
PDF
883668952-KP-4-Modul-2-Kerangka-Pembelajaran-Mendalam.pdf
PDF
Pengenalan Undang-undang pengakap laut.pdf
PDF
KELOMPOK 4 LK Modul 4 KP4 Asesmen PM (3).pdf
DOCX
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPTX
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
PDF
Lembar Kerja Mahasiswa Konsep Sistem Operasi
PDF
lembar kerja LMS tugas pembelajaran mendalam
PENGIMBASAN PEMBELAJARAN MENDALAM (DEEP LEARNING)
Bahan Presentasi Persamaan Elips .pptx
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
Materi Seminar AITalks: AI dan Konseling GPT
Modul Ajar Pembelajaran Mendalam Senbud Seni Tari Kelas XII Terbaru 2025
PPT SURAT AL FIL LOMBA MAPSI SEKOLAH DASAR
Lembar Kerja Mahasiswa Information System
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
Materi Seminar AITalks AI dan Suku Digital
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
883668952-KP-4-Modul-2-Kerangka-Pembelajaran-Mendalam.pdf
Pengenalan Undang-undang pengakap laut.pdf
KELOMPOK 4 LK Modul 4 KP4 Asesmen PM (3).pdf
Modul Ajar Deep Learning PAI & BP Kelas 10 SMA Terbaru 2025
PPT MATERI KODING DAN KECERDASAN ARTIFISIAL UNTUK PEMBELAJARAN
Lembar Kerja Mahasiswa Konsep Sistem Operasi
lembar kerja LMS tugas pembelajaran mendalam

Binary Search pada Java

  • 1. BINARY SEARCH Praktikum Algoritma dan Pemrograman Teknik Informatika UIN Sunan Gunung Djati Bandung Agus Andri Putra, ST.
  • 2. PENDAHULUAN • Salah satu syarat agar binary search dapat dilakukan adalah data sudah dalam keadaan urut. Dengan kata lain, apabila data belum dalam keadaan urut, binary search tidak dapat dilakukan. • Sebuah algoritma pencarian biner (atau pemilahan biner) adalah sebuah teknik untuk menemukan nilai tertentu dalam sebuah larik (array) linear, dengan menghilangkan setengah data pada setiap langkah • Sebuah pencarian biner mencari nilai tengah (median), melakukan pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Sebuah pencarian biner adalah salah satu contoh dari algoritma divide and conquer (atau lebih khusus algoritma decrease and conquer) dan sebuah pencarian dikotomi.
  • 3. ATURAN BINARY SEARCH • Prinsip dari Binary search dapat dijelaskan sebagai berikut : • Mula-mula diambil posisi awal 0 dan posisi akhir = N-1, kemudian dicari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data tengah. • Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah –1. • Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1. • Jika data sama, berarti data ditemukan.
  • 4. ALGORITMA • Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan tebak- tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list) nilai. • Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list, oleh karena nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara yang sama.
  • 5. PENCARIAN BINER (BINARY SEARCH) DILAKUKAN UNTUK : • memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya. • Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan). • Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.
  • 6. CONTOH PENULISAN ALGORITMA BINARY SEARCH Kamus Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 } Type A = array [ 1 ..... N ] of integer Cari, BatasAtas, BatasBawah, Tengah : Integer Ketemu : boolean ALGORITMA Input (cari) { meminta nilai data yang akan dicari} BatasAtas  1 { indeks array dimulai dari 1 } BatasBawah  N Ketemu  False While (BatasAtas < BatasBawah) and (not ketemu) do Tengah  (BatasAtas + BatasBawah) div 2 If A [Tengah] = cari then Ketemu  true Else If ( A [Tengah] < cari ) then { cari di bagian kanan } BatasAtas  Tengah + 1 Else BatasBawah  Tengah – 1 { cari di bagian kiri } Endif Endif EndWhile If (ketemu) then Output ( ‘Data berada di index nomor’, Tengah ) Else Output ( ‘Data tidak ditemukan’ ) Endif
  • 7. CONTOH DATA KASUS Kasus 1 : cari = 12 Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4 A [Tengah] = A [4] = 12, berarti loop pertama data langsung ditemukan Kasus 2 : cari = 15 Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4 A [Tengah] = A [4] = 12 < cari = 15, berarti BatasAtas = Tengah + 1 = 4 + 1 = 5 Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 8) div 2 = 6 A [Tengah] = A [6] = 25 > cari = 15, berarti BatasBawah = Tengah - 1 = 6 - 1 = 5 Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (5 + 5) div 2 = 5 A [Tengah] = A [5] = 15, berarti setelah loop ketiga, data ditemukan Kasus 3 : cari = 10 Loop pertama : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 8) div 2 = 4 A [Tengah] = A [4] = 12 > cari = 10, berarti BatasBawah = Tengah - 1 = 4 - 1 = 3 Loop kedua : Tengah = (BatasAtas + BatasBawah) div 2 = (1 + 3) div 2 = 2 A [Tengah] = A [2] = 5 < cari = 10, berarti BatasAtas = Tengah + 1 = 2 + 1 = 3 Loop ketiga : Tengah = (BatasAtas + BatasBawah) div 2 = (3 + 3) div 2 = 3 A [Tengah] = A [3] = 8, berarti setelah loop ketiga, data tidak ditemukan Untuk jumlah data sebanyak n, maka proses pembandingan maksimal sebanyak ( log n ) kali. Untuk contoh di atas, jumlah data 8, maka proses pembandingan maksimal sebanyak 3 kali.