Menu
CoddyTech

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}
challenge icon

Tantangan

Mudah

Buat program yang mengelola sistem kolaborasi tim dengan menambahkan anggota tim baru dan menghapus anggota yang tidak aktif dari tim proyek. Programmu harus:

  1. Membaca input string yang mewakili nama proyek
  2. Membaca beberapa input string yang mewakili anggota tim awal (input akan berakhir saat kamu menerima "initial_done")
  3. Membaca beberapa input string yang mewakili anggota baru yang akan ditambahkan (input akan berakhir saat kamu menerima "add_done")
  4. Membaca beberapa input string yang mewakili anggota yang akan dihapus (input akan berakhir saat kamu menerima "remove_done")
  5. Membuat sebuah Set dengan anggota tim awal
  6. Menggunakan method add() untuk menambahkan setiap anggota baru ke tim
  7. Menggunakan method remove() untuk menghapus setiap anggota yang ditentukan dari tim
  8. 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 successfully

Jika 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 successfully

Jika 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 successfully

Programmu 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
}
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