Anda di halaman 1dari 10

Format Masukan dan Keluaran

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

[X] Berhasil dihapus


[X1] dipindahkan
[X2] dipindahkan
[X3] dipindahkan

Jika Gagal

Hapus [X] : Kantor [X] Tidak ditemukan


Keterangan
Format output di atas berasumsi bahwa [X] memiliki 3 kantor yang dibawahinya yaitu [X1], [X2], dan [X3].
Kantor pusat tidak dapat dihapus.

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

[X] [Y] : Telepon [Y1] dapat [Y2]


[X] [Y] : Telepon [Y2] dapat [Y3]

[X] [Y] : Telepon [Yn-1] dapat [Yn]


[X] [Y] : Nomor Telepon [V] adalah [Yn]

Gagal

Telepon [X] [Y]: Kantor [X|Y] Tidak ditemukan


Keterangan
[Y1] [Y2] [Y3] ...... [Yn-1] [Yn] merupakan ilustrasi saja. Dimungkinkan bahwa kantor tersebut
menelepon kantor yang membawahinya atau dibawahinya secara langsung sehingga hanya ada [Y1]
dan [Y2] saja.

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

Telepon Bandung_tiga Pasar_Minggu

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

Tambah Lenteng_Agung 0219241262 Jakarta_Selatan : Kantor


Lenteng_Agung Berhasil dimasukkan
Tambah Blok_M 0219241262 Jakarta_Selatan : Kantor Blok_M Berhasil
dimasukkan
Tambah Slipi 0219145162 Jakarta_Barat : Kantor Slipi Berhasil
dimasukkan
Tambah Kebon_Jeruk 021955552 Jakarta_Barat : Kantor Kebon_Jeruk
Berhasil dimasukkan
Tambah Bandung 02291231462 Jawa_Barat : Kantor Bandung Berhasil
dimasukkan
Tambah Subang 022911242 Jawa_Barat : Kantor Subang Berhasil dimasukkan
Tambah Tasikmalaya 02242182862 Jawa_Barat : Kantor Tasikmalaya
Berhasil dimasukkan
Tambah Bandung_satu 0221412642 Bandung : Kantor Bandung_satu Berhasil
dimasukkan
Tambah Bandung_dua 0221412512 Bandung : Kantor Bandung_dua Berhasil
dimasukkan
Tambah Bandung_tiga 0221468312 Bandung : Kantor Bandung_tiga Berhasil
dimasukkan
Telepon Bandung_tiga Pasar_Minggu : Telepon 02291231462 dapat
022918262
Telepon Bandung_tiga Pasar_Minggu : Telepon 022918262 dapat 02187658
Telepon Bandung_tiga Pasar_Minggu : Telepon 02187658 dapat 0218768932
Telepon Bandung_tiga Pasar_Minggu : Telepon 0218768932 dapat 021942262
Telepon Bandung_tiga Pasar_Minggu : Telepon 021942262 dapat
02197281262
Telepon Bandung_tiga Pasar_Minggu : Nomor Telepon Pasar_Minggu adalah
02197281262
Tambah Bandung_empat 02121 BDG : Kantor BDG Tidak ditemukan
Telepon BDG_Satu Pasar_Minggu : Kantor BDG_Satu Tidak ditemukan

Hapus Bandung : Kantor Bandung Berhasil dihapus


Hapus Bandung : Kantor Bandung_satu dipindahkan
Hapus Bandung : Kantor Bandung_dua dipindahkan
Hapus Bandung : Kantor Bandung_tiga dipindahkan
Hapus BDG : Kantor BDG Tidak ditemukan
Telepon Bandung_tiga Pasar_Minggu : Telepon 022918262 dapat 02187658
Telepon Bandung_tiga Pasar_Minggu : Telepon 02187658 dapat 0218768932
Telepon Bandung_tiga Pasar_Minggu : Telepon 0218768932 dapat 021942262
Telepon Bandung_tiga Pasar_Minggu : Telepon 021942262 dapat
02197281262

Telepon Bandung_tiga Pasar_Minggu : Nomor Telepon Pasar_Minggu


adalah 02197281262

Contoh Input 2
31
Tambah kantor_1 02131241 dunia

Tambah kantor_2 02131242 kantor_1


Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah
Tambah

kantor_3 02131243 kantor_2


kantor_4 02131244 kantor_3
kantor_5 02131245 kantor_4
kantor_6 02131246 kantor_5
kantor_7 02131247 kantor_6
kantor_8 02131248 kantor_7
kantor_9 02131249 kantor_8
kantor_10 02131240 kantor_9
kantor_11 02131250 kantor_10
kantor_12 02131251 kantor_1
kantor_13 02131252 kantor_12
kantor_14 02131253 kantor_13
kantor_15 02131254 kantor_14
kantor_16 02131255 kantor_15
kantor_17 02131256 kantor_16
kantor_18 02131257 kantor_17
kantor_19 02131258 kantor_18
kantor_20 02131259 kantor_19
kantor_21 02131260 kantor_20
kantor_22 02131261 kantor_15
kantor_23 02131262 kantor_22
kantor_24 02131263 kantor_23
kantor_25 02131264 kantor_24
kantor_26 02131265 kantor_5
kantor_27 02131266 kantor_26
kantor_28 02131267 kantor_27
kantor_29 02131268 kantor_28
kantor_30 02131269 kantor_29

Telepon kantor_30 kantor_25

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

Tambah kantor_11 02131250 kantor_10 : Kantor kantor_11 Berhasil


dimasukkan
Tambah kantor_12
dimasukkan
Tambah kantor_13
dimasukkan
Tambah kantor_14
dimasukkan
Tambah kantor_15
dimasukkan
Tambah kantor_16
dimasukkan
Tambah kantor_17
dimasukkan
Tambah kantor_18
dimasukkan
Tambah kantor_19
dimasukkan
Tambah kantor_20
dimasukkan
Tambah kantor_21
dimasukkan
Tambah kantor_22
dimasukkan
Tambah kantor_23
dimasukkan
Tambah kantor_24
dimasukkan
Tambah kantor_25
dimasukkan

02131251 kantor_1 : Kantor kantor_12 Berhasil


02131252 kantor_12 : Kantor kantor_13 Berhasil
02131253 kantor_13 : Kantor kantor_14 Berhasil
02131254 kantor_14 : Kantor kantor_15 Berhasil
02131255 kantor_15 : Kantor kantor_16 Berhasil
02131256 kantor_16 : Kantor kantor_17 Berhasil
02131257 kantor_17 : Kantor kantor_18 Berhasil
02131258 kantor_18 : Kantor kantor_19 Berhasil
02131259 kantor_19 : Kantor kantor_20 Berhasil
02131260 kantor_20 : Kantor kantor_21 Berhasil
02131261 kantor_15 : Kantor kantor_22 Berhasil
02131262 kantor_22 : Kantor kantor_23 Berhasil
02131263 kantor_23 : Kantor kantor_24 Berhasil
02131264 kantor_24 : Kantor kantor_25 Berhasil

Tambah kantor_26 02131265 kantor_5 : Kantor kantor_26 Berhasil


dimasukkan
Tambah kantor_27 02131266 kantor_26 : Kantor kantor_27 Berhasil
dimasukkan
Tambah kantor_28 02131267 kantor_27 : Kantor kantor_28 Berhasil
dimasukkan
Tambah kantor_29 02131268 kantor_28 : Kantor kantor_29 Berhasil
dimasukkan
Tambah kantor_30 02131269 kantor_29 : Kantor kantor_30 Berhasil
dimasukkan
Telepon kantor_30 kantor_25 : Telepon 02131268 dapat 02131267
Telepon kantor_30 kantor_25 : Telepon 02131267 dapat 02131266
Telepon kantor_30 kantor_25 : Telepon 02131266 dapat 02131265
Telepon kantor_30 kantor_25 : Telepon 02131265 dapat 02131245
Telepon kantor_30 kantor_25 : Telepon 02131245 dapat 02131244
Telepon kantor_30 kantor_25 : Telepon 02131244 dapat 02131243
Telepon kantor_30 kantor_25 : Telepon 02131243 dapat 02131242
Telepon kantor_30 kantor_25 : Telepon 02131242 dapat 02131241
Telepon kantor_30 kantor_25 : Telepon 02131241 dapat 02131251
Telepon kantor_30 kantor_25 : Telepon 02131251 dapat 02131252
Telepon kantor_30 kantor_25 : Telepon 02131252 dapat 02131253
Telepon kantor_30 kantor_25 : Telepon 02131253 dapat 02131254
Telepon kantor_30 kantor_25 : Telepon 02131254 dapat 02131261
Telepon kantor_30 kantor_25 : Telepon 02131261 dapat 02131262
Telepon kantor_30 kantor_25 : Telepon 02131262 dapat 02131263

Telepon kantor_30 kantor_25 : Telepon 02131263 dapat 02131264


Telepon kantor_30 kantor_25 : Nomor Telepon kantor_25 adalah 02131264

Anda mungkin juga menyukai