PMO Pertemuan 1 Pengenalan Pemrograman Mobile

  1. 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.

  1. B. SISTEM OPERASI PERANGKAT MOBILE

Sistem operasi Perangkat yang bergerak (OS mobile), Meliputi Symbian, Java, Windows Mobile, Android, IOS, dan lain-lain

  1. 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

  1. 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

 

  1. 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

 

  1. 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.

 

 

  1. . 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.

 

  1. 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.

 

 

  1. 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.

  1. Notification Manager, mencakup berbagai macam peringatan seperti, pesan masuk, janji, dan lain sebagainya yang akan ditampilkan pada status bar.

 

  1. 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.

  1. 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

  1. 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

 

  1. 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

 

  1. 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:

  1. 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.

 

  1. 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.
  1. 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.

 

  1. 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.

  1. 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.
  1. 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.

 

  1. 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.

  1. 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.
  1. 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