Pengertian Pemgrograman Mobile
Pemrograman Mobile adalah pemrograman yang ditujukan untuk pembuatan aplikasi diperangkat mobile. Banyak sekali platform mobile salah satunya yang sedang populer adalah Android Mobile. Android merupakan sistem operasi berbasis linux yang bahasa pemrograman aplikasinya dapat kita buat menggunakan java.
Sistem Operasi Perangkat Penggerak
Perangkat komputasi bergerak seperti smartphone dan tablet, tidak bisa dilepaskan dari adanya sistem operasi (operating system).
Sistem operasi pada perangkat bergerak memadukan kemampuan sistem operasi pada komputer dengan kemampuan untuk mengelola komponen yang biasa ada dalam perangkat bergerak seperti layar sentuh, jaringan seluler, bluetooth, WiFi, navigasi GPS, NFC, dan fitur standar lainnya.
Sistem operasi perangkat bergerak yang terkenal karena banyaknya perangkat yang dipakainya adalah iOS keluaran Apple dengan perangkat iPhone dan iPad (termasuk iPod), Android keluaran Google yang banyak digunakan pada perangkat keluaran Samsung, HTC, LG dan yang lainnya, Blackberry OS keluaran RIM (sekarang Blackberry) dengan perangkatnya Blackberry, Windows Phone keluaran Microsoft dengan perangkat buatan Nokia, HTC dan lainnya.
Lingkungan Pengembangan
Masing-masing platform untuk aplikasi mobile memiliki lingkungan pengembangan terintegrasi, yang menyediakan alat untuk memungkinkan pengembang untuk menulis, menguji dan menyebarkan aplikasi ke dalam lingkungan platform target.
IDE (Integrated Development Environment) adalah program computer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak.
Sebuah IDE setidaknya memiliki fasilitas:
- Editor, untuk menuliskan kode sumber dari perangkat lunak.
- Compiler, untuk mengecek sintaks dari kode sumber kemudian mengubah dalam bentuk binari yang sesuai dengan bahasa mesin.
- Linker, untuk menyatukan data kode sumber yang dihasilkan compiler sehingga data-data binari tersebut menjadi satu kesatuan dan menjadi suatu program yang siap dieksekusi.
- Debuger, untuk mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat dalam program.
Beberapa IDE yang populer digunakan dalam pengembangan aplikasi mobile:
Android Studio(Android), XCode(iOS), Visual Studio(Windows Phone), Momentics IDE(BlackBerry).
Software Development
Pengembangan perangkat lunak adalah proses pemrograman komputer, mendokumentasikan, pengujian, dan memperbaiki bug yang terlibat dalam menciptakan dan memelihara aplikasi dan kerangka kerja sehingga menghasilkan produk perangkat lunak. Pengembangan perangkat lunak adalah proses menulis dan memelihara yang kode sumber, tetapi dalam arti yang lebih luas, itu mencakup semua yang terlibat antara konsepsi perangkat lunak yang diinginkan melalui manifestasi akhir dari perangkat lunak, kadang-kadang dalam terencana dan terstruktur proses.
Kegiatan pengembangan perangkat lunak:
- Identifikasi kebutuhan.
- Perencanaan.
- Merancang.
- Implementasi, pengujian dan mendokumentasikan.
- Penyebaran dan pemeliharaan.
Ada juga point penting lainnya yaitu:
- Model tampilan.
- Proses bisnis dan data pemodelan.
- Dibantu komputer rekayasa perangkat lunak.
- Lingkungan pengembangan terintegrasi.
- Bahasa pemodelan.
- Pemgrograman paradigm.
Arsitektur sistem operasi mobile
Arsitektur sistem operasi adalah arsitektur perangkat lunak yang digunakan dalam membangun perangkat lunak sistem operasi.
Arsitektur system opersi Android
Linux Kernel
Tumpukan paling bawah pada arsitektur Android ini adalah kernel,dimana Google menggunakan kernel Linux versi 2.6 untuk membangun sistem Android, yang mencakup memory management, security setting, power management, dan beberapa driver hardware.
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.
Aplication Framework
Kerangka aplikasi menyediakan kelas-kelas yang dapat digunakan untuk mengembangkan aplikasi android. Bagian terpenting dalam kerangka aplikasi android adalah sebagai berikut:
- 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
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.
Versi-Versi sistem operasi Android
Dari tahun 2008 sampai sekarang Android sudah banyak merilis versi dan perubahan yang sangat cepat. Sampai sekarang versi terakhir adalah android Oreo.
Cupcake (Versi: 1.5)
Android Cupcake adalah merupakan pembaharuan sistem yang diluncurkan pada April 2009.
- Linux kernel 2.6.27.
- Rilis awal yang menggunakan nama makanan yang manis.
Fitur:
Dukungan untuk pihak ketiga.
Perekaman dan pemutaran video.
Fitur copy dan paste di browser
Transisi layar animasi dan pilihan auto-rotasi.
Kemampuan untuk meng-upload foto dan video.
Donut (Versi: 1.6)
Rilis September 2009
Linux kernel 2.6.29
Fitur :
Kotak telusur kilat
Keragaman ukuran layer
Android market
Eclair (Versi: 2.1)
Rilis Oktober 2009
Linux kernel 2.6.29
Fitur :
Google Map Navigasi
Penyesuaian Layar Utama
Speech-to-text
Froyo (Versi: 2.2)
Rilis Mei 2010
Linux kernel 2.6.32
Fitur :
Voice Action
Hotspot Portable
Performa
Froyo (Versi: 2.2)
Rilis Mei 2010
Linux kernel 2.6.32
Fitur :
Voice Action
Hotspot Portable
Performa
Honeycomb (Versi: 3.0)
Rilis Februari 2011
Linux kernel 2.6.36
Fitur :
Desain yang sesuai untuk Tablet
Bilah Sistem
Setelan Cepat
Ice Cream Sandwich (Versi: 4.0)
Rilis Oktober 2011
Linux kernel 3.0.1
Fitur :
Layar Utama Khusus
Kontrol penggunaan data
Android Beam
Jelly Bean (Versi: 4.1)
Rilis Juni 2012
Linux kernel 3.0.31
Fitur :
Google Now
Notifikasi yang dapat ditindaklanjuti
Beralih Akun
KitKat (Versi: 4.4)
Rilis Oktober 2013
Fitur :
Voice: OK Google
Desain Impresif
Telepon Cerdas
Lollipop (Versi: 5.0)
Rilis Juni 2014
Fitur :
Desain Material
Multilayar
Notifikasi
Marshmallow (Versi: 6.0)
Rilis Mei 2015
Fitur :
Now On Tap
Izin
Baterai
Nougat (Versi: 7.0)
Rilis Pertengahan 2016
Fitur :
Google Assistant
Split-screen
Dukungan Virtual Reality
Oreo (Versi: 8.0)
Rilis Agustus 2017
Fitur :
Background limit
Notification Channel
Picture in Picture
Perbandingan sistem operasi mobile
Android
Developer : Google
Source : Open
- Keterjangkauan, antarmuka, dan aplikasi
- Google play store
- Kebebasan kustomisasi
- Konektivitas
- Wearable
iOS
Developer : Apple
Source : Closed
- Interface sangat bagus
- App store
- Dukungan penuh sistem operasi
- Kamera bagus
- Sederhana & aman
Windows Phone
Developer : Microsoft
Source : Closed
- Asisten suara
- Windows Store
- Dukungan Microsoft
Kelebihan dan kekurangan sistem operasi pada mobile
Kelebihan
- Merupakan sistem operasi open source, sehingga mudah dikembangkan oleh developer handset.
- Mudah dikustomisasi dan dimodifikasi.
- OS android dapat dijalankan pada banyak pilihan spesifikasi hardware.
- Dukungan aplikasi yang sangat banyak dan beragam.
- Dapat diaplikasikan di banyak peralatan elektronik.
- Dikembangkan oleh salah satu raksasa telekomunikasi dunia, yaitu Google.
- Merupakan salah satu sistem operasi yang cepat dan responsive.
Kekurangan
- Memiliki proses kerja sistem yang cukup berat, sehingga memakan RAM cukup banyak.
- Terkadang apabila disandingkan dengan spesifikasi hardware yang buruk, menjadi kurang responsive.
- Sistem operasi yang di custom sering tidak stabil dan kurang optimal.
Pengembangan aplikasi mobile
Di ranah pengembangan aplikasi mobile, kamu akan sering mendengar istilah seperti aplikasi native atau aplikasi web, atau bahkan aplikasi hybrid.
Native
Aplikasi native adalah aplikasi yang dibangun dengan bahasa pemrograman yang spesifik untuk platform tertentu.
Contoh : penggunaan Bahasa Swift untuk iOS app, java untuk Android app, dsb
Keuntungan memilih aplikasi native adalah yang tercepat dan paling dapat diandalkan saat berhubungan dengan pengalaman pengguna. Aplikasi asli juga dapat berinteraksi dengan semua fitur sistem operasi perangkat, seperti mikrofon, kamera, daftar kontak, dll.
Web app
Aplikasi web bisa menjadi pilihan yang terbaik untuk membangun produk yang diinginkan. Karena benar-benar minim persyaratan, dengan kata lain akses ke fitur dari perangkat mobile seperti Push Notification tidak diperlukan. Aplikasi web bisa menjadi pilihan yang murah dari sisi budget. Namun sayangnya, aplikasi web tidak bisa didistribusikan melalui toko aplikasi native seperti App Store atau Google Play.
Web app dibangun dengan HTML CSS Javascript dan Bahasa pemrograman sebagai Backendnya.
Hybrid
Aplikasi hybrid adalah aplikasi web yang ditransformasikan menjadi kode native pada platform seperti iOS atau Android. Aplikasi hybrid biasanya menggunakan browser untuk mengijinkan aplikasi web mengakses berbagai fitur di device mobile seperti Push Notification, Contacts, atau Offline Data Storage. Beberapa tools untuk mengembangkan aplikasi hybrid antara lain Phonegap, Rubymotion dan lain-lain.
Untuk File presentasi dapat diunduh dilink berikut : http://www91.zippyshare.com/v/hjofkyE6/file.html
Sumber
- Satyaputra, Alfa. 2014. Beginning Android Programming with ADT Bundle. Tangerang : PT ELEX MEDIA KOMPUTINDO
- https://id.m.wikipedia.org/wiki/Lingkungan_pengembangan_terpadu
- https://blog.markgrowth.com/native-vs-web-vs-hybrid-apps-whats-the-difference-1df4c5e4bc50
- https://www.codepolitan.com/apa-bedanya-aplikasi-native-hybrid-dan-web
- https://www.mobiloud.com/blog/web-hybrid-native-apps
- https://haiwiki.info/teknologi/urutan-tingkatan-versi-sistem-operasi-android
- https://www.android.com/intl/id_id/history
- https://www.digitaltrends.com/mobile/best-smartphone-os/
- https://en.wikipedia.org/wiki/Software_development
- https://dosenit.com/software/sistem-operasi/kelebihan-dan-kekurangan-os-android