Masukan terdiri dari 1 + M baris. Baris pertama merupakan bilangan M yang menunjukkan
banyaknya perintah yang dapat dilakukan dengan 3 < M < 400. Perintah yang dapat dilakukan oleh
program tersebut harus memenuhi spesifikasi sebagai berikut.
1. Tambah
Deskripsi Input
Merupakan perintah untuk memasukkan kantor baru dengan nama [X] dan nomor telepon [Y]. Kantor
ini dibawahi oleh sebuah kantor dengan nama [Z]. Jika hierarki kantor masih kosong maka [X] dianggap
sebagai kantor pusat.
Format Input
Tambah [X] [Y] [Z]
Deskripsi Output
Jika berhasil maka program akan mencetak pesan berhasil, jika tidak maka akan mencetak pesan gagal.
Kegagalan hanya dapat terjadi jika kantor [Z] Tidak ditemukan di dalam hierarki
Format Output
Jika Berhasil
Tambah [X] [Y] [Z] : Kantor [X] Berhasil dimasukkan
Jika Gagal
Tambah [X] [Y] [Z] : Kantor [Z] Tidak ditemukan
Keterangan
Nama kantor dapat terdiri dari lebih dari satu kata yang dipisahkan oleh garis bawah (underscore)
contoh : Jakarta_Selatan, Jakarta_Selatan_Satu
2. Hapus
Deskripsi Input
Merupakan perintah untuk menghapus kantor dengan nama [X] dari hierarki kantor. Setelah
kantor [X] dihapus, seluruh kantor yang sebelumnya dibawahi oleh kantor [X], sekarang dibawahi
oleh kantor yang membawahi [X].
Format Input
Hapus [X]
Deskripsi Output
Jika berhasil maka program akan mencetak pesan berhasil dan mencetak nama seluruh kantor yang
sebelumnya dibawahi oleh kantor [X] urutan keluaran ditentukan dari urutan insersi kantor
sebagai child dari parent kantor ( kantor yang ingin dihapus ) tersebut.
Jika tidak maka akan mencetak pesan gagal. Kegagalan hanya dapat terjadi jika kantor [X] tidak
ditemukan di dalam hierarki.
Jika Berhasil
Hapus
Hapus
Hapus
Hapus
[X]
[X]
[X]
[X]
:
:
:
:
Kantor
Kantor
Kantor
Kantor
Jika Gagal
3. Telepon
Deskripsi Input
Merupakan perintah untuk mencari nomor mana saja yang harus dihubungi sebuah kantor [X]
untuk menghubungi kantor [Y]. Setiap kantor hanya memiliki nomor telepon dari kantor yang
membawahinya dan dibawahinya sehingga sebuah kantor harus menelepon minimal satu kali atau
berkali-kali agar mendapatkan nomor telepon kantor yang diinginkan
Format Input
Telepon [X] [Y]
Deskripsi Output
Jika berhasil maka program akan mencetak pesan berupa log nomor telepon yang kantor tersebut
telepon dan dapatkan dari nomor telepon tersebut. Selain itu juga mencetak nomor telepon kantor
[Y].
Jika gagal maka akan dicetak pesan gagal. Kegagalan hanya dapat terjadi jika [X] atau [Y] tidak
ditemukan.
Format Output
Berhasil
Telepon
Telepon
.
.
.
Telepon
Telepon
Gagal
Contoh Input 1
26
Tambah Indonesia 02187658 Dunia
Tambah Jakarta 0218768932 Indonesia
Tambah Jawa_Barat 022918262 Indonesia
Tambah Jawa_Timur 0319124262 Indonesia
Tambah Jakarta_Selatan 021942262 Jakarta
Tambah Jakarta_Timur 021998552 Jakarta
Tambah Jakarta_Pusat 021966262 Jakarta
Tambah Jakarta_Barat 021955262 Jakarta
Tambah Jakarta_Utara 021218262 Jakarta
Tambah Pasar_Minggu 02197281262 Jakarta_Selatan
Tambah Lenteng_Agung 0219241262 Jakarta_Selatan
Tambah Blok_M 0219241262 Jakarta_Selatan
Tambah Slipi 0219145162 Jakarta_Barat
Tambah Kebon_Jeruk 021955552 Jakarta_Barat
Tambah Bandung 02291231462 Jawa_Barat
Tambah Subang 022911242 Jawa_Barat
Tambah Tasikmalaya 02242182862 Jawa_Barat
Tambah Bandung_satu 0221412642 Bandung
Tambah Bandung_dua 0221412512 Bandung
Tambah Bandung_tiga 0221468312 Bandung
Telepon Bandung_tiga Pasar_Minggu
Tambah Bandung_empat 02121 BDG
Telepon BDG_Satu Pasar_Minggu
Hapus Bandung
Hapus BDG
Contoh Output 1
Tambah Indonesia 02187658 Dunia : Kantor Indonesia Berhasil dimasukkan
Tambah Jakarta 0218768932 Indonesia : Kantor Jakarta Berhasil
dimasukkan
Tambah Jawa_Barat 022918262 Indonesia : Kantor Jawa_Barat Berhasil
dimasukkan
Tambah Jawa_Timur 0319124262 Indonesia : Kantor Jawa_Timur Berhasil
dimasukkan
Tambah Jakarta_Selatan 021942262 Jakarta : Kantor Jakarta_Selatan
Berhasil dimasukkan
Tambah Jakarta_Timur 021998552 Jakarta : Kantor Jakarta_Timur Berhasil
dimasukkan
Tambah Jakarta_Pusat 021966262 Jakarta : Kantor Jakarta_Pusat Berhasil
dimasukkan
Tambah Jakarta_Barat 021955262 Jakarta : Kantor Jakarta_Barat Berhasil
dimasukkan
Tambah Jakarta_Utara 021218262 Jakarta : Kantor Jakarta_Utara Berhasil
dimasukkan
Tambah Pasar_Minggu 02197281262 Jakarta_Selatan : Kantor Pasar_Minggu
Berhasil dimasukkan
Contoh Input 2
31
Tambah kantor_1 02131241 dunia
Contoh Output 2
Tambah kantor_1 02131241 dunia : Kantor kantor_1 Berhasil dimasukkan
Tambah kantor_2 02131242 kantor_1 : Kantor kantor_2 Berhasil
dimasukkan
Tambah kantor_3 02131243 kantor_2 : Kantor kantor_3 Berhasil
dimasukkan
Tambah kantor_4 02131244 kantor_3 : Kantor kantor_4 Berhasil
dimasukkan
Tambah kantor_5 02131245 kantor_4 : Kantor kantor_5 Berhasil
dimasukkan
Tambah kantor_6 02131246 kantor_5 : Kantor kantor_6 Berhasil
dimasukkan
Tambah kantor_7 02131247 kantor_6 : Kantor kantor_7 Berhasil
dimasukkan
Tambah kantor_8 02131248 kantor_7 : Kantor kantor_8 Berhasil
dimasukkan
Tambah kantor_9 02131249 kantor_8 : Kantor kantor_9 Berhasil
dimasukkan
Tambah kantor_10 02131240 kantor_9 : Kantor kantor_10 Berhasil
dimasukkan