- PENGERTIAN PEMOGRAMAN MOBILE
Mobile adalah perangkat yang bergerak, misalnya telepon seluler atau komputer bergerak yang
digunakan untuk mengakses jasa jaringan. Jadi mobile programming adalah program yg di gunakan utk perangkat mobile.
- B. SISTEM OPERASI PERANGKAT MOBILE
Sistem operasi Perangkat yang bergerak (OS mobile), Meliputi Symbian, Java, Windows Mobile, Android, IOS, dan lain-lain
- LINGKUNGAN PENGEMBANGAN
Lingkungan pengembangan adalah kumpulan prosedur serta alat-alat untuk mengembangkan, menguji, dan memperbaiki aplikasi atau program. Didalam lingkungan pengembbangan biasanya terdapat 3 tingkatan yaitu : pengembangan, pementasan dan produksi. Dari ketiga tingkatan tersebut biasanya disebut DSP (Development, Staging, Production).
– Development Server
– Staging Server
– Production Server
Setelah persetujuan selesai, maka aplikasi ini sudah menjadi bagian server ini atau pemilik
developer. Istilah ini kadang-kadang digunakan secara sinonim yaitu Integrated Development Environtmet (IDE) yaitu alat pengembangan perangkat lunak yang digunakan untuk menulis, membangun, menguji dan debug pada suatu program. Tidak hanya itu saja, mereka juga menyediakan pengembangan antarmuka pengguna umum atau biasa disebut UI (User Interface) untuk mengembangkan dan debug di dalam mode atau pilihan yang berbeda-beda.
SUMBER : https://www.techopedia.com/definition/16376/development-environment
IDE (Integrated Development Environtment) adalah program komputer yang memiliki beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Tujuanya untuk menyediakan semua utilitas yang diperlukan dalam membangun perangkat lunak. Dan terdapat 3 Fasilitas yaitu :
– Editor : Fasilitas untuk menuliskan kode sumber dari perangkat lunak
– Compiler : untuk mengecek sintaks dari kode sumber kemudian diubah kedalam bentuk binari
yang sesuai dengan bahasa mesin
– Linker : untuk menyatukan data binari yang dihasilkan compiler sehingga data-data binari
menjadi satu kesatuan dan menjadi suatu program komputer yang siap dieksekusi
– Debuger : untuk mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat
dalam program.
Sampai pada tahap tertentu IDE modern bisa membantu memberikan saran untuk mempercepat
penulisan. Pada saat penulisan kode, IDE juga bisa menunjukkan bagian-bagian yang jelas mengandung
kesalahan atau keraguan. (Suggest).
Macam-macam IDE yang biasa dipakai dalam industri teknologi informasi:
– BASIC : MS Visual Basic
– C: MS Visual C++
– Delphi: Borland Delphi
– Java : IntelliJ IDEA, Eclips, NetBeans
– Pascal: Turo Pascal, Lazarus.
https://id.wikipedia.org/wiki/Lingkungan_pengembangan_terpadu
- SOFTWARE DEVELOPMENT
Tools Pendukung
No | Tools | Penjelasan |
1 | .Net | untuk mengkompilasi aplikasi android yang akan kita buat menggunkan pemograman .Net |
2 | Java | untuk mengkompilasi aplikasi android yang akan kita buat menggunkan pemograman Java |
3 | Android SDK (software Development Kit) | untuk mulai mengembangkan aplikasi pada platform Android menggunakan bahasa pemrograman java. |
4 | ADT (Android Developer Tools) | plugin yang didesain untuk IDE Eclipse yang
memberikan kita kemudahan dalam mengembangkan aplikasi android dengan menggunakan IDE Eclipse. |
Software Yang Digunakan :
No | Aplikasi | Penjelasan |
1 | Android Studio | integrated development environtment (IDE) resmi untuk
Android yang diluncurkan oleh Google. Tool ini tersedia untuk digunakan di Windows, Linux dan Mac OS X. |
2 | Xamarin | integrated development environtment (IDE) resmi untuk
Android yang diluncurkan oleh Microsoft. |
3 | Eclipse | IDE yang paling popular untuk pengembangan Android, karena memiliki android Plug-in yang tersedia untuk memfasilitasi pengembangan android. |
4 | Unity 3D | Alat ini menawarkan banyak API yang membantu membangun
antarmuka aplikasi yang menarik. Selain itu bisa juga memanfaatkan fitur high-end dari mesin untuk membangun game ponsel 3D. |
5 | Qt for Android | cocok untuk programmer dengan pengatahuan tentang C++ dan QML. |
Conduit Mobile | Alat untuk membuat aplikasi yang juga bisa diaplikasikan pada
berbagai platform mobile. Tidak perlu kemampuan koding bahasa pemrograman sama sekali untuk dapat menggunakan aplikasi ini secara lancar. |
|
Apache Cordova | platform untuk membuat aplikasi mobile menggunakan
HTML, CSS dan JavaScript. Didukung antara lain Android, iOS, Windows Phone dan Blackberry. |
|
Ionic Framework | sebuah framewok aplikasi mobile berbasis HTML5 yang digunakan untuk
mengembangkan apikasi mobile dengan teknologi web seperti HTML, CSS, dan Javascript. |
|
React Native | salah satu framework javascript yang kita gunakan untuk mengembangkan aplikasi mobile. | |
APP INVENTOR | aplikasi yang awalnya dikembangkan oleh Google, dan saat ini dikelola oleh Massachusetts Institute of Technology (MIT). |
Sumber : https://www.jurnalweb.com/tools-untuk- membuat-aplikasi- android/ dan https://www.codepolitan.com/tools-untuk-membuat-aplikasi-android-selain-android-studio-59b76a6f7521e
- ARSITEKTUR SISTEM OPERASI MOBILE (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 4. 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.
- 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]:
1.Activity Manager, berfungsi untuk mengontrol siklus hidup aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi penggunaan.
2.Content Providers, berfungsi untuk merangkum data yang memungkinkan digunakan oleh aplikasi lainnya, seperti daftar nama.
3.Resuource Manager, untuk mengatur sumber daya yang ada dalam program. Serta menyediakan akses sumber daya diluar kode program, seperti karakter, grafik, dan file layout.
4.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.
- VERSI SISTEM OPERASI ANDROID
No
|
Versi OS | Rilis |
1 | versi 1.0 Android | Dirilis pertama pada tanggal 30 bulan April tahun 2009 |
2 | Versi 1.5 Cupcake | Dirilis pada tanggal 15 bulan September tahun 2009 |
3 | versi 2.0 Eclair | Dirilis pada tanggal 26 bulan Oktober tahun 2009 |
4 | versi 2.2 Froyo | Dirilis pada tanggal 10 bulan mei tahun 2010 |
5 | versi 2.3 Gingerbread | Dirilis pertama pada tanggal 6 bulan Desember tahun 2010 |
6 | versi v3.0 Honeycomb | Dirilis pertama pada tanggal 22 bulan Februari tahun 2011 |
7 | versi 4.0 Ice Cream Sandwich | Dirilis pertama pada tanggal 19 bulan Oktober tahun 2011 |
8 | versi 4.1 Jelly Bean | Dirilis pertama pada tanggal 9 bulan juli tahun 2012 |
9 | versi 4.4 kitkat | Dirilis pertama pada tanggal 31 bulan Oktober tahun 2013 |
10 | versi 5.0 Lollipop | Dirilis pertama pada tahun 2014 |
11 | versi 6.0 Marshmallow | Dirilis pada 28 Mei tahun 2015 |
12 | Versi 7.0 Nougat | Diperkenalkan pada tahun 2016 |
Sumber : https://www.riaume.com/daftar-nama-os-android-menurut-versi.html dan http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/teknologi-informasi/825-arsitektur-sistem-operasi-android
- PERBANDINGAN SISITEM OPERASI MOBILE
Feature | Android | IOS | Windows mobile | Blackberry 10 | Tizen | Sailfish OS |
Perusahaan | Google
, Open Handset Alliance |
Apple Inc. | Microsoft | Blacberry Ltd. | Linux Foundation, Tizen Association, Samsung,Intel | Sailfish Alliance, Mer,Jolla,dan Sailfish Comunnity constributor |
Penjualan | 86.1% | 13.7% | 0.3% | N/A | N/A | N/A |
Versi Sekarang | 8.0 | 11.0.2 | 10.0.1 | 10.3.3.2 | 3.0 | 2.1.1.2 |
Tanggal Rilis | 21 Agustus 2017 | 3 oktober 2017 | 8 agustus 2017 | 12 desember 2016 | 20 mei 2017 | 29 agustus 2017 |
Lisensi | Free and open-source, but usually bundled with proprietary apps and drivers | Proprietary except for open source components | Proprietary, Commercial software | Proprietary | Free and open-source, but the SDK is proprietary and closed source | Free and open-source, but the UI is proprietary and closed source |
OS turunan | Linux | Darwin | Microsoft windows | QNX | Linux | Linux |
Arsitektur CPU | ARM, x86 | ARM64 | ARM | ARM | ARM, x86 | ARM, x86 |
Bahasa Pemograman | C,C++,java, kotlin, .net, c# | C,C++, Objective-C, swift, .net, c# | 7+: XNA (.NET C#), Silverlight, native C/C++ (only for vendors and partners[9])
8+: .NET C#, VB.NET, Silverlight, native C/C++, WinRTP (XMLA), DirectX |
C/ C++: Native SDK, C++/Qt: Cascades SDK, HTML5/Javascript/CSS: Webworks SDK, ActionScript: Adobe AIR, Java: Android runtime | C++ | C++, QML, Phyton |
Multi user | yes | Edukasi pemakaian hanya di ipad | tidak | tidak | tidak | Tidak |
App Store | GoooglePlay | App Store | Windows Store | Blackberry World, Amazon Appstore | Tizen Store | Jolla Store |
SDK Platform | Linux, Mac Os X, dan Windows | Mac OS X (IOS SDK) | Windows | Windows, Mac OS X, dan Linux | GNU/LINUX, windows, dan OS X | Linux, Mac Os X, dan Windows |
Web Browser | Chrome | Safari | Internet Explore | BlackBerry 10 Browser | Tizen Browser | Sailfish Browser |
Feature | Android | IOS | Windows mobile | Blackberry 10 | Tizen | Sailfish OS |
Sumber : https://en.wikipedia.org/wiki/Comparison_of_mobile_operating_systems
- KELEBIHAN DAN KEKURANGAN SISITEM OPERASI MOBILE
Kelebihan | Kekurangan |
a) perangkat mobile memiliki proses booting yang lebih cepat di bandingkan dengan perangkat dekstop , proses booting pada dekstop biasa nya memakan waktu antara 1-3 menit , namun unutk perangkat mobile biasa nya paling lama hanya satu menit.
b) Konsumsi power atau bateri pada os mobile lebih kecil di bandingkan pada perangkat desktop. c) Untuk aplikasi mobile biasa nya , standar hardware yang dibutuhkan lebih ringan dari pada os untuk browser ,seperti standar grapic , kecepatan processor , input output device dan lain lain. Sehingga system operasi pada mobile lebih ringan dari pada system operasi untuk desktop. |
a) Dukungan hardware lebih sedikit dari desktop.
b) Khusus sistem operasi iOS hanya terdapat pada device milik Apple c) Sistem operasi yang bersifat open source hanya android d) Pada umumnya sistem operasi mobile telah disesuaikan bagi setiap device dalam bentuk firmware sehingga firmware dari device tertentu tidak akan bias digunakan di device lainnya.
|
Source : http://fardianbandicoot.blogspot.co.id/2013/06/perbedaan-os-untuk-desktop-dengan-os.html
- PENGEMBANGAN APLIKASI MOBILE
Pengembangan aplikasi mobile adalah proses dimana aplikasi perangkat lunak yang dikembangkan untuk daya rendah perangkat genggam , seperti asisten pribadi digital , perusahaan asisten digital atau ponsel .
Source : http://newbie-21.blogspot.co.id/2014/08/apa-itu-pemrograman-mobile.html
Secara garis besar ada 3 pendekatan untuk mengembangkan aplikasi mobile yaitu:
- Aplikasi Native
Adalah aplikasi yang secara khusus ditujukan untuk platform mobile tertentu dan menggunakan bahasa pemrograman serta perangkat lunak pengembangan sesuai platform tersebut. Sebagai contoh aplikasi native android ditulis menggunakan bahasa pemrograman java dan tool eclipse sementara IOS ditulis dengan menggunakan bahasa objective-c dan tool Xcode.
- Kelebihan :
- Performa yang sangat baik karena ditulis secara native untuk platform spesifik.
- Mampu mengakses semua fitur perangkat keras smartphone seperti info device, accelerometer, kamera, compass, file dan lain sebagainya.
- Menghasilkan antarmuka look and feel yang alami dengan sangat baik.
- Kekurangan :
- Pengembangan yang tidak mudah karena menggunakan lingkungan, bahasa dan API(Aplication Programming Interface) spesifik.
- Aplikasi hanya berjalan pada platform yang sudah dispesifikasikan diawal pengembangan. Apabila ingin tersedia platform lain maka harus ditulis dari awal dengan menggunakan tool pengembangan yang sesuai.
- Aplikasi Web
Merupakan aplikasi website yang secara spesifik dioptimalkan untuk penggunaan di lingkungan smartphone. Aplikasi ini dibangun menggunakan standar teknologi web seperti HTML5, CSS3 dan JavaScript. Pendekatan write-once-run-anywhere pada aplikasi web menghasilkan aplikasi mobile cross-platform yang mampu bekerja pada platform yang berbeda.
- Kelebihan
- Dapat berjalan baik disemua browser modern platform mobile.
- Tahap pengembangan yang mudah karena menggunakan teknologi web yang sudah ada.
- Tidak perlu mempelajari bahasa baru karena menggunakan bahasa yang sudah familiar yaitu HTML5, CSS3 dan JavaScript.
- Kekurangan
- Kemampuan aplikasi sangat terbatas yakni tidak dapat mengakses fitur-fitur perangkat keras smartphone.
- Sesuai karakteristiknya aplikasi web mobile hanya tersedia secara online.
- Performa kurang stabil dan bergantung pada konektivitas yang ada.
- Aplikasi Hybrid
Adalah menanamkan aplikasi mobile HTML5 kedalam container native. Aplikasi berupaya mengombinasikan kelebihan-kelebihan pendekatan aplikasi web mobile HTML5 dan aplikasi native. Sederhananya, pendekatan ini akan mengonversi aplikasi web mobile HTML5 ke aplikasi native smartphone target. Dan untuk mengimplementasikan hal tersebut diperlukan dukungan perangkat lunak spesifik yaitu sebuah framework pengembangan aplikasi mobile seperti phonegap.
- Kelebihan
- Tahapa pengembangan yang relatif mudah karena memanfaatkan standar teknologi web.
- Hasil pembuatan aplikasi dapat berjalan pada hamper semua platform mobile (bergantung framework yang digunakan) menariknya didistribusikan secara native.
- Penggunaan framework aplikasi mobile memungkinkan akses ke fitur-fitur perangkat keras seperti accelerometer, kamera, kalender dan lainnya.
- Memungkinkan pembuatan aplikasi online ataupun offline.
- Kekurangan
- Memerlukan perangkat lunak bantu framework pengembang aplikasi mobile berbasis web yang stabil dan mendukung lintas platform.
- Bagaimanapun aplikasi hybrid masih belum mampu menyamai aplikasi native.
Source : http://www.danang-ekal.com/2013/10/jenis-pengembangan-aplikasi-mobile.html#.WdzmjGiCzIU
PowerPoint(PPT): PEMOGRAMAN MOBILE 2 – Pertemuan 1