Menu
CoddyTech

Menghapus Elemen

Termasuk bagian Logika dan Alur dalam perjalanan C# di Coddy. Pelajaran 58 dari 66.

method Remove(element) menghapus elemen yang ditentukan dari HashSet, jika elemen tersebut ada. method ini mengembalikan true jika elemen berhasil dihapus, dan false jika elemen tidak ditemukan di set.

Buat HashSet kosong:

HashSet<string> fruits = new HashSet<string>();

Tambahkan beberapa elemen ke set:

fruits.Add("Apple");
fruits.Add("Banana");
fruits.Add("Cherry");

Set fruits berisi setelah menjalankan kode di atas:

["Apple", "Banana", "Cherry"]

Sekarang, hapus "Banana" dari set:

bool wasRemoved = fruits.Remove("Banana");

Setelah penghapusan, set berisi:

["Apple", "Cherry"]

Nilai wasRemoved akan bernilai true karena "Banana" ditemukan dan dihapus.

Jika kita mencoba menghapus elemen yang tidak ada:

bool wasRemoved = fruits.Remove("Orange");

set tetap tidak berubah, dan wasRemoved akan bernilai false.

challenge icon

Tantangan

Mudah

Buat method bernama RemoveElement yang menerima dua argumen:

  1. HashSet berisi string (set)
  2. String (element) yang akan dihapus

Method tersebut harus mencoba menghapus elemen yang diberikan dari set. Jika elemen berhasil dihapus, cetak "Element removed: True", jika tidak, cetak "Element removed: False". Lalu, cetak set yang sudah diperbarui pada baris baru.

Coba sendiri

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;

public class Program
{
    public static void RemoveElement(HashSet<string> set, string element)
    {
        // Tulis kodemu di sini
    }
    
    public static void Main()
    {
        HashSet<string> set = new HashSet<string>();
        
        // Baca baris pertama untuk memeriksa apakah formatnya JSON
        string firstLine = Console.ReadLine();
        string elementToRemove;
        
        // Periksa apakah input berformat array JSON
        if (firstLine != null && firstLine.StartsWith("[") && firstLine.EndsWith("]"))
        {
            try
            {
                // Ambil isi di antara tanda kurung siku
                string arrayContent = firstLine.Substring(1, firstLine.Length - 2);
                
                // Gunakan regex untuk mencocokkan semua string dalam tanda kutip
                MatchCollection matches = Regex.Matches(arrayContent, @"""([^""]*)""");
                
                foreach (Match match in matches)
                {
                    // Tambahkan grup yang ditangkap (tanpa tanda kutip)
                    if (match.Groups.Count > 1)
                    {
                        set.Add(match.Groups[1].Value.Trim());
                    }
                }
                
                // Baca baris kedua untuk mendapatkan elemen yang akan dihapus
                string secondLine = Console.ReadLine();
                
                // Periksa apakah elemen berformat string JSON
                Match elementMatch = Regex.Match(secondLine, @"""([^""]*)""");
                if (elementMatch.Success && elementMatch.Groups.Count > 1)
                {
                    elementToRemove = elementMatch.Groups[1].Value;
                }
                else
                {
                    elementToRemove = secondLine;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error parsing JSON input: {ex.Message}");
                return;
            }
        }
        else
        {
            // Proses input berformat biasa
            string[] elements = firstLine.Split(',');
            foreach (string element in elements)
            {
                set.Add(element.Trim());
            }
            
            // Baca elemen yang akan dihapus dalam format biasa
            elementToRemove = Console.ReadLine();
        }
        
        RemoveElement(set, elementToRemove);
    }
}
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 C# online