0% menganggap dokumen ini bermanfaat (0 suara)
169 tayangan5 halaman

Tugas 3 Struktur Data

tugas 3 struktur data UT

Diunggah oleh

Ranissa Abilla
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
169 tayangan5 halaman

Tugas 3 Struktur Data

tugas 3 struktur data UT

Diunggah oleh

Ranissa Abilla
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 5

NAMA : AULIA NURHUDA

NIM : 047960114
MATA KULIAH : TUGAS 3 STURKTUR DATA

1. Program Sequential Search dengan Java


Berikut adalah implementasi program pencarian menggunakan algoritma Sequential Search
dalam bahasa Java:

```java
Public class SequentialSearch {
Public static void main(String[] args) {
Int[] data = {15, 23, 7, 9, 31}; // Data yang akan
dicari
Int n = 9; // Nilai yang akan dicari

Int index = sequentialSearch(data, n);


If (index != -1) {
System.out.println(“Nilai “ + n + “ ditemukan pada
indeks: “ + index);
} else {
System.out.println(“Nilai “ + n + “ tidak
ditemukan dalam array.”);
}
}

Public static int sequentialSearch(int[] arr, int x) {


For (int i = 0; i < arr.length; i++) {
If (arr[i] == x) {
Return i; // Mengembalikan indeks jika
ditemukan
}
}
Return -1; // Mengembalikan -1 jika tidak ditemukan
}
}
```

Penjelasan Proses Sequential Search

1. Inisialisasi Data:
- Data array diinisialisasi dengan nilai `[15, 23, 7, 9, 31]`.
- Nilai `n` yang akan dicari adalah `9`.

2. Looping Melalui Array:


- Fungsi `sequentialSearch` menerima array dan nilai `n`.
- Looping melalui setiap elemen array menggunakan indeks `i`.
- Pada setiap iterasi, memeriksa apakah elemen array pada indeks `i` sama dengan `n`.

3. Pemeriksaan Kondisi:
- Jika elemen sama dengan `n`, mengembalikan indeks `i`.
- Jika setelah loop selesai nilai tidak ditemukan, mengembalikan `-1`.

4. Output:
- Jika `index` bukan `-1`, menampilkan pesan bahwa nilai ditemukan pada indeks tersebut.
- Jika `index` adalah `-1`, menampilkan pesan bahwa nilai tidak ditemukan.

Program Binary Search dengan Java

Berikut adalah implementasi program pencarian menggunakan algoritma Binary Search


dalam bahasa Java:
```java
Import java.util.Arrays;

Public class BinarySearch {


Public static void main(String[] args) {
Int[] data = {7, 9, 15, 23, 31}; // Data yang akan
dicari, harus dalam urutan yang terurut
Int n = 23; // Nilai yang akan dicari

Int index = binarySearch(data, n);


If (index != -1) {
System.out.println(“Nilai “ + n + “ ditemukan pada
indeks: “ + index);
} else {
System.out.println(“Nilai “ + n + “ tidak
ditemukan dalam array.”);
}
}

Public static int binarySearch(int[] arr, int x) {


Int left = 0;
Int right = arr.length – 1;

While (left <= right) {


Int mid = left + (right – left) / 2;

// Cek apakah x ada di tengah


If (arr[mid] == x) {
Return mid;
}
// Jika x lebih besar, abaikan bagian kiri
If (arr[mid] < x) {
Left = mid + 1;
}
// Jika x lebih kecil, abaikan bagian kanan
Else {
Right = mid – 1;
}
}

Return -1; // Mengembalikan -1 jika tidak ditemukan


}
}
```

2. Penjelasan Proses Binary Search

1. Inisialisasi Data:
- Data array diinisialisasi dengan nilai `[7, 9, 15, 23, 31]` (data harus diurutkan).
- Nilai `n` yang akan dicari adalah `23`.

2. Inisialisasi Variabel:
- Variabel `left` diatur ke `0` dan `right` diatur ke panjang array minus satu (`4`).

3. Looping dan Pembagian Array:


- Fungsi `binarySearch` menggunakan loop `while` untuk membagi array menjadi dua
bagian.
- Menentukan indeks tengah (`mid`) sebagai `left + (right – left) / 2`.
- Memeriksa apakah elemen pada `mid` sama dengan `x`.
4. Pemeriksaan Kondisi:
- Jika elemen sama dengan `x`, mengembalikan indeks `mid`.
- Jika elemen lebih kecil dari `x`, mengabaikan bagian kiri dengan mengatur `left` ke `mid
+ 1`.
- Jika elemen lebih besar dari `x`, mengabaikan bagian kanan dengan mengatur `right` ke
`mid – 1`.

5. Output:
- Jika `index` bukan `-1`, menampilkan pesan bahwa nilai ditemukan pada indeks tersebut.
- Jika `index` adalah `-1`, menampilkan pesan bahwa nilai tidak ditemukan.

Analisis Kinerja

Sequential Search:
- Kompleksitas Waktu: O(n)
- Sequential search memeriksa setiap elemen satu per satu sehingga lebih lambat pada dataset
yang besar.
- Keuntungan: Tidak memerlukan data yang terurut.

Binary Search:
- Kompleksitas Waktu: O(log n)
- Binary search lebih cepat karena terus membagi array menjadi dua, mengurangi jumlah
elemen yang harus diperiksa setiap kali.
- Keterbatasan: Membutuhkan data yang sudah terurut.

Dari analisis di atas, Binary Search lebih efisien dalam hal waktu eksekusi jika data sudah
diurutkan, sementara Sequential Search lebih fleksibel tetapi kurang efisien untuk dataset
yang besar.

Anda mungkin juga menyukai