Menu
CoddyTech

Subset dan Superset

Termasuk bagian Logika dan Alur dalam perjalanan JavaScript di Coddy. Pelajaran 40 dari 65.

Set A merupakan subset dari set B jika setiap elemen A juga merupakan elemen B. Sebaliknya, B merupakan superset dari A jika B berisi semua elemen A.

Dua set dikatakan sama jika keduanya berisi elemen yang persis sama. Sebagai contoh, mari buat beberapa pengujian:

const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2, 3, 4, 5]);
const setC = new Set([1, 2, 3]);
const setD = new Set([6, 7, 8]);

Fungsi untuk memeriksa apakah setA merupakan subset dari setB:

function isSubset(setA, setB) {
  return [...setA].every(element => setB.has(element));
}

Fungsi untuk memeriksa apakah setA merupakan superset dari setB:

function isSuperset(setA, setB) {
  return isSubset(setB, setA);
}

Fungsi untuk memeriksa apakah dua set sama:

function areEqual(setA, setB) {
  return setA.size === setB.size && isSubset(setA, setB);
}

Menguji hubungan subset:

// Apakah A merupakan subset dari B? 
isSubset(setA, setB) // true
// Apakah B merupakan subset dari A? 
isSubset(setB, setA) // false
// Apakah D merupakan subset dari B? 
isSubset(setD, setB) // false

Menguji hubungan superset:

// Apakah B merupakan superset dari A?
isSuperset(setB, setA) // true
// Apakah A merupakan superset dari B?
isSuperset(setA, setB) // false

Menguji kesamaan:

// Apakah A sama dengan C?
areEqual(setA, setC) // true
// Apakah A sama dengan B?
areEqual(setA, setB) // false
// Apakah A sama dengan D?
areEqual(setA, setD) // false
challenge icon

Tantangan

Mudah

Buat fungsi bernama analyzeSetRelations yang menerima dua array sebagai parameter: arr1 dan arr2. Fungsi ini harus mengubah array menjadi set dan mengembalikan object dengan property berikut:

  • isSubset: nilai boolean yang menunjukkan apakah set1 merupakan subset dari set2
  • isSuperset: nilai boolean yang menunjukkan apakah set1 merupakan superset dari set2
  • isEqual: nilai boolean yang menunjukkan apakah set1 dan set2 memiliki elemen yang sama persis

Coba sendiri

function analyzeSetRelations(arr1, arr2) {
    let set1 = new Set(arr1);
    let set2 = new Set(arr2);

    // Gunakan .every() dan .has() untuk memeriksa hubungan antar-set
    let isSubset = false;   // TODO: periksa apakah setiap elemen set1 ada di set2
    let isSuperset = false; // TODO: periksa apakah setiap elemen set2 ada di set1
    let isEqual = false;    // TODO: periksa apakah kedua set berukuran sama dan isSubset bernilai true

    return {
        isSubset: isSubset,
        isSuperset: isSuperset,
        isEqual: isEqual
    };
}
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 JavaScript online