A. Pengertian Pemrograman Mobile
Pemrograman Mobile adalah pemrograman yang ditujukan untuk pembuatan aplikasi diperangkat mobile. Banyak sekali platform mobile yang dapat kita coba, diantaranya iOS, BB RIM, J2ME, QT Mobile, Symbian, dan Android. Salah satunya yang sedang booming adalah Android Mobile. Android merupakan sistem operasi berbasis linux yang bahasa pemrograman aplikasinya dapat kita buat menggunakan java.
B. Sistem Operasi Bergerak
Sistem Operasi adalah software utama yang bertugas melakukan menejemen dan kontrol terhadap hardware secara langsung serta software-software lain sehingga software-software lain tersebut dapat berjalan. Sistem operasi itu sendiri digunakan sebagai interface perantara antara user dan device yang digunakan untuk mengontrol/memanage device maupun aplikasi di dalamnya.
Pengertian Perangkat Bergerak (Mobile Device) yakni Perangkat yang bisa dibawa kemana-mana,bergerak (mobile).
Macam-macam perangkat bergerak:
- Notebook PC
- Ultra-Mobile PC
- Handheld PC
- PDA
- Graphing Calculator
- Pocket Computer
- Dll
Karakteristik perangkat bergerak (mobile)
- Ukuran yang kecil
Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.
- Memory yang terbatas
Perangkat mobile juga memiliki memory yang kecil, yaitu primary (RAM) dan secondary (disk). Pembatasan ini adalah salah satu faktor yang mempengaruhi penulisan program untuk berbagai jenis perangkat ini. Dengan pembatasan jumlah dari memory, pertimbangan-pertimbangan khusus harus diambil untuk memelihara pemakaian dari sumber daya yang mahal ini.
- Ukuran yang kecil
Perangkat mobile memiliki ukuran yang kecil. Konsumen menginginkan perangkat yang terkecil untuk kenyamanan dan mobilitas mereka.
- Daya proses yang terbatas
Sistem mobile tidaklah setangguh rekan mereka yaitu desktop. Ukuran, teknologi dan biaya adalah beberapa faktor yang mempengaruhi status dari sumber daya ini. Seperti harddisk dan RAM, dapat anda temukan dalamukuran yang pas dengan kemasan yang kecil.
- Mengkonsumsi daya yang rendah
Perangkat mobile menghabiskan sedikit daya dibandingkan dengan mesin dekstop. Perangkat ini harus menghemat daya karena mereka berjalan padakeadaan dimana daya yang disediakan dibatasi oleh baterai-baterai.
- Masa hidup yang pendek
Perangkat-perangkat konsumen ini menyala dalam hitungan detik kebanyakan dari mereka selalu menyala. Coba ambil kasus sebuah handphone, mereka booting dalam hitungan detik dan kebanyakan orang tidak mematikan handphone mereka bahkan ketika malam hari.
C. Lingkungan Pengembangan
Lingkungan pengembang atau IDE (Integrated Devolpment Environtment) merupakan program komputer sebagai lingkungan pengembangan aplikasi atau program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Tujuan dari IDE adalah untuk menyediakan semua utilitas yang diperlukan dalam membangun perangkat lunak. Menjadi seorang programmer diharuskan untuk mengetahui berbagai IDE untuk pembangunan perangkat lunak.
Fasilitas yang dimiliki IDE :
- Editor, fasilitas ini gunanya untuk menuliskan kode atau fungsi-fungsi yang dapat diterjemahkan oleh mesin komputer sebagai kode programming.
- Compiler, gunanya untuk menjalankan bentuk kode program yang di tuliskan di Editor dan mengubah dalam bentuk binary yang kemudian ditampilkan sesuai perintah-perintah kode mesin.
- Debuger, gunanya untuk mengecek dan mengetes jalannya kode program untuk mencari/mendebug kesalahan dari program.
- Frame/Views, fasilitias ini gunanya untuk menujukan atau menampilkan hasil dari perintah-perintah kode program yang dieksekusikan oleh Compilerdari Editor.
D. Software Development
Software Development adalah jasa pembuatan program aplikasi berdasarkan keinginan anda. penerapan program tersebut dapat disesuaikan atas kebutuhan otomatisasi perusahaan, apakah itu berupa sistem penagihan, laporan keuangan atau sistem pemasaran yang terintegrasi dengan seluruh cabang perusahaan.
Secara garis besar Software Development terbagi menjadi beberapa tahapan, yaitu:
- Planning
Merupakan tahap awal untuk memulai Software Development. Tujuan dari tahap ini adalah menghasilkan: proses kerja yang jelas antar setiap anggota, timeline, dan anggaran dana. Pada tahap ini juga, ketua proyek berkoordinasi dengan stakeholder untuk membuat kontrak kerja yang jelas. Selain berisi tentang estimasi dana, kontrak kerja juga harus memiliki batasan-batasan pengerjaan yang jelas. Hal ini dilakukan agar tim proyek tidak terikat dengan tambahan-tambahan modul yang nanti mungkin agar terjadi.
- Requirement and Specification
Tahap ini dilakukan untuk menentukan fitur-fitur yang tepat serta kebutuhan sistem untuk software yang akan dibuat. Tahap ini dapat dilakukan dengan interview, observasi lapangan, dan studi pustaka.
- Architecture and Design
Merupakan tahap untuk menentukan detail sistem yang akan dipakai. Tahap ini bertujuan untuk menentukan desain keseluruhan dari software, yang meliputi: konseptual database, sistem keamanan, dan interface.
- Implementation and Testing
Tahap implementasi merupakan tahap pembuatan software dengan berpedoman pada tahap-tahap sebelumnya. Sedangkan tahap Testing merupakan serangkaian uji coba yang diberikan kepada software untuk menentukan kapabilitasnya. Tsting dapat terbagi menjadi: security testing, performance testing, stress testing, recovery testing.
- Deployment and Maintenance
Kedua tahap terakhir ini adalah tahap dimana software telah mulai digunakan oleh user. Terdapat 2 hal penting yag ada pada tahap ini, antara lain: 1) training penggunaan software dan 2) pemantauan software. Pemantauan dilakukan untuk mengecek apakah software telah stabil atau belum. Kestabilan ini dapat dinilai dengann tidak adanya bug yang muncul selama penggunaan.
E. Arsitektur Sistem Operasi Mobile
Arsitektur sistem operasi pada Android
Google sebagai pencipta Android yang kemudian diasuh oleh Open Handset Alliance mengibaratkan Android sebagai sebuah tumpukan software. Setiap lapisan dari tumpukan ini menghimpun beberapa program yang mendukung fungsi-fungsi spesifik dari sistem operasi. Tumpukan paling bawah adalah kernel. Google menggunakan kernel Linux versi 2.6 untuk membangun Android, yang mencakup memory management, security setting, power management, dan beberapa driver hardware. Bertempat di level yang sama dengan library adalah lapisan runtime yang mencakup serangkaian inti library Java. Dengannya, para programmer dapat mengembangkan aplikasi untuk Android menggunakan bahasa pemrograman Java. Lapisan selanjutnya adalah application framework, yang mencakup program untuk mengatur fungs i- fungsi dasar smartphone.
Gambar Arsitektur Android
- Linux Kernel
Android dibangun di atas kernel Linux 2.6. Namun secara keseluruhan android bukanlah linux, karena dalam android tidak terdapat paket standar yang dimiliki oleh linux lainnya. Linux merupakan sistem operasi terbuka yang handal dalam manajemen memori dan proses. Oleh karenanya pada android hanya terdapat beberapa servis yang diperlukan seperti keamanan, manajemen memori, manajemen proses, jaringan dan driver. Kernel linux menyediakan driver layar, kamera, keypad, WiFi, Flash Memory, audio, dan IPC (Interprocess Communication) untuk mengatur aplikasi dan lubang keamanan.
- Libraries
Android menggunakan beberapa paket pustaka yang terdapat pada C/C++ dengan standar Berkeley Software Distribution (BSD) hanya setengah dari yang aslinya untuk tertanam pada kernel Linux. Beberapa pustaka diantaranya:
- Media Library untuk memutar dan merekam berbagai macam format audio dan video.
- Surface Manager untuk mengatur hak akses layer dari berbagai aplikasi.
- Graphic Library termasuk didalamnya SGL dan OpenGL, untuk tampilan 2D dan 3D.
- SQLite untuk mengatur relasi database yang digunakan pada aplikasi.
- SSl dan WebKit untuk browser dan keamanan internet.
- Android Runtime
Pada android tertanam paket pustaka inti yang menyediakan sebagian besar fungsi android. Inilah yang membedakan Android dibandingkan dengan sistem operasi lain yang juga mengimplementasikan Linux. Android Runtime merupakan mesin virtual yang membuat aplikasi android menjadi lebih tangguh dengan paket pustaka yang telah ada. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:
- Application Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android. Selain itu, juga menyediakan abstraksi generik untuk mengakses perangkat, serta mengatur tampilan user interface dan sumber daya aplikasi. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut [Hello Android 2nd Edition]:
- Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.
- Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.
- Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.
- Location Manager, berfungsi untuk memberikan informasi detail mengenai lokasi perangkat android berada.
- Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.
- Application Layer
Puncak dari diagram arsitektur android adalah lapisan aplikasi dan widget. Lapisan aplikasi merupakan lapisan yang paling tampak pada pengguna ketika menjalankan program. Pengguna hanya akan melihat program ketika digunakan tanpa mengetahui proses yang terjadi dibalik lapisan aplikasi. Lapisan ini berjalan dalam Android runtime dengan menggunakan kelas dan service yang tersedia pada framework aplikasi.
Lapisan aplikasi android sangat berbeda dibandingkan dengan sistem operasi lainnya. Pada android semua aplikasi, baik aplikasi inti (native) maupun aplikasi pihak ketiga berjalan diatas lapisan aplikasi dengan menggunakan pustaka API (Application Programming Interface) yang sama.
F. Versi-Versi Sistem Operasi
- Sistem Operasi Windows Mobile
Windows Mobile adalah sistem operasi seluler yang ditawarkan oleh Microsoft. OS windows mobile biasanya hanya digunakan pada ponsel jenis PDA Phone yang harganya lumayan untuk kalangan ekonomi menengah kebawah, namun biasanya pengguna HP dengan OS ini hanya kalangan pebisnis yang ekonominya lumayan.
- Sistem Operasi Symbian
Symbian OS adalah sistem operasi tak bebas yang dikembangkan oleh Symbian Ltd. yang dirancang untuk digunakan peralatan bergerak (mobile). Saat ini Symbian OS banyak telah banyak digunakan oleh berbagai vendor produk peralatan komunikasi mobile pada berbagai jenis produk mereka yang bervariasi. Variasi dari sisi hardware ini dimana Symbian OS diimplementasi dapat dimungkinkan karena sistem operasi ini memiliki antarmuka pemprograman aplikasi (Application Programming Interface; API). API mendukung terhadap komunikasi dan tingkah laku yang umum pada hardware yang dapat digunakan oleh objek aplikasi lain. Hal ini dimungkinkan karena API merupakan objek antarmuka yang didefenisikan pada level aplikasi, yang berisikan prosedur dan fungsi (dan juga variabel serta struktur data) yang mengelola/memanggil kernel dimana sebagai penghubung antara software dan hardware. Dengan adanya standar API ini membantu pihak pengembang untuk melakukan penyesuaian atas aplikasi yang dibuatnya agar dapat diinstal pada produk telepon bergerak yang bermacam-macam.
- Sistem Operasi iOs
iOS adalah sebuah sistem operasis berbasis perangkat mobile buatan applie yang bekerja pada perangkat iPhone, iPod touch, dan iPad. i-nya sendiri mungkin dimaksudkan sebagai perangkat yang selalu terhubung dengan internet sebagaii cloud utamanya, tetapi juga mewakili desain perangkat yang futuristik dan prestise seperti yang selama ini melekat kepada produk-produk buatan Apple Inc. Teknologi iOS sendiri merupakan pengembangan dari teknologi yang sudah ada pada Mac OS, dan sedikit banyak mirip dengan Mac OS X, hanya iOS lebih sederhana dan ringan di banding dengan Mac OS X. Selain itu memang iOS di buat dengan tujuan perangkat gadget mulai dari iPod touch, iPhone dan iPad tablet.
- Sistem Operasi android
Android adalah sistem operasi terkini sebuah ponsel besutan perusahaan raksasa Google. Sistem operasi ini sudah mulai digunakan oleh vendor terkemuka dibidang PDA berlayar sentuh yaitu HTC diikuti oleh vendor lokal IMO yang barangkali ingin mencoba sedikit peruntungannya. Mengandalkan berbagai fitur milik Google yang kabarnya menjadi ancaman bagi perusahaan lainnya sekelas Microsoft dan Yahoo. Android berusaha mencuri perhatian melalui Maps, Search hingga browsernya yang diklaim jauh lebih ringkas dan cepat. Sayangnya keterbatasan budget kantong pribadi menjadi salah satu kendala untuk menjajal sistem operasi ini. Masih berharap Google bakalan menyediakan Simulator Developmentnya seperti halnya BlackBerry dan Windows Mobile tempo hari.
- Sistem Operasi blackberry
RIM menyediakan sistem operasi multi-tugas (multi-tasking operating system – OS) bagi BlackBerry yang memungkinkan penggunaan secara intens dari sebuah alat. OS menyediakan dukungan bagi MIDP 1.0 dan WAP 1.2. Versi sebelumnya memungkinkan sinkronisasi nirkabel melalui e-mail dan kalendar Microsoft Exchange Server, dan juga e-mail Lotus Domino. Sementara OS 4 yang terbaru merupakan pelengkap dari MIDP 2.0, dan memungkinkan aktivasi nirkabel lengkap dan sinkronisasi dengan e-mail, kalender, dan lain-lain.
G. Perbandingan Sistem Operasi Mobile
Beberapa acuan perbandingan sistem operasi mobile
- Sisi Harga
Tentu Android memiliki variasi harga yang lebih banyak, OS Android bisa kita jumpai di berbagai Brand smartphone lokal hingga Global dengan penawaran harga paling murah dibawah sejutaan hingga harga kelas tinggi. Sementara untuk Windows Phone, tidak jauh berbeda dengan Android memiliki variasi harga yang cukup banyak. Hanya ketersediaan smartphone Windows Phone tidak sebanyak smartphone Android. Kemudian untuk smartphone berbasis iOS, harga yang ditawarkan relatif mahal namun memiliki prestige tersendiri. Dan untuk perangkat BB, rata-rata harganya masih agak mahal. Meskipun ada beberapa perangkat BB yang dijual dengan harga sejutaan.
- Aplikasi
Untuk urusan aplikasi tentu jagonya adalah Android, ketersediannya paling banyak diantara ketiga kompetitor lainnya. Kedua ada iOS yang juga memiliki ketersediaan aplikasi yang cukup banyak di bawah Android. Sementara untuk Windows Phone dan BB, ketersediaan aplikasi-aplikasinya masih tertinggal jauh oleh Android dan iOS.
- Antar Muka (Interface)
Android memiliki interface yang berbeda-beda sesuai dengan vendor yang mengusungnya. Karena Android ini banyak digunakan oleh vendor-vendor seperti Samsung, Sony, HTC, Lenovo, Huawei, Advan dan sebagainya. Jadi setiap interface Android memiliki khas berbeda, sesuai vendor yang mengusungnya.
iOS memiliki antar-muka yang khas rancangan Apple, dalam interface yang digunakannya memiliki tampilan yang lebih modern dengan variasi warna yang dihadirkan.
Untuk Windows Phone antar-muka yang digunakan terkesan kaku dan tidak memiliki pilihan-pilihan widget yang lengkap. Sementara untuk BlackBerry memiliki antar-muka yang kurang flexible.
- Proteksi / Keamanan
Untuk hal yang satu ini iOS lah juaranya jika dibandingakan dengan ketiga pesaingnya, pasalnya Apple memiliki pengawasan yang lebih ketat terhadap aplikasi-aplikasi yang disediakannya. Dan Apple memiliki kontrol yang lebih baik terhadap apliksi-aplikasi untuk penunjang perangkat iOS.
- Umur Baterai
Keempat OS tersebut sebenarnya memiliki ketahanan umur baterai yang tidak jauh berbeda, perbedaanya terletak pada kapasitas dan penggunaan aplikasi saja. Untuk mengatasi penghematan daya baterai, dari keempat OS tersebut sudah disediakan aplikasi penghemat daya yang cukup membantu untuk konsumsi daya yang berlebihan.
H. Kekurangan dan Kelebihan Sistem Operasi Mobile
- Kelebihan
- Open Source, alias gratis, sehingga para developer aplikasi Android OS tidak perlu bayar untuk membuat aplikasi untuk Android. Tidak seperti iPhone atau Windows Mobile yg mengharuskan pada developer membayar untuk membuat aplikasinya.
- Karena pengembangannya gratis, maka aplikasinya pun rata2 gratis, sehingga tidak perlu bayar untuk men-donwnload dan menginstall aplikasi di Android.
- Pemakaiannya mudah alias ga ribet (menurut orang yg sudah memakai Ponsel G1 dengan OS Android)
- Stabil dan aman, tidak seperti windows yg terkadang hang atau bahkan terkena virus.
- Didukung penuh oleh google
- Harga relatif murah.
- Kekurangan
- Karena masih baru, maka belum banyak aplikasi yg tersedia untuk android, tidak seperti iPhone atau WinOS yg bejibun aplikasinya
- Bagi orang yg belum pernah memakainya mungkin akan sedikit membingungkan
- Masih sedikit yg memakai OS ini
- Kurang nyaman untuk dipakai komunikasi.
- Tidak ada microsoft office.
- Harus terkoneksi dengan jaringan internet.
I. Pengembangan Aplikasi Mobile
Pengembangan Aplikasi mobile
- Platform Java
Java dibuat pada tahun 1991 oleh James Gosling. Salah satu dari proyek pertama yang dikembangkan menggunakan JAVA sebuah remote kontrol yang diberi nama Star 7. Pada saat yang sama, World Wide Web dan Internet berkembang sangat cepat. Gosling menyadari bahwa Java dapat digunakan untuk pemrograman Internet. Dengan keluarnya versi 1.2, platform Java telah dipilah-pilah menjadi beberapa edisi : The Standard Edition(J2SE), Enterprise Edition(J2EE), Mobile Edition(J2ME), dan JavaCard API.
J2SE – Java 2 Platform, Standard Edition | Aplikasi Desktop |
J2EE – Java 2 Platform, Enterprise Edition | Aplikasi enterprise dengan fokus pada pengembangan sisi webserver, termasuk servlet,JSP,EJB, dan XML |
J2ME – Java 2 Platform, Micro Edition | Perangkat Mobile |
JavaCard | Smart Cards |
- J2M
J2ME adalah satu set spesifikasi dan teknologi yang fokus kepada perangkat konsumen. Perangkat ini memiliki jumlah memori yang terbatas, menghabiskan sedikit daya dari baterei, layar yang kecil dan bandwith jaringan yang rendah.
Dengan perkembangbiakan perangkat mobile konsumer dari telepon, PDA, kotak permainan ke peralatan-peralatan rumah, Java menyediakan suatu lingkungan yang portable untuk mengembangkan dan menjalankan aplikasi pada perangkat ini.
Program J2ME, seperti semua program JAVA adalah diterjemahkan oleh VM. Program-program tersebut dikompile ke dalam bytecode dan diterjemahkan denga Java Virtual Machine(JVM).Ini berarti bahwa program-program tersebut tidak berhubungan langsung dengan perangkat. J2ME menyediakan suatu interface yang sesuai dengan perangkat. Aplikasi-aplikasi tersebut tidak harus dikompile ulang supaya mampu dijalankan pada mesin yang berbeda.
Inti dari J2ME terletak pada configuration dan profile-profile. Suatu configuration menggambarkan lingkungan runtime dasar dari suatu sistem J2ME. Ia menggambarkan core library, virtual machine, fitur keamanan dan jaringan.
Sebuah profile memberikan library tambahan untuk suatu kelas tertentu pada sebuah perangkat. profile-profile menyediakan user interface (UI) API,persistence, messaging library, dan sebagainya.
Satu set library tambahan atau package tambahan menyediakan kemampuan program tambahan. Pemasukan package ini ke dalam perangkat J2ME dapat berubah-ubah karena tergantung pada kemampuan sebuah perangkat. Sebagai contoh, beberapa perangkat MIDP tidak memiliki Bluetooth built-in, sehingga Bluetooth API tidak disediakan dalam perangkat ini.
Referensi
Newbie-21, ”Apa itu Pemrograman mobile”, (http://newbie-21.blogspot.co.id/2014/08/apa-itu-pemrograman-mobile.html, diakses 12 Oktober 2017).
Dhiekhy, ”Kelebihan dan Kekurangan Operating System Mobile ”, (https://dhiekhy.wordpress.com/2014/03/11/kelebihan-dan-kekurangan-os-mobile/, diakses 12 Oktober 2017).
E-journal Teknik Elektro dan Komputer (2013), ISSN : 2301-8402
Techno Plus, ”Macam-Macam Sistem Operasi Pada Perangkat Mobile”,(http://techno-39.blogspot.co.id/2010/11/macam-macam-sistem-operasi-pada.html, diakses 12 Oktober 2017).
Afridatriana, “Software Development”, (http://afridatriana.blogspot.co.id/2013/01/software-development.html, diakses 12 Oktober 2017).
Vedc Malang, “Arsitektur Sistem Operasi Android”, (http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/teknologi-informasi/825-arsitektur-sistem-operasi-android, diakses 12 Oktober 2017).
Cloud Indonesia, “Macam-Macam Sistem Operasi Handphone”, (http://cloudindonesia.com/macam-macam-sistem-operasi-os-pada-handphone/, diakses pada 13 Oktober 2017).
Hati, Gunita Mustika. 2013. Aplikasi Penanda Lokasi Peta Digital Berbasis Mobile Gis Pada Smartphone Android. Diambil dari: (11 Oktober 2017)
Klik Ponsel, “Perbandingan OS Android WindowsPhone Ios dan Blackberry”, (http://www.klikponsel.com/perbandingan-os-android-windows-phone-ios-dan-bb/, diakses 13 Oktober 2017).
Tekom University, “Pengenalan IDE”, (http://fit.labs.telkomuniversity.ac.id/pengenalan-ide-integrated-development-environment/, diakses 14 Oktober 2017).