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.
Tantangan
MudahBuat program yang mengelola sistem pencarian buku perpustakaan dengan menemukan lokasi buku tertentu di rak. Programmu harus:
- Membaca input string yang mewakili nama bagian perpustakaan
- Membaca beberapa input string yang mewakili judul buku di rak, input akan berakhir saat kamu menerima string kosong
- Membaca input string yang mewakili judul buku yang akan dicari
- Menggunakan method
indexOf()untuk menemukan posisi buku yang diminta - 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 successfullyJika 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 availableProgrammu 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
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online