SYNCHRONIZE SYSTEM Program diminta untuk melakukan proses sinkronasi sederhana dengan server. Server akan menyediakan informasi perihal nama file, ukuran, dan tanggal modifikasi. Setelah data server diambil maka akan disinkronasikan dengan data pada folder target. Apabila ada data baru pada device maka otomatis mengirimkan ke server pada saat tombol sync ditekan.
KETENTUAN 1. Kami menggunakan Android Studio 1.5.1 dengan minSdkVersion 16 & targetSdkVersion 23. 2. Sistem terintergrasi dengan API. Terdapat 5 API Server. 3. Ketentuan sinkronasi akan dijelaskan dibagian selanjutnya. 4. Pada saat upload atau download, akan tampil pada notifikasi Android, progress pada file yang sedang di-upload atau download berlangsung. Seperti pada gambar 2. 5. Lokasi penyimpanan folder target adalah /Android/data/<package_name>/files/backup/ 6. Menggunakan sistem preference. Jadi apabila pertama kali dijalankan LastSync = 0. 7. Tidak ada sistem rekursif, 1 folder berisi berbagai macam file tapi tidak ada folder lain. 8. Nama file berupa alphanumeric. 9. Setiap kali melakukan sync maka akan menggantikan nilai LastSync dengan waktu sekarang. 10. Setiap penggunaan API delete & upload maka LastUpdate pada server akan berubah menjadi waktu sekarang menurut server. 11. Apabila ada folder yang belum dibuat maka otomatis aplikasi membuatkan folder tersebut dalam folder target. 12. Semua waktu menggunakan format unixtimestamp. 13. File yang telah diunduh diubah modifikasinya menjadi per-tanggal yang ada pada API. 14. File yang telah diupload menggunakan nama bebas, setelah menerima JSON sukses maka file di-rename menjadi filename pada JSON.
KETENTUAN SINKRONASI • LastSync (P)
: penanda waktu sinkronasi terakhir yang dilakukan user
• ModifiedFile (F)
: waktu modifikasi file terakhir pada setiap file
• LastUpdate (S)
: waktu terakhir file di upload atau delete pada server
• Created (S)
: waktu modifikasi file yang telah diupload pada server
Ketentuan
Tindakan
LastSync = 0
Semua data folder target dihapus & mengunduh semua baru
LastUpdate > LastSync
Mengunduh semua file yang ada di Server
ModifiedFile > LastUpdate
Mengunggah file beserta tanggal ModifiedFile
Created != ModifiedFile
Mengirimkan delete file server & mengunggah file ke server.
* P: Preference Device
F: File pada Device
S: Server
PROTOTIPE PROGRAM
Gambar 1 - Halaman Login
Gambar 2
Gambar 3
Notifikasi sedang mengupload
Notifikasi bahwa upload telah selesai
PENGGUNAAN API http://api.lavorus.com/index.php/CobaAPI/getSync/1577/TPQSw8cwBxPJhko7mH0o Tujuan API : Mendapatkan informasi tentang sinkronasi Response TRUE: • "status" : 200 • “lastupdate” : Integer - Unixtimestamp • “syncfile” : Kumpulan folder berisi file o “foldername” : String - Nama folder o “files” : Kumpulan file dalam folder tersebut § “filename” : String - Nama file § “filesize” : Integer - Ukuran file dalam byte § “created” : Integer – Unixtimestamp http://api.lavorus.com/index.php/CobaAPI/getFile/
/ Tujuan API : Mengunduh file yang dikehendaki Parameter: • “foldername” : String - Nama folder • “filename” : String - Nama file Response TRUE: File dikirimkan dalam bentuk header attachment. Response FILE NOT FOUND (JSON): "status" : 504 * File yang telah diunduh harus diubah modifikasinya menjadi per-tanggal pada created.
http://api.lavorus.com/index.php/CobaAPI/removeFile// Tujuan API : Menghapus data pada server Parameter: • “foldername” : String - Nama folder • “filename” : String - Nama file Response TRUE: • "status"
: 200
Response FILE NOT FOUND: • "status"
: 504
http://api.lavorus.com/index.php/CobaAPI/uploadFile/ Tujuan API : Menggunggah data pada device ke server Parameter: • “foldername” : String - Nama folder Parameter (POST - Multipart): • “fileupload” : FILES • “filetime” : Integer – Waktu modifikasi file terakhir (unixtimestamp) Response TRUE: • "status" • “filename”
: 200 : String – Nama file untuk di-rename
Response FOLDER NOT FOUND: • "status"
: 505
CONTOH PENGGUNAAN API
Contoh 1 - Melakukan GetSync
Contoh 2 – Download data