Menambahkan dan menghapus elemen dari set
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 19 dari 65.
Setelah memiliki Set, kamu sering perlu mengubah isinya dengan menambahkan elemen baru atau menghapus elemen yang sudah ada. Method add() dan remove() menyediakan cara mudah untuk mengelola elemen-elemen set-mu.
method add() mencoba memasukkan elemen baru ke dalam set. Namun, karena set hanya menyimpan nilai unik, jika kamu mencoba menambahkan elemen yang sudah ada, method tersebut tidak melakukan apa pun, tidak terjadi error dan set tetap tidak berubah.
Set<String> usernames = {'alice', 'bob', 'charlie'};
usernames.add('diana'); // Berhasil menambahkan 'diana'
usernames.add('alice'); // Tidak mengubah apa pun karena 'alice' sudah ada
print(usernames); // {alice, bob, charlie, diana}Method remove() bekerja dengan mengambil nilai yang ingin kamu hapus, lalu menghapusnya dari set. Jika elemen tersebut tidak ada di dalam set, method ini tidak melakukan apa pun, sehingga aman digunakan tanpa memeriksanya terlebih dahulu.
usernames.remove('bob'); // Menghapus 'bob'
usernames.remove('unknown'); // Tidak melakukan apa-apa karena elemen tidak ditemukan
print(usernames); // {alice, charlie, diana}Tantangan
MudahBuat program yang mengelola sistem kolaborasi tim dengan menambahkan anggota tim baru dan menghapus anggota yang tidak aktif dari tim proyek. Programmu harus:
- Membaca input string yang mewakili nama proyek
- Membaca beberapa input string yang mewakili anggota tim awal (input akan berakhir saat kamu menerima
"initial_done") - Membaca beberapa input string yang mewakili anggota baru yang akan ditambahkan (input akan berakhir saat kamu menerima
"add_done") - Membaca beberapa input string yang mewakili anggota yang akan dihapus (input akan berakhir saat kamu menerima
"remove_done") - Membuat sebuah Set dengan anggota tim awal
- Menggunakan method
add()untuk menambahkan setiap anggota baru ke tim - Menggunakan method
remove()untuk menghapus setiap anggota yang ditentukan dari tim - Mencetak hasil pengelolaan tim dengan format persis seperti yang ditunjukkan di bawah
Misalnya, jika nama proyeknya adalah "Mobile App Development", anggota awalnya adalah "Alice", "Bob", "Charlie", anggota baru yang akan ditambahkan adalah "Diana", "Alice", "Eve", dan anggota yang akan dihapus adalah "Bob", "Frank", programmu harus menghasilkan:
Project: Mobile App Development
Initial team: {Alice, Bob, Charlie}
Adding new members: [Diana, Alice, Eve]
After adding members: {Alice, Bob, Charlie, Diana, Eve}
Removing members: [Bob, Frank]
Final team: {Alice, Charlie, Diana, Eve}
Team size: 4
Status: Team updated successfullyJika nama proyeknya adalah "Website Redesign", anggota awalnya adalah "John", "Sarah", anggota baru yang akan ditambahkan adalah "Mike", "John", dan anggota yang akan dihapus adalah "Sarah", "Unknown", programmu harus menghasilkan:
Project: Website Redesign
Initial team: {John, Sarah}
Adding new members: [Mike, John]
After adding members: {John, Sarah, Mike}
Removing members: [Sarah, Unknown]
Final team: {John, Mike}
Team size: 2
Status: Team updated successfullyJika nama proyeknya adalah "Data Analysis", anggota awalnya adalah "Emma", anggota baru yang akan ditambahkan adalah "Tom", "Lisa", dan anggota yang akan dihapus adalah "Emma", programmu harus menghasilkan:
Project: Data Analysis
Initial team: {Emma}
Adding new members: [Tom, Lisa]
After adding members: {Emma, Tom, Lisa}
Removing members: [Emma]
Final team: {Tom, Lisa}
Team size: 2
Status: Team updated successfullyProgrammu harus menunjukkan bahwa method add() tidak melakukan apa pun saat mencoba menambahkan anggota yang sudah ada, dan method remove() tidak melakukan apa pun saat mencoba menghapus anggota yang tidak ada. Simpan list input untuk menunjukkan operasi yang dicoba, lalu tampilkan isi Set setelah setiap operasi untuk menunjukkan sifat unik Set.
Coba sendiri
import 'dart:io';
void main() {
// Baca nama proyek
String? projectName = stdin.readLineSync();
// Baca anggota tim awal
List<String> initialMembers = [];
String? member;
while ((member = stdin.readLineSync()) != "initial_done") {
initialMembers.add(member!);
}
// Baca anggota baru yang akan ditambahkan
List<String> membersToAdd = [];
while ((member = stdin.readLineSync()) != "add_done") {
membersToAdd.add(member!);
}
// Baca anggota yang akan dihapus
List<String> membersToRemove = [];
while ((member = stdin.readLineSync()) != "remove_done") {
membersToRemove.add(member!);
}
// TODO: Tulis kodemu di bawah ini
// Buat Set berisi anggota tim awal
// Tambahkan anggota baru menggunakan method add()
// Hapus anggota menggunakan method remove()
// Cetak hasilnya dalam format yang diminta
print("Project: $projectName");
// Tambahkan pernyataan print lainnya di sini
}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