TUGAS AKHIR PERIODE JANUARI 2011
PEMBUATAN APLIKASI DOWNLOAD ACCELERATOR PADA MOBILE PHONE BERBASIS SYMBIAN OS DENGAN MEKANISME DOWNLOAD PARSIAL Adam Wicaksono - Ary Mazharuddin Shiddiqi, S.Kom, M.Comp.Sc Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi e-mail :
[email protected]
yang dulu hanya digunakan untuk menelepon dan mengirim SMS, saat ini perangkat mobile tersebut dapat digunakan untuk melakukan pekerjaan yang biasanya dapat dilakukan hanya melalui komputer. Melakukan komunikasi data merupakan salah satu pekerjaan yang kini dapat dilakukan melalui perangkat mobile. Koneksivitas dapat dilakukan perangkat mobile saat ini dengan menggunakan jaringan 3G (UMTS) dan 3,5G(HSDPA) yang sangat memadai untuk melakukan komunikasi data. Untuk melakukan komunikasi data dalam hal mengunduh file dengan perangkat mobile yang terbatas, maka diperlukan perangkat lunak yang dapat mempercepat proses tersebut. Untuk itu penulis menawarkan solusi dengan membuat aplikasi “Mobile Download Accelerator” ini. Dengan harapan aplikasi ini dapat memudahkan pengguna perangkat mobile untuk melakukan download file dengan lebih cepat. Link download dapat diperoleh dari hasil browsing.
Abstrak Perkembangan teknologi ponsel saat ini cukup pesat. Beberapa vendor ponsel telah merubah tujuan mereka memproduksi ponsel yang pada awalnya hanya digunakan sebagai alat komunikasi melalui panggilan telepon atau sms, seiring dengan perkembangan teknologi, vendor ponsel tersebut telah banyak memproduksi ponsel yang juga memiliki fungsi untuk dapat mengakses data. Oleh karena itu, beberapa pengguna ponsel saat ini banyak yang menggunakan ponsel mereka untuk melakukan proses download melalui ponselnya. Hal ini bisa dikarenakan pengguna ponsel tersebut tidak sedang mengakses internet melalui perangkat PC atau laptop. Akan tetapi, proses download melalui ponsel dengan menggunakan browser yang telah tersedia pada ponsel mereka tidak dapat berjalan dengan cepat. Tugas akhir ini menawarkan solusi untuk masalah yang telah disebutkan di atas dengan membuat aplikasi “Download Accelerator”. Aplikasi ini dapat dilakukan dengan melakukan implementasi mekanisme download parsial. Mekanisme download parsial adalah sebuah mekanisme yang dapat dilakukan dengan melakukan download sebuah file dengan cara membagi akses terhadap file tersebut menjadi beberapa bagian pada satu waktu, sehingga proses download dapat berjalan lebih cepat daripada melakukan download file dengan satu akses pada satu waktu. Tugas akhir ini dikembangkan dengan menggunakan bahasa Python PyS60 yang dapat berjalan pada sistem operasi Symbian S60. Beberapa library Python PyS60 yang digunakan untuk mengembangkan aplikasi ini adalah urrlib2 dan threading. Hasil percobaan yang telah dilakukan menunjukkan bahwa metode yang digunakan dapat diimplementasikan dengan keberhasilan dari proses download yang diakselerasi hingga 90%. Dengan tambahan fitur auto-resume dalam melakukan proses download, aplikasi ini dapat digunakan jika mendapat koneksi yang kurang baik.
1.1. Download Parsial Download parsial adalah sebuah metode pengunduhan data yang memungkinkan data tersebut dapat ter-download dalam waktu yang lebih cepat dari men-download data tanpa menggunakan metode tersebut. Metode download parsial juga dikenal sebagai metode multipart download yaitu sebuah metode untuk mendownload file tunggal yang kemudian dipisahkan dalam beberapa segmen dengan menggunakan koneksi simultan untuk men-download beberapa segmen dari server tunggal [1]. Metode tersebut dilakukan untuk menghindari keterbatasan bandwith per koneksi pada sisi server, karena pada situasi jaringan normal semua koneksi individu diperlakukan sama. Namun, transfer file yang sebenarnya bisa lebih cepat daripada koneksi individu tersebut, karena beberapa koneksi menghasilkan keuntungan pada link yang penuh daripada koneksi yang sederhana, baik dalam hal alokasi total dan ketahanan bandwith. Men-download suatu data dengan metode parsial dimungkinkan karena data yang didownload tersebut telah terdiri dari berbagai macam unsur penyusun data, seperti metadata dan deskripsi isi data [2]. Oleh karena itu, data dapat dibagi menjadi beberapa bagian sehingga metode parsial dapat digunakan. Selain itu, protokol dapat melakukan download data dengan metode ini,
Kata Kunci : Download Accelerator, Python, PyS60, Pemrograman Mobile. 1.
PENDAHULUAN Perkembangan perangkat mobile saat ini cukup pesat. Perangkat mobile yaitu handphone 1
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
namun protokol tersebut memiliki batasan dalam melakukan metode tersebut yaitu apabila : Bagian yang di-download tidak memiliki relasi dengan konten data, sehingga data hanya dapat digunakan apabila semua bagian telah terdownload Konten dari data yang di-download memiliki sifat sekuensial. Konten data yang berubahubah tidak dapat di-download dengan metode parsial, seperti streaming audio atau video. Pada dua kasus di atas, data tidak dapat didownload dengan metode parsial dan hanya dapat di-download secara lengkap. Sehingga diperlukan sistem dan metode yang menyediakan teknik penyimpanan dan protokol pengunduhan yang sesuai dan menyimpan beragam jenis informasi di dalam file-file tetapi hanya men-download satu atau lebih jenis informasi tersimpan dalam file yang diminta. Metode parsial download merupakan sistem dan metode untuk melakukan penyimpanan file tunggal yang terdiri dari beberapa bagian dari isi data dan untuk dapat melakukan proses download setidaknya satu bagian yang terdownload, misalnya : File di dalam sebuah zip-archive yang relevan, Sebuah bab di dalam sebuah e-book, Satu slide dari file PowerPoint, Gambar cover dari sebuah file MP3, Thumbnail yang terdapat dari sebuah file jpg [2].
tugas dalam waktu bersamaan di dalam sebuah proses, hal ini disebut dengan multithreading. Hal ini sama saja dengan sebuah sistem operasi yang menjalankan beberapa program atau aplikasi secara bersamaan. Ada beberapa keuntungan menjalanakan multithreading ini dalam sebuah proses, diantaranya [11]: Suatu program menjadi lebih responsif meskipun sebagian program tersebut sedang melakukan operasi lain. Beberapa thread yang sedang melakukan proses yang sama akkan berbagi sumber daya, sehingga sebuah program dapat memiliki beberapa thread yang berbeda dalam lokasi yang sama. Thread dapat melakukan pembagian memori dan sumber daya yang dimiliki sehingga proses yang memerlukan pengalokasian memori dan sumber daya lebih ekonomis. Pada arsitektur multiprocessor, penggunaan multithreading sangat berguna karena setiap thread berjalan secara paralel di atas processor yang berbeda. Sedangkan pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini dapat dilakukan dengan sangat cepat sehingga menciptakan ilusi paralel, tetapi sebenarnya hanya satu thread yang dijalankan CPU. [11] Sebuah thread sering disebut juga dengan “light-weight process”, karena sistem operasi umumnya menggunakan sedikit resources untuk menciptakan dan mengatur thread yang berjalan. Dengan multithreading kinerja komputer dapat bekerja dengan optimal, karena multithreading memanfaatkan resource-resource yang sedang tidak bekerja (idle). Dalam arti lain, multithreading membuat proses yang memiliki subproses atau membagi proses-proses tersebut sehingga tidak terjadi deadlock pada saat sedang menjalankan threading. [12] 1.2.1.
Model Multithreading Ada beberapa terminologi mengenai pemodelan multithreading, yaitu : Thread user : thread yang pengaturannya dilakukan oleh library thread pada tingkatan user. Bentuk penjadwalan dan pembuatan thread dilakukan oleh user, sehingga thread lebih cepat dibuat dan mudah dikendalikan Thread kernel : thread yang didukung langsung melalui kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space di dalam sistem operasi, sehingga proses pembuatannya lebih lambat jika dibandingkan dengan thread user. [11] Beberapa model multithreading adalah sebagai berikut [11]:
Gambar 1: Koneksi File dari Server [2]
Gambar diatas mengilustrasikan bagaimana file yang terdapat dalam file system yang tersimpan bagian-bagian dari file itu sendiri dapat didownload melalui server yang terakses melalui suatu jaringan. Oleh karena itu, file dapat didownload dengan metode parsial pada server. 1.2. Multithreading Di dalam sebuah sistem operasi dimungkinkan untuk melakukan lebih dari satu
2
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
pada program melalui Python interpreter. Ketika sedang menjalankan interpreter pada mode interaktif konsole ataupun dipanggil melalui sebuah file, thread induk akan dinyalakan. Thread induk merupakan caller untuk menjalankan thread yang lain. Hanya sebuah thread yang diijinkan berjalan oleh interpreter pada suatu waktu. Interpreter dapat melakukan kontrol thread melalui Global Interpreter Lock (GIL), dengan cara mengalihkan thread yang keluar masuk pada suatu waktu yang telah dispesifikasikan, ketika program terdiri dari lebih satu thread. Multithreading pada Python juga terdapat siklus kehidupan dari thread tersebut, sama seperti multithreading pada bahasa-bahasa pemrograman yang lain. Pada suatu waktu, sebuah thread akan berada pada salah satu state thread. Thread dibuat pada state born. Thread tersebut akan berada pada state born sampai method start pada thread dipanggil, ketika method start dipanggil maka thread akan berada pada ready state (runnable state). Ready state akan memasuki running state ketika thread dieksekusi. Thread akan memasuki dead state ketika method run selesai tereksekusi atau dimatikan untuk beberapa alasan interpreter seperti pada saat akan membuang sebuah dead thread. Running thread akan memasuki blocked state ketika thread tersebut mengeluarkan request input/output. Pada kasus ini, sebuah blocked thread akan menjadi ready state ketika I/O menunggu untuk diseleseikan. Interpreter tidak akan mengeksekusi blocked thread walaupun interpreter dalam keadaan sedang tidak mengeksekusi. Pada saat, running thread memanggil fungsi time.sleep, maka thread akan memasuki thread state. Sebuah sleeping thread akan menjadi ready setelah melewati waktu sleep habis dan tidak dapat menggunakan interpreter. Sebuah thread memasuki dead state ketika method run telah selesai dijalankan atau melakukan sebuah eksepsi uncaught exception.
Gambar 2 : Gambar Beberapa Model Multithreading [11]
Model Many-to-One : model ini memetakan beberapa thread tingkatan user ke sebuah thread tingkatan kernel. Pengaturan thread dilakukan dalam ruang user sehingga lebih efisisen. Hanya satu thread user yang dapat mengakses thread kernel pada saat yang bersamaan, sehingga multiple thread tidak dapat berjalan secara paralel pada multiprocessor. Contoh dari penggunaan model ini adalah : Solaris Green Threads dan GNU Portable Threads. Model One-to-One : Model ini memetakan setiap thread tingkatan user ke setiap thread, sehingga menghasilkan lebih banyak thread yang berjalan secara bersamaan dibandingkan dengan model Many-to-One. Keuntungan dengan menggunakan model ini sama dengan keuntungan penggunaan thread kernel, sedangkan kelemahan dari penggunaan model ini adalah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Oleh karena itu, apabila model ini diimplementasikan maka dapat menurunkan kinerja dari sebuah aplikasi sehingga jumlah thread dalam sistem dibatasi. Contoh : Windows NT/XP/2000, Linux, Solaris 9. Model Many-to-Many : Model ini memetakan dengan cara multipleks banyak thread pada tingkatan user ke thread kernel yang jumlahnya lebih sedikit atau sama dengan tingkatan user. Keuntungan dari sistem ini adalah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprocessor. 1.2.2.
Multithreading pada Pemrograman Python Multithreading pada pemrograman Python menggunakan modul threading yang telah tersedia pada Python. Thread dapat diciptakan dengan membuat objek dari sebuah class threading.Thread, sehingga semua kemampuan dari kelas yang dibuat oleh subclass dari class Thread pada class threading.Thread dapat digunakan. Kemudian, fungsi yang akan dijalankan dapat dimasukkan ke dalam method run, yang merupakan method yang di-override dari class Thread. Thread pada method run ini akan dijalankan dengan memanggil method start yang sudah terdapat di dalam class Thread. Dalam melakukan penjadwalan thread, Python dapat melakukannya dengan melakukan pengontrolan terhadap semua thread yang terdapat
Gambar 3 : Gambar Siklus Kehidupan Thread [12]
3
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
2.
Perancangan Sistem Download accelerator ini merupakan aplikasi berbasis PyS60 (Python for Symbian S60) yang bertujuan untuk melakukan proses download lebih cepat dengan menggunakan metode atau mekanisme download parsial. Aplikasi ini diimplementasikan pada perangkat mobile, sehingga akses untuk menuju web server menggunakan access point ditentukan secara manual. Penentuan access point yang dilakukan secara manual karena aplikasi ini diimplementasikan pada Python seri 2.0.0 karena menggunakan untuk mengakses alamat url menggunakan modul urllib2 yang masih menggunakan modul socket.
2.1.
Proses Akses dan Download Data Aplikasi ini melakukan akses alamat URL yang didalamnya terdapat konten file. Alamat URL tersebut berbentuk text, yang kemudian disimpan pada parameter global, sebagai contoh alamat URL : http://www.contohurl.com/filecontoh/file.pdf. Kemudian alamat URL yang berisi konten file tersebut dilakukan proses request header untuk mendapatkan berbagai macam konten dari file tersebut, termasuk besar ukuran file yang akan didownload. File yang di-download akan tersimpan ke dalam memori dengan tambahan format “.part”. Penambahan format ini dimaksudkan agar proses download secara parsial dapat berjalan. Pada saat aplikasi sedang melakukan download dilakukan pengecekan apabila koneksi tiba-tiba terputus. Hal tersebut dapat dilakukan dengan memeriksa besar file yang sedang di-download. Apabila besar file yang sedang di-download = 0, maka akan muncul pesan bahwa koneksi terputus, apabila kemudian koneksi berjalan kembali, aplikasi akan melakukan auto-resume untuk kembali melakukan proses download. Perancangan proses akses alamat URL berdasarkan pada protokol HTTP. Dengan menggunakan command header yang terdapat pada protokol tersebut, proses transfer file dapat dilakukan secara parsial dan dapat pula dilakukan proses auto-resume. Oleh karena itu, aplikasi ini yang berperan sebagai klien menambahkan header ‘range’ pada saat melakukan request. Sehingga server dapat merespon sesuai request yang diminta oleh klien. Semua proses tersebut akan mengalami proses multithreading, sehingga proses download parsial dapat berjalan. Kemudian file yang telah selesai di-download akan berada pada memori perangkat mobile yang telah diatur secara default, yaitu pada drive E, yang merupakan tempat penyimpanan memory card. Pada perangkat mobile Symbian biasanya terdapat dua drive yaitu drive C, yang merupakan tempat dari phone memory dan drive E. Karena phone memory merupakan tempat aplikasi berjalan, maka file yang ter-download sebaiknya disimpan di dalam memory card.
Gambar 4 : Arsitektur Jaringan
Inti dari aplikasi download accelerator ini adalah proses mempercepat download dengan metode parsial.
Gambar 5 : Arsitektur Sistem Aplikasi
Mekanisme download parsial dapat berjalan dengan menggunakan proses multithreading yang telah didukung oleh PyS60 dengan menggunakan modul threading. Dengan menggunakan multithreading aplikasi dapat mengakses HTTP header untuk men-download bagian-bagian file secara bersamaan dalam satu waktu.
Gambar 6 : Proses Download Accelerator
4
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
tersebut telah di-download. State file disimpan pada folder yang sama dengan file yang di-download dengan ekstensi “.st”. Kemudian dilakukan proses download dengan multithreading sebanyak 4 proses threading (banyaknya proses threading telah diatur secara default). Multithreading menjalankan sebuah class yang berisi fungsi untuk men-download. Proses multithreading akan berhenti secara otomatis setelah proses download selesai dilakukan. Dengan berakhirnya proses download, state file tadi akan terhapus secara otomatis dari memory card.
Gambar 7 : Activity Proses Akses dan Pengambilan File
2.2.
Proses Multithreading Sistem multithreading pada aplikasi ini digunakan untuk melakukan mekanisme download parsial. Multithreading dilakukan untuk melakukan beberapa proses download dari satu file yang diakses secara bersamaan dalam satu waktu. Oleh karena itu, proses download dapat dilakukan lebih cepat dibanding dengan hanya melakukan satu proses download dari satu file yang di-download. Mekanisme download parsial dengan menggunakan multithreading pada aplikasi mobile sebenarnya hampir sama dengan mekanisme yang dilakukan pada aplikasi yang diimplementasikan pada PC. Mekanisme ini dilakukan dengan cara melakukan akses pada HTTP header dari alamat URL file secara parsial pada waktu bersamaan. Proses download diawali dengan pemisahan (split) alamat URL. Proses pemisahan alamat URL ini dilakukan untuk mendapatkan file yang akan didownload. Kemudian dilakukan pengecekan apakah file yang akan di-download dapat dilakukan download dengan menggunakan metode parsial atau tidak, jika file tersebut dapat dilakukan download dengan metode parsial, maka langkah selanjutnya adalah membuat sebuah state file yang berfungsi sebagai penanda sampai mana file
Gambar 8 : Activity Proses Download dengan Multithreading
3.
Uji Coba dan Evaluasi Uji coba yang dilakukan adalah uji coba fungsionalitas dari aplikasi yang telah dibuat.
3.1. Uji Coba Fungsionalitas Uji coba fungsionalitas dilakukan agar dapat diketahui apakah fungsi-fungsi dasar aplikasi dapat berjalan sesuai dengan perintah. Hasil uji coba ditunjukkan dengan beberapa screenshot dari aplikasi yang dibuat pada piranti mobile Nokia E72 5
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
dengan sistem operasi Symbian 60 3rd Edition. 3.1.1.
Form Input URL Uji menampilkan form input URL dilakukan dengan dua macam metode dalam melakukan input alamat URL, yaitu dengan cara input manual dan copy-paste. Pada saat telah masuk tampilan utama input URL dapat dilakukan dengan memilih options. Pada menu options tersebut dapat dipilih untuk melakukan input secara manual dengan memilih “Input URL” atau memilih “Paste URL” untuk melakukan paste alamat URL yang telah dicopy ke dalam clipboard.
Gambar 11 : Tampilan Antarmuka Memilih Access Point
Gambar 9 : Tampilan Antarmuka Input URL manual
Gambar 12 : Tampilan Antarmuka Access Point Terhubung
Pada saat proses download dilakukan tampilan aplikasi yang diuji akan menampilkan progress download pada mode console.Pada saat proses download akan dilakukan console akan menampilkan url yang akan di-download, sekaligus melakukan pengecekan apakah alamat URL yang akan di-download dapat di-download atau tidak. Sedangkan pada saat progress download sedang dilakukan aplikasi akan menampilkan kecepatan yang didapat pada saat melakukan download, persentase besar file yang telah ter-download, waktu yang tersisa pada saat melakukan download, dan besar file dari masing-masing thread yang sedang melakukan proses download parsial.
Gambar 10 : Tampilan Antarmuka Input URL CopyPaste.
Alamat URL yang telah dimasukkan baik melalui cara manual ataupun copy-paste dapat disimpan dengan cara memilih Save pada menu Options. Kemudian dengan memilih Back akan secara otomatis aplikasi men-download file yang terdapat pada alamat URL tersebut. 3.1.2.
Proses Download Uji penampilan proses download terlebih dahulu dilakukan dengan mengatur access point pada pilihan menu “Set Access Point”, dan setelah dapat melakukan koneksi pada access point, URL yang telah dimasukkan sebelumnya akan secara otomatis ter-download.
Gambar 13 : Tampilan Antarmuka Proses Progress Download
3.1.3.
Auto-Resume Uji coba auto-resume dilakukan dengan menggunakan emulator, karena uji coba tersebut susah untuk dilakukan pada device. Skenario yang dilakukan pada uji coba ini adalah dengan 6
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
melakukan pemutusan koneksi pada saat sedang melakukan download. Skenario tersebut susah dilakukan pada uji coba karena device yang digunakan jarang mengalami pemutusan koneksi.
operasional sibuk (12:00-17:00) Besar File (Byte) Percobaan 1
598 KB 1:53
2.43 MB 11:28
Percobaan 2
2:03
11:20
Percobaan 3
2:01
11:29
Percobaan 4
2:05
13:03
Percobaan 5
2:01
11:31
Tabel 1 Hasil Perbandingan Waktu Uji Coba 1
Hasil transfer rate yang didapat dari 5 kali percobaan dilakukan,
Gambar 14 : Tampilan Uji Coba Auto-Resume Saat Koneksi Terputus
Besar File (Byte)
598 KB
2.43 MB
Percobaan 1 Percobaan 2 Percobaan 3 Percobaan 4 Percobaan 5
5.20 KB/s
3.62 KB/s 3.67 KB/s 3.61 KB/s 3.18 KB/s 3.61 KB/s
4.88 KB/s 4.90 KB/s 4.82 KB/s 4.92 KB/s
Tabel 2 Hasil Perbandingan Transfer Rate Uji Coba 1
Uji Coba kedua masih dilakukan di tempat yang sama, namun yang diujikan pada uji coba kedua ini adalah uji coba proses download dengan menggunakan dua macam operator telekomunikasi yang berbeda yaitu Telkomsel, dan Axis. Proses uji coba download dilakukan dengan melakukan download 1 macam file yang berukuran 1.36 MB dan dilakukan sebanyak 5 kali percobaan pada setiap operator yang digunakan. Hasil uji coba download masih dilakukan pada jam operasional sibuk (12:00-17:00)
Gambar 15 : Tampilan Uji Coba Auto-Resume Saat Koneksi Disambungkan Kembali
Operator Percobaan 1 Percobaan 2 Percobaan 3 Percobaan 4 Percobaan 5
3.2. Uji Coba Performa Terdapat 2 skenario uji coba yang akan dilakukan, yakni uji coba penghitungan waktu download dan transfer rate download sesuai dengan besar ukuran file yang di-download. Pengujian juga dilakukan dengan menggunakan dua operator yang berbeda dalam melakukan koneksi, yaitu Telkomsel dan Axis.
Telkomsel 6:39 6:39 6:43 6:47 6:43
Axis 7:09 7:00 6:59 X X
Tabel 3 Hasil Perbandingan Waktu Uji Coba 2 Hasil transfer rate dari uji coba yang dilakukan,
3.2.1.
Evaluasi Uji coba pertama dilakukan di daerah Surabaya Timur dengan menggunakan operator Telkomsel yang mendapat jaringan 3G strip 6 (sinyal penuh). Uji coba dilakukan pada jam sibuk (12:00–17:00) dengan melakukan download 2 file berbeda dengan ukuran 598 KB dan 2.43 MB. Jenis file yang di-download adalah jenis Ms.Word document (berukuran 598 KB) dan jenis file video 3GP (berukuran 2.43 MB). Percobaan dilakukan sebanyak 5 kali. Hasil uji coba download file pada jam
Operator Percobaan 1 Percobaan 2 Percobaan 3 Percobaan 4 Percobaan 5
Telkomsel 3.49 KB/s 3.49 KB/s 3.44 KB/s 3.42 KB/s 3.46 KB/s
Axis 3.24 KB/s 3.31 KB/s 3.31 KB/s X X
Tabel 4 Hasil Perbandingan Transfer Rate Uji Coba 2 7
ADAM WICAKSONO - 5106100006
TUGAS AKHIR PERIODE JANUARI 2011
Dari hasil uji coba yang dilakukan, didapatkan bahwa pada proses download, besar file yang di-download, dan jenis koneksi yang didapat mempengaruhi proses download dengan mekanisme parsial. Dalam uji coba didapat beberapa percobaan tidak dapat dilakukan karena tidak mendapat koneksi yang baik.
dapat di-download dengan menggunakan aplikasi ini.
4.
[2] Van De Laar, Pierre, dkk. Content Based Partial Download. United States Patent Application Publication. 2007
Daftar Pustaka [1] Anonim. 2010. Download Acceleration, URL
, Diakses pada November 2010
Kesimpulan Dari serangkaian uji coba dan analisa yang dilakukan terhadap aplikasi yang dibuat, maka dapat dibuat suatu kesimpulan antara lain : 1. Telah diimplementasikan sebuah aplikasi perangkat mobile dengan fitur : a. Mampu melakukan download melalui internet dengan protokol HTTP. b. Download dilakukan dengan metode parsial yaitu dengan melakukan lebih dari satu akses terhadap file yang di-download, sehingga proses download dapat dipercepat. c. Metode parsial dilakukan dengan menggunakan multithreading yang dapat diimplementasikan pada perangkat mobile. d. Aplikasi dapat melakukan auto-resume, sehingga pada saat download tengah dilakukan dan koneksi terputus dapat melanjutkan download secara otomatis apabila koneksi telah tersambung kembali. 2. Didapatkan hasil, bahwa ukuran file yang didownload mempengaruhi performa kecepatan download, semakin besar file yang di-download semakin lambat kecepatan yang didapat. 3. Berdasarkan uji coba download dengan ukuran file yang besar, dapat terjadi kesalahan pada memory perangkat mobile yang menyebabkan terjadinya aplikasi Python tertutup secara tibatiba. 4. Jenis koneksi data yang digunakan mempengaruhi proses download, jika koneksi stabil maka proses download dapat dilakukan secara stabil dan lancar.
[3] S. Spero, Analysis of HTTP Performance Problems, URL. Diakses pada November 2010 [4] Fielding, R, dkk. Hypertext Transfer Protocol -HTTP/1.1, URL , Diakses pada November 2010 [5] Anonim. 2010. Symbian OS, URL , Diakses Desember 2010 [6] Morris, Ben. The Symbian OS Architecture Sourcebook. John Wiley & Sons. 2007 [7] Scheible, Jurgen., Tuulos, Ville. Mobile Python – Rapid Prototyping of Applications on the Mobile Platform. John Wiley & Sons. 2007 [8] Anonim. 2010. Python (Programming Language), URL < http://en.wikipedia.org/wiki/Python_(program ming_language)>, Diakses Desember 2010 [9]
Rajshekhar, A.P. Mobile Programming using Pys60: Getting Started. URL , Diakses Desember 2010
[10] Python Software Foundation. 2010. Python URL documentation. v2.7.1 , Diakses Desember 2010
5.
Saran Saran dari penulis dalam pengembangan sistem ini, agar dapat diterapkan pada platform yang berbeda, Blackberry misalnya. Implementasi download accelerator pada Blackberry akan sangat berguna bagi pengguna Blackberry yang semakin meningkat. Selain meningkatnya pengguna Blackberry, yang menjadi alasan mengapa aplikasi ini layak jika dapat diimplementasikan pada device tersebut karena saat ini banyak operator telekomunikasi yang telah menyediakan layanan akses data pada Blackberry yang bersifat unlimited, sehingga keuntungan akan didapat oleh pengguna Blackberry jika ingin melakukan download file dalam ukuran besar. Selain itu, integrasi aplikasi ini dengan beberapa aplikasi mobile browser mungkin dapat dilakukan agar pengguna yang sedang melakukan browse dan ingin melakukan download
[11] Masyarakat Digital Gotong Royong. 2008. Pengantar Sistem Operasi Komputer. URL , Diakses Desember 2010 [12] Rosyada, Amru. Multithreading dengan Python. IlmuKomputer.Com. 2006
8
ADAM WICAKSONO - 5106100006