class Kamus:
    def __init__(self):
        self.dictionary = {}
    
    def tambah(self, kata, sinonim):
        """
        Menambahkan kata beserta sinonimnya ke dalam kamus
        :param kata: kata yang akan ditambahkan (string)
        :param sinonim: sinonim dari kata tersebut (list)
        :return: None
        """
        # Jika kata belum ada di dictionary, inisialisasi dengan list kosong
        if kata not in self.dictionary:
            self.dictionary[kata] = []
        
        # Gabungkan sinonim baru dengan sinonim yang sudah ada
        self.dictionary[kata].extend(sinonim)
        
        # Hapus duplikat dengan menggunakan set lalu kembali ke list
        self.dictionary[kata] = list(set(self.dictionary[kata]))
        
        # Tambahkan hubungan balik (sinonim juga menunjuk ke kata asli)
        for sin in sinonim:
            if sin not in self.dictionary:
                self.dictionary[sin] = []
            
            # Tambahkan kata asli ke sinonim jika belum ada
            if kata not in self.dictionary[sin]:
                self.dictionary[sin].append(kata)
    
    def ambil_sinonim(self, kata):
        """
        Mengambil semua sinonim dari kata yang diberikan
        :param kata: kata yang akan dicari sinonimnya (string)
        :return: list sinonim atau None jika kata tidak ditemukan
        """
        # Jika kata tidak ada di dictionary, return None
        if kata not in self.dictionary:
            return None
        
        return self.dictionary[kata]


if __name__ == "__main__":
    kamus = Kamus()
    kamus.tambah('big', ['large', 'great'])
    kamus.tambah('big', ['huge', 'fat'])
    kamus.tambah('huge', ['enormous', 'gigantic'])
    
    # Test hasil
    print("Sinonim dari 'big':", kamus.ambil_sinonim('big'))
    print("Sinonim dari 'huge':", kamus.ambil_sinonim('huge'))
    print("Sinonim dari 'gigantic':", kamus.ambil_sinonim('gigantic'))
    print("Sinonim dari 'colossal':", kamus.ambil_sinonim('colossal'))