latihan_4_reguler_jumat_dan_ekstensi_rev_1.2
DESCRIPTION
Mempelajari tipe kepribadian dapat membantu kita memahami orang lain, terutama orang yang berhubungan dan bekerjasama dengan kita. Memahami orang-orang disekitar dan yang bekerjasama dengan kita akan membantu melancarkan hubungan dan kerjasama tersebut.TRANSCRIPT
-
Latihan 4 MangoDB
Struktur Data & Algoritma IKI10400
Semester Genap 2014/2015
Fakultas Ilmu Komputer Universitas Indonesia
Batas waktu pengumpulan kode sumber: Reguler Jumat: Jumat, 13 Maret 2015 pukul 17.00 Waktu Scele
Ekstensi: Sabtu, 14 Maret 2015 pukul 12.00 Waktu Scele
Kode sumber yang dinilai hanya yang dikumpulkan melalui Auto Grader Scele. Kode sumber yang dikumpulkan melalui
mekanisme selain itu akan diabaikan dan dianggap tidak mengumpulkan.
Peringatan: jangan mengumpulkan pekerjaan beberapa menit menjelang batas waktu pengumpulan karena ada kemungkinan pengumpulan gagal dilakukan atau koneksi internet terputus!
Jika tidak dapat mengumpulkan tugas sebelum batas waktu karena suatu atau beberapa hal khusus, mahasiswa yang
bersangkutan harus melakukan langkah-langkah dalam SOP Perpanjangan Batas Waktu Pengumpulan Pekerjaan.
-
Problem setter: YCN| Latihan 4 SDA Genap 2014/2015 2
Latihan 4
MangoDB
Nama berkas kode sumber : SDA14154L.java
Batas waktu eksekusi program : 2.5 detik / kasus uji
Batas memori program : 16 MiB / kasus uji
Pada lab ini mahasiswa diharapkan dapat mengidentifikasi penggunaan ADT
menggunakan Java Collections yang cocok untuk permasalahan ini.
Database adalah komponen yang cukup penting dari sebuah aplikasi. Akhir-akhir ini
muncul DBMS (Database Management System) yang cukup populer. DBMS ini populer
karena cocok digunakan untuk Big Data dan Real-Time Web.
Seorang investor kaya raya membayar Anda untuk membuat versi sederhana dari DBMS
ini. DBMS ini akan diberi nama MangoDB. MangoDB hanya memiliki 5 perintah, yaitu
INSERT, DELETE, DELETE_ALL, IS_EXIST, dan RETRIEVE_ALL.
INSERT akan menambahkan data baru ke database jika data tersebut belum ada di
database. DELETE akan menghapus data yang ada di database jika data tersebut ada
sedangkan DELETE_ALL akan menghapus semua data yang ada di database. IS_EXIST akan
mengecek kebenaran apakan suatu data sudah ada di database. Sedangkan RETRIEVE_ALL
akan menampilkan seluruh data yang ada di database urut berdasarkan waktu
masuknya data.
Format Masukan dan Keluaran
Baris pertama merupakan sebuah bilangan bulat n, 1 < n
-
Problem setter: YCN| Latihan 4 SDA Genap 2014/2015 3
Ketika data tidak ada di database
IS NOT EXIST
RETRIEVE_ALL RETRIEVE_ALL { , , , }
NB:
merupakan sebuah string yang disusun oleh karakter-karakter
alphanumeric. bisa terdiri dari 1 atau lebih kata. tersebut akan
diapit oleh tanda petik . Contoh yang mungkin menjadi input:
o Abc
o cBa12
o 11 12
o seven 12
MangoDB menerapkan Case Insensitive, jadi perintah insert dengan INSERT akan
bermakna sama. Lebih lanjut aBc dengan abC juga akan bernilai sama.
Karena Case Insensitive maka ketika mencetak untuk setiap perintah,
yang dicetak adalah yang menjadi input bukan yang ada di
database. Misal di database terdapat data a, maka ketika dijalankan INSERT A
output yang diharapkan adalah A IS EXIST, bukan a IS EXIST.
Untuk setiap perintah yang tidak sesuai format maka MangoDB akan mencetak
output SYNTAX ERROR
-
Problem setter: YCN| Latihan 4 SDA Genap 2014/2015 4
Contoh Masukan dan keluaran 1
No Masukan Keluaran Isi Database
1
2
3
4
5
6
7
8
9
10
11
12
13
14
13
Insert yusuf
INSERT "Yusuf"
INSERT "yani"
INSERt "ye ye"
INSERT "yuSuf"
delete "yusuf"
delete "yUsuF"
is_exist "yusuf"
is_exist "yaNi"
insert "Yusuf"
retrieve_all
delete_all
retrieve_all
SYNTAX ERROR
Yusuf INSERTED
yani INSERTED
ye ye INSERTED
yuSuf IS EXIST
yusuf DELETED
yUsuF IS NOT EXIST
yusuf IS NOT EXIST
yaNi IS EXIST
Yusuf INSERTED
{yani,ye ye,Yusuf}
DELETED ALL
{}
{}
{Yusuf}
{Yusuf,yani}
{Yusuf,yani,ye ye}
{Yusuf,yani,ye ye}
{yani,ye ye}
{yani,ye ye}
{yani,ye ye}
{yani,ye ye}
{yani,ye ye,Yusuf}
{yani,ye ye,Yusuf}
{}
{}
Contoh Masukan dan Keluaran 2
Masukan Keluaran Isi Database
12
INSERT
INSERT ye ye
INSERt "ye ye"!
INSERT a"yu yu"
delete "yusuf
delete ""
is_exist yusuf ye ye
is_exist
insert "Yusuf"
retrieve_all abc
delete_all "
haha
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
Yusuf INSERTED
SYNTAX ERROR
SYNTAX ERROR
SYNTAX ERROR
{}
{}
{}
{}
{}
{}
{}
{}
{Yusuf}
{Yusuf}
{Yusuf}
{Yusuf}