Menu
CoddyTech

Mencari dalam list: indexOf

Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 6 dari 65.

Saat kamu perlu mencari lokasi elemen tertentu dalam list, Dart menyediakan method indexOf(). Method ini menelusuri list dan mengembalikan posisi indeks kemunculan pertama elemen yang kamu cari.

method indexOf() menerima elemen yang ingin kamu cari sebagai parameternya dan mengembalikan bilangan bulat. Jika elemen tersebut ada dalam list, method ini mengembalikan posisi indeksnya (dimulai dari 0). Jika elemen tersebut tidak ditemukan, method ini mengembalikan -1.

List<String> fruits = ['apple', 'banana', 'orange', 'banana'];

int appleIndex = fruits.indexOf('apple');    // 0
int bananaIndex = fruits.indexOf('banana');  // 1 (kemunculan pertama)
int grapeIndex = fruits.indexOf('grape');    // -1 (tidak ditemukan)

method ini sangat berguna saat kamu perlu mengetahui posisi item sebelum melakukan operasi seperti penyisipan atau penghapusan di lokasi tertentu. Ingat bahwa indexOf() hanya menemukan kecocokan pertama, jadi jika sebuah elemen muncul beberapa kali, kamu akan mendapatkan indeks kemunculan pertamanya.

challenge icon

Tantangan

Mudah

Buat program yang mengelola sistem pencarian buku perpustakaan dengan menemukan lokasi buku tertentu di rak. Programmu harus:

  1. Membaca input string yang mewakili nama bagian perpustakaan
  2. Membaca beberapa input string yang mewakili judul buku di rak, input akan berakhir saat kamu menerima string kosong
  3. Membaca input string yang mewakili judul buku yang akan dicari
  4. Menggunakan method indexOf() untuk menemukan posisi buku yang diminta
  5. Mencetak hasil pencarian dengan format persis seperti yang ditunjukkan di bawah

Misalnya, jika bagian perpustakaannya adalah "Science Fiction", bukunya adalah "Dune", "Foundation", "Neuromancer", "Foundation", "Ender's Game", dan buku yang dicari adalah "Foundation", programmu harus menghasilkan:

Library Section: Science Fiction
Books on shelf: [Dune, Foundation, Neuromancer, Foundation, Ender's Game]
Searching for: Foundation
Book found at position: 1
Status: Book located successfully

Jika bagian perpustakaannya adalah "Mystery", bukunya adalah "Sherlock Holmes", "Agatha Christie", "The Maltese Falcon", dan buku yang dicari adalah "Gone Girl", programmu harus menghasilkan:

Library Section: Mystery
Books on shelf: [Sherlock Holmes, Agatha Christie, The Maltese Falcon]
Searching for: Gone Girl
Book found at position: -1
Status: Book not available

Programmu harus menggunakan method indexOf() untuk mencari buku. Jika buku ditemukan (position >= 0), tampilkan "Book located successfully". Jika buku tidak ditemukan (position = -1), tampilkan "Book not available". Ingat, indexOf() mengembalikan posisi kemunculan pertama jika buku muncul beberapa kali.

Coba sendiri

import 'dart:io';

void main() {
  // Baca nama bagian library
  String? section = stdin.readLineSync();
  
  // Baca judul buku hingga menemukan string kosong
  List<String> books = [];
  String? book;
  while ((book = stdin.readLineSync()) != null && book!.isNotEmpty) {
    books.add(book);
  }
  
  // Baca judul buku yang akan dicari
  String? searchBook = stdin.readLineSync();
  
  // TODO: Tulis kodemu di bawah ini
  // Gunakan method indexOf() untuk menemukan posisi buku
  
  // Cetak hasilnya dalam format yang diminta
  print('Library Section: $section');
  print('Books on shelf: $books');
  print('Searching for: $searchBook');
  // Cetak posisi dan status berdasarkan hasil pencarianmu
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Dart online