Fitur Pencarian
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Dart di Coddy. Pelajaran 104 dari 110.
Tantangan
MudahPada pelajaran sebelumnya, kamu membuat class Library dengan fungsi peminjaman dan pengembalian. Sekarang, mari tambahkan kemampuan pencarian agar pengguna dapat menemukan buku dalam koleksi library.
Kamu akan menyempurnakan class Library dengan tiga method pencarian baru yang membantu pengguna menemukan buku:
book.dart: Biarkan classBookyang sudah ada tetap seperti semula.user.dart: Biarkan classUseryang sudah ada tetap seperti semula.library.dart: Tambahkan tiga method pencarian ke classLibrary:searchByTitle(String query)- mengembalikanList<Book>yang berisi semua buku dengan judul yang memuat string kueri tersebut, tanpa membedakan huruf besar dan kecilsearchByAuthor(String query)- mengembalikanList<Book>yang berisi semua buku dengan nama penulis yang memuat string kueri tersebut, tanpa membedakan huruf besar dan kecilgetAvailableBooks()- mengembalikanList<Book>yang hanya berisi buku yang saat ini tersedia untuk dipinjam
main.dart: Tunjukkan fungsi pencarian. BuatLibrarydan tambahkan empat buku:978-0-13-468599-1,The Pragmatic Programmer,David Thomas978-0-596-51774-8,JavaScript: The Good Parts,Douglas Crockford978-0-13-235088-4,Clean Code,Robert Martin978-0-20-161622-4,The Pragmatic Programmer,Andrew Hunt
U001,Alice) dan pinjamkan buku pertama kepadanya. Lalu:- Cari buku yang judulnya memuat
pragmaticdan tampilkanTitle search 'pragmatic': X founddengan X sebagai jumlahnya - Cari buku berdasarkan penulis
daviddan tampilkanAuthor search 'david': X found - Dapatkan buku yang tersedia dan tampilkan
Available books: X - Tampilkan setiap buku yang tersedia pada barisnya sendiri
Output yang diharapkan:
U001 borrowed "The Pragmatic Programmer"
Title search 'pragmatic': 2 found
Author search 'david': 1 found
Available books: 3
[978-0-596-51774-8] JavaScript: The Good Parts by Douglas Crockford
[978-0-13-235088-4] Clean Code by Robert Martin
[978-0-20-161622-4] The Pragmatic Programmer by Andrew HuntCoba sendiri
import 'book.dart';
import 'user.dart';
import 'library.dart';
void main() {
// Buat Library
Library library = Library();
// TODO: Tambahkan empat buku ke library:
// 1. 978-0-13-468599-1, The Pragmatic Programmer, David Thomas
// 2. 978-0-596-51774-8, JavaScript: The Good Parts, Douglas Crockford
// 3. 978-0-13-235088-4, Clean Code, Robert Martin
// 4. 978-0-20-161622-4, The Pragmatic Programmer, Andrew Hunt
// TODO: Daftarkan pengguna (U001, Alice)
// TODO: Minta pengguna meminjam buku pertama
// TODO: Cari buku dengan 'pragmatic' dalam judulnya
// Cetak: Title search 'pragmatic': X ditemukan
// TODO: Cari buku karya penulis 'david'
// Cetak: Author search 'david': X ditemukan
// TODO: Ambil buku yang tersedia dan cetak: Available books: X
// TODO: Cetak setiap buku yang tersedia pada baris terpisah
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
file Eksternallibrary dan ImporPengantar OOPClass dan ObjectKata kunci thismethodVariabel InstanceDasar-Dasar ConstructorRingkasan: Kalkulator Sederhana4Keamanan Null
Pengantar Keamanan NullBisa Null vs Tidak Bisa NullOperator ? dan !Kata Kunci late dan Keamanan NullOperator Penanganan NullKeamanan Null dalam classRangkuman: Sistem Profil Pengguna7class Abstrak & Antarmuka
class AbstrakMethod abstrakAntarmuka di DartAntarmuka ImplisitMengimplementasikan vs MemperluasBeberapa AntarmukaRingkasan: Kalkulator Bentuk10Koleksi dan Generik
Gambaran Umum list, set, dan MapKoleksi dengan Tipe AmanKelas GenerikMetode GenerikBatasan GenerikIterable dan IteratorUlasan: Penyimpanan Generik13Konsep OOP Lanjutan
Komposisi vs PewarisanExtension methodClass yang Dapat DipanggilSealed class (Dart 3)Records (Dart 3)Pola dan Pencocokan (3.0)Enum dengan method16Proyek: Manajemen library
Ringkasan Proyekclass Buku dan Pengguna2Konstruktor dalam Dart
Konstruktor DefaultKonstruktor BernamaInitializer ListsKonstruktor KonstanKonstruktor FactoryKonstruktor RedirectingRangkuman, Pembuat Bentuk5Enkapsulasi
Member Publik vs PrivatKonvensi Prefiks _Privasi Tingkat libraryPendalaman Getter & SetterPenyembunyian InformasiRingkasan: Catatan Siswa8Mixin
Pengantar MixinMembuat MixinMenggunakan Beberapa MixinKata Kunci on pada MixinMixin vs. PewarisanMixin vs. InterfaceRangkuman: Sistem Hewan3Property Class
Anggota Instance vs StaticField Final dan ConstVariabel LateMethod dan Field StaticGetter dan SetterRangkuman: Pengelola Rekening Bank6Pewarisan
Pewarisan DasarKata Kunci superPenimpaan methodAnotasi @overrideKata Kunci class finalKonstruktor dan PewarisanRangkuman, Hierarki Karyawan9Polimorfisme
Dasar-Dasar PolimorfismePolimorfisme melalui AntarmukaPemeriksaan Tipe saat RuntimeOperator is & asKata Kunci KovarianRangkuman: Pemroses PembayaranLatihan sendiri: Compiler Dart online