PMO Pertemuan 2 Pengenalan Pemrograman Mobile

Pengertian Pemrograman Mobile 

Pemrograman mobile bukan hanya tentang membangun aplikasi telepon. Tetapi pemrograman  mobile adalah semua pengembangan untuk segala jenis perangkat mobile. Pemrograman  mobile mencakup pengembangan ataupun pembuatan aplikasi untuk ponsel, tablet, jam tangan pintar, dan semua jenis perangkat lain yang dapat dipakai dan dijalankan pada beberapa jenis sistem operasi mobile.

Hal tersebut tidak berarti mengembangkan aplikasi mobile saja, karena juga harus memikirkan bagaimana aplikasi yang dibuat akan digunakan dan diakses ataupun dapat dioperasikan  pada perangkat mobile yang ada.

Sumber : https://simpleprogrammer.com/2016/12/05/what-is-mobile-development/

 

 

Sistem Operasi Perangkat Bergerak

Perangkat komputasi bergerak seperti pada smartphone dan tablet, tidak bisa dilepaskan dari adanya sistem operasi (operating system). Sebagaimana sistem operasi pada komputer, sistem operasi pada perangkat mobile berfungsi untuk mengelola sumber daya perangkat bergerak dan menyediakan layanan (servis) yang bersifat umum agar bisa diakses oleh aplikasi yang berjalan di atasnya. Sistem operasi pada perangkat mobile memadukan kemampuan sistem operasi pada komputer dengan kemampuan untuk mengelola komponen yang biasa ada dalam perangkat mobile seperti layar sentuh, jaringan seluler, bluetooth, WiFi, navigasi GPS, NFC, dan fitur standar lainnya. Jadi sistem operasi perangkat bergerak memiliki kelebihan dalam mengelola secara langsung hardware yang disertakan.

Dengan adanya sistem operasi pada perangkat mobile ini, memungkinkan perangkat mobile untuk dipasang berbagai jenis aplikasi yang berjalan di atas sistem operasi yang bersangkutan. Sepanjang aplikasinya sesuai (kompatibel) dengan sistem operasinya, aplikasi tersebut bisa ditambahkan. Sehingga pengguna perangkat bisa dengan bebas menambahkan aplikasinya sendiri.

Sumber : https://simpay.wordpress.com/2013/07/06/sistem-operasi-perangkat-komputasi-bergerak/

 

 

Lingkungan pengembangan

Lingkungan pengembangan atau sering disebut juga dengan Integrated Development Environment (IDE) adalah 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.

IDE secara garis besar  memiliki beberapa fasilitas diantaranya sebagai berikut ini :

  • Editor, yaitu fasilitas untuk menuliskan kode sumber dari perangkat lunak.
  • Compiler, yaitu fasilitas untuk mengecek sintaks dari kode sumber kemudian mengubah dalam bentuk binari yang sesuai dengan bahasa mesin.
  • Linker, yaitu fasilitas untuk menyatukan data binari yang beberapa kode sumber yang dihasilkan compiler sehingga data-data binari tersebut menjadi satu kesatuan dan menjadi suatu program komputer yang siap dieksekusi.
  • Debuger, yaitu fasilitas untuk mengetes jalannya program, untuk mencari bug/kesalahan yang terdapat dalam program.

Sampai tahap tertentu IDE modern dapat membantu memberikan saran yang mempercepat penulisan.Pada saat penulisan kode, IDE juga dapat menunjukan bagian-bagian yang jelas mengandung kesalahan atau keraguan.

Sumber : http://blogs.unpas.ac.id/kisworo/2014/03/20/pengertian-ide-dan-sata/

 

 

Software Development

Software Development adalah salah satu tipe proyek IT yang berfokus pada penciptaan atau pengembangan perangkat lunak. Software Development dapat didetailkan lagi menjadi  penciptaan software untuk memenuhi kebutuhan manusia, desain software, dan  pengembangan software aplikasi perusahaan, atau pengembangan platform (Wales, 2012).

  1. Android Studio

Android Studio adalah IDE resmi untuk pengembangan aplikasi Android yang dikeluarkan oleh Google, berdasarkan IntelliJ IDEA. Di atas kemampuan yang Anda harapkan dari IntelliJ, Android Studio menawarkan :

  • Sistem build berbasis Grade yang fleksibel
  • Bangun varian dan beberapa file apk terbaru
  • Template kode untuk membantu Anda dalam membuat fitur aplikasi

Editor tata letak kaya dengan dukungan untuk pengeditan tema drag and drop

alat serat untuk menangkap kinerja, kegunaan, kompatibilitas versi, dan masalah lainnya. Kemampuan ProGuard dan app-signing serta dukungan terintegrasi untuk Google Cloud Platform, sehingga mudah mengintegrasikan Google Cloud Messaging dan App Engine dan banyak lagi.

Sumber : https://developer.android.com/studio/intro/index.html

 

  1. Eclips

Bagi programmer Software ini sudah tidak asing lagi bagi kehidupannya , karna setiap saat sering berinteraksi dengan software ini , tetapi sangat jauh berbeda bagi kalanngan orang yang baru mengenal komputer dan baru masuk ke dalam dunia programmers. Eclipse adalah sebuah IDE (Integrated Development Environment) untuk  yang di gunakan untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform/OS oleh karena itu dinamakan dengan  (platform-independent).

Berikut ini adalah sifat dari Eclipse dan kelebihan Eclipse daripada Software yang lain:

  • Multi-platform: Bisa dijalankan di  Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X.
  • Mulit-language: pada dasarnya Eclipse dikembangkan dengan bahasa pemrograman Java, selain itu Eclipse juga  mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya
  • Multi-role: Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web, dan lain sebagainya.

Sumber : http://www.sampahblogger.com/2014/07/eclipse-dan-kegunaannya.html

 

 

Arsitektur Sistem Operasi Mobile

Pembeda antara seorang pengguna Android dan seorang developer Android adalah kemampuan seorang developer untuk memahami seluk beluk aplikasi Android. Jadi, sebelum  mulai mengembangkan aplikasi Android ada baiknya  memahami hal-hal yang dasar terlebih dahulu, yaitu Arsitektur dari Android.

Beberapa orang dari Google juga menyebut arsitektur Android sebagai Android Stack (Tumpukan Android). Arsitektur Android terdiri dari berbagai lapisan dan setiap lapisan terdiri dari beberapa program yang memiliki fungsi berbeda. Berikut ini adalah  lapisan-lapisan Android dari yang paling dalam hingga paling luar, Android stack tersebut diantaranya :

  • Linux Kernel

Di lapisan terbawah Arsitektur Android terdapat Linux Kernel. Lapisan ini tidak benar benar berinteraksi dengan pengguna maupun developer, tapi lapisan ini merupakan jantung dari seluruh sistem di Android karena lapisan inilah yang memberikan fungsi-fungsi berikut pada sistem Android :

  • Abstraksi Hardware
  • Program Manajemen Memory
  • Pengaturan Sekuritas
  • Manajemen Energi Software ( Baterai )
  • Driver (Driver adalah program yang mengontrol hardware)
  • Network Stack

 

  • Library

Library membawa sekumpulan instruksi untuk mengarahkan perangkat Android kita dalam menangani berbagai tipe data. Contohnya,perekam dari berbagai macam format Video dan Audio ditangani oleh Media Framework Library.

Berikut adalah beberapa kegunaan Library :

  1. Surface Manager : Mengolah tampilan Windows Pada Layar
  2. SGL : Grafik 2 Dimensi
  3. Open GL|ES : Grafik 3 Dimensi maupun 2 Dimensi
  4. Media Framework : Menunjang perekaman dari berbagai macam format audio, video, dan gambar
  5. Free Type : Penerjemah Font
  6. WebKit : Mesin Browser
  7. libc (System C libraries)
  8. SQLite : Database
  9. Open SSL : Sekuritas Jaringan

Android Libraries Kategori ini menyangkut Library berbasis Java yang berfungsi khusus untuk pengembangan Android. Contoh dari Library yang termasuk dalam kategori ini adalah Library yang memfasilitasi pembangunan User Interface, Penggambaran Grafik dan akses Database, juga library yang terdapat pada Application Framework. Rangkuman dari beberapa Library Android yang tersedia untuk Android Developer adalah sebagai berikut :

  • app: Memberikan akses ke model aplikasi dan fondasi dari semua aplikasi Android.
  • content: Memfasilitasi akses konten, mempublikasikan dan mengirim pesan antar aplikasi dan komponen aplikasi.
  • database: Digunakan untuk mengakses data yang dipublikasikan oleh content providers, juga termasuk kelas manajemen basis data SQLite.
  • opengl: antarmuka Java ke Api penerjemah OpenGL ES 3D Graphic
  • os: Menyediakan akses aplikasi ke OS system service stAndar seperti perpesanan, system service, dan IPC ( Inter Process Communication ).
  • text: Digunakan untuk menyajikan dan memanipulasi teks yang ditampilkan pada perangkat.
  • view: Dasar dari pembangunan user interface aplikasi.
  • widget: Koleksi dari beberapa user interface yang telah dibuat dan dapat langsung digunakan seperti tombol, label, tabel, view, layout manager, tombol pilihan, dll.
  • webkit: Sekumpulan kelas untuk memungkinkan kemampuan web browsing yang akan dibangun ke dalam aplikasi.

 

  • Android Runtime

Terletak pada level yang sama dengan lapisan Library juga terdapat Lapisan Android Runtime dan juga sekumpulan Library Java yang dikhususkan untuk Android. Programmer Aplikasi Android membuat aplikasinya menggunakan bahasa pemrograman Java. Dalam lapisan Android Runtime juga terdapat Dalvik VM (Virtual Machine).

Dalvik Virtual Machine adalah sejenis Java Virtual Machine yang didesain khusus dan dioptimasikan untuk Android. Dalvik VM menggunakan fitur inti Linux seperti manajemen memory dan multi-threading. Dalvik VM membuat setiap Aplikasi Android dapat berjalan dengan prosesnya sendiri. Berikut beberapa rangkuman mengenai Dalvik VM.

  • Dalvik VM adalah sebuah VM berbasis Register.
  • Optimal karena kebutuhan memory yang sedikit.
  • Didesain agar banyak VM dapat dijalankan pada saat yang sama.
  • Bergantung pada OS yang mendasari suatu proses isolasi, manajemen memori dan dukungan threading.
  • Beroperasi pada ekstensi DEX.

 

  • Application Framework

Lapisan ini berinteraksi langsung dengan aplikasi kita. Program-program di atas memanajemen fungsi dasar dari perangkat seperti manajemen Resource, Manajemen Panggilan, Manajemen Window dll. Sebagai seorang developer, kita dapat melihat lapisan ini sebagai alat dasar yang dapat digunakan untuk mengembangkan aplikasi.

Beberapa program penting pada Application Framework antara lain:

  1. Activity Manager− Mengontrol semua aspek dari siklus hidup aplikasi dan Activity Stack.
  2. Content Providers− Mengizinkan aplikasi untuk mempublikasikan dan berbagi data dengan aplikasi lainnya.
  3. Resource Manager− Memberikan akses kepada resources yang bukan kode seperti strings, setting warna, dan layout User Interface.
  4. Notifications Manager− Membuat aplikasi dapat menampilkan pengingat dan notifikasi kepada pengguna.
  5. View System− Digunakan untuk membuat User Interface aplikasi. 

 

  • Application

Aplikasi berada pada lapisan terluar dari Arsitektur Android. Pengguna awam Android pasti akan berinteraksi dengan lapisan ini untuk fungsi umum seperti menelepon, mengakses website, dll. Lapisan di bawah dari lapisan aplikasi ini diakses kebanyakan oleh Developer, Programmer atau sejenisnya.

Beberapa aplikasi stAndar yang pasti ada pada setiap perangkat, seperti:

  • Aplikasi SMS
  • Kalender
  • Web Browser
  • Contact Manager

 Sumber : http://www.insinyoer.com/komponen-arsitektur-android/

 

 

Versi-versi Sistem Operasi Android

Pesatnya perkembangan industri dan kebutuhan konsumen akan samartphone membuat para software development membuat dan saling bersaing untuk menciptakan sebuah sistem operasi bagi perangkat bergerak / smartphone, tablet, dst.

Adapun beberapa sistem operasi yang ada  saat ini diantaranya :

  1. Apple (iOS)

iOS adalah sistem operasi mobile yang dikembangkan oleh Apple. Ini awalnya bernama OS iPhone, namun diganti namanya menjadi iOS pada bulan Juni 2009. iOS saat ini berjalan di iPhone, iPod touch, dan iPad.

iOS terkenal karena berfungsi sebagai perangkat lunak mendasar yang memungkinkan pengguna iPhone berinteraksi dengan ponsel mereka menggunakan isyarat seperti menggesek, mengetuk dan mencubit. Tindakan jari ini biasanya dilakukan pada layar sentuh kapasitif multitouch, yang memberikan respon cepat dan menerima masukan dari banyak jari. Meski bukan OS mobile nomor 1 di seluruh dunia, iOS mendominasi pasar Amerika Utara dengan margin yang besar, dengan pangsa pasar 60 persen per Mei 2010.

Sumber :  https://www.techopedia.com/definition/25206/ios

 

  1. Android

Android adalah sistem operasi mobile yang dikembangkan oleh Google. Ini digunakan oleh beberapa smartphone dan tablet. Contohnya termasuk Sony Xperia, Samsung Galaxy, dan Google Nexus One.

Sistem operasi Android (OS) berbasiskan pada kernel Linux. Tidak seperti iOS Apple, Android adalah open source, yang berarti pengembang dapat memodifikasi dan menyesuaikan OS untuk setiap telepon. Karena itu, ponsel berbasis Android yang berbeda seringkali memiliki antarmuka pengguna grafis yang berbeda GUI meski mereka menggunakan OS yang sama.

Sumber : https://techterms.com/definition/android

 

  1. Windows Phone

Windows Mobile adalah salah satu sistem operasi (OS) mobile yang dikembangkan oleh Microsoft dan di desain untuk digunakan pada smartphone dan perangkat nirkabel lainya. Versi terbaru saat ini  ‘Windows 10 Mobile’ dan fitur-fiturnya dikembangkan menggunakan Microsoft Windows API.

Windows Phone didesain sedemikian rupa agar mirip dengan versi Windows Desktop. Sebagai tambahan, third party software development tersedia untuk Windows Mobile.

Pertama kali dirilis sebagai sistem operasi Pocket PC 2000, kebanyakan perangkat Windows Mobile dilengkapi dengan Stylus Pen, yang mana di gunakan untuk memasukan perintah-perintah dengan cara men-tap-nya di layar.

Sumber : https://iyozdamnation.wordpress.com/2010/11/14/sistem-operasi-mobile/

 

  1. RIM (Blackberry)

BlackBerry OS adalah sistem operasi mobile yang dikembangkan RIM yang mendukung layanan multitasking untuk produk BlackBerry. BlackBerry diperkenalkan tahun 1997 oleh Perusahaan Kanada, Research in Motion(RIM) yang mampu menyampaikan informasi jaringan data nirkabel. BlackBerry mulai dikenalkan di Indonesia pada Desember 2004 oleh operator di Indonesia. Pasar BlackBerry mulai diramaikan oleh berbagai operator dengan menyediakan berbagai pilihan layanan seperti BlackBerry Internet Service dan BlackBerry Enterprise Server. Fasilitas BlackBerry memang baru dimanfaatkan oleh para pengguna pribadi, belum merambah hingga bidang pemerintahan dan intelijen seperti di negara-negara lain.

Sumber : https://iyozdamnation.wordpress.com/2010/11/14/sistem-operasi-mobile/

 

  1. Symbian OS

Symbian OS adalah sistem operasi yang dikembangkan oleh Symbian Ltd. 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). 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.

Sumber : https://iyozdamnation.wordpress.com/2010/11/14/sistem-operasi-mobile/

 

 

Perbandingan Sistem Operasi Mobile 

Google Android dan Apple IOS adalah sistem operasi yang digunakan terutama di teknologi seluler, seperti smart phone dan tablet. Android, yang berbasis Linux dan sebagian open source, lebih seperti PC daripada iOS, karena antarmuka dan fitur dasarnya umumnya lebih dapat disesuaikan dari atas ke bawah. Namun, elemen desain seragam IOS terkadang terlihat lebih user-friendly.

Anda harus memilih sistem smartphone dan tablet dengan Seksama, karena beralih dari iOS ke Android atau sebaliknya. Android sekarang merupakan platform smartphone yang paling umum digunakan di dunia dan digunakan oleh banyak produsen ponsel yang ada. iOS hanya digunakan pada perangkat Apple, seperti iPhone.

Grafik perbandingan

Developer

Google

Apple Inc.
Peluncuran pertama 23, September 2008 29, Juli 2007
Source model Open source Tertutup, dengan komponen open source.
Keluarga OS Linux OS X, UNIX
File transfer Lebih mudah dari iOS. Menggunakan port USB dan aplikasi desktop Transfer File Android. Foto dapat ditransfer melalui USB tanpa aplikasi. Lebih sulit. File media dapat ditransfer menggunakan aplikasi desktop iTunes. Foto dapat ditransfer keluar melalui USB tanpa aplikasi.
Tersedia di Banyak ponsel dan tablet. Produsen utama adalah Samsung, Motorola, LG, HTC dan Sony. Nexus dan Pixel adalah perangkat Android murni, perangkat lunak bundel produsen lainnya. iPod Touch, iPhone, iPad, Apple TV (generasi ke-2 dan ke-3)
Internet browsing Google Chrome (atau Browser Android pada versi lama; Browser lain tersedia) Mobile Safari (Browser lain tersedia)
App store Google Play 1,000,000  apps. Apple app store  1,000,000  apps
Bahasa yang tersedia 100  Bahasa 34 Bahasa
Versi Terbaru Android 8.0.0, Oreo (21,  Aug 2017) 11 (19,  Sep 2017)
Toko aplikasi alternatif Beberapa toko aplikasi alternatif selain Google Play Store. (misalnya Aptoide, Galaxy Apps) Apple memblokir toko aplikasi pihak ke-3. Ponsel akan terkunci jika Anda mendownload aplikasi dari toko lain.
Masa pakai baterai dan manajemen Banyak produsen ponsel Android melengkapi perangkat mereka dengan penghemat baterai dengan umur lebih panjang. Perangkat  Apple umumnya memiliki kapasitas baterai yang  tidak sebesar baterai smartphone lain. Namun, Apple mampu meminimalkan kosumsi baterai sebagai pengoptimalan perangkat keras / perangkat lunak.
Open source Kernel, UI, dan beberapa aplikasi standar

Kernel iOS bukan open source namun berbasis open source Darwin OS.

Sumber : http://www.diffen.com/difference/Android_vs_iOS  dan http://bgr.com/2016/02/23/iphone-vs-android-reliability-failure-rates/

 

 

 Kelebihan dan Kekurangan Sistem Operasi Mobile 

Kelebihan, bisa melakukan lebih dari sekadar fitur telepon dan bisa memiliki perangkat keras yang lebih tinggi yang tidak dimiliki fitur telepon seperti RAM, Prosesor dan sebagainya. Sistem oprasi mobile menyediakan fungsi yang lebih banyak dan lebih maju dan internet bekerja lebih baik pada sistem operasi mobile. Cukup, smartphone seperti komputer di saku Anda. Android, iOS, Symbian dan Windows Phone adalah semua OS smartphone sehingga bisa mereka lakukan lebih dari sekedar fitur khas ponsel biasa.

Kelemahan utama dari sistem operasi mobile adalah smartphone (yang merupakan ponsel yang berjalan di OS dan bisa melakukan lebih dari sekadar fitur telepon) lebih banyak  memerlukan daya batrai yang membuat masa pakai baterai lebih pendek (tapi ini tidak selalu benar).

Sumber : http://www.itrelease.com/2016/12/advantages-disadvantages-embedded-operating-system/

 

 

 Pengembangan Operasi Mobile

Dalam mengembangkan aplikasi mobile memiliki keunikan, karena setiap platform memiliki bahasa pemrograman dan perangkat pengembangan yang berbeda. Ditambah lagi setiap platform memiliki keunikan API (Application Programming Interface) sendiri-sendiri berbeda antara satu dengan yang lain.

Mengembangkan aplikasi untuk platform Android, maka menggunakan Android Studio dan memahami bahasa pemrograman Java. Sedangkan jika mengembangkan aplikasi untuk platform iOS, maka perangkat lunak yang digunakan adalah Apple XCode dan memahami bahasa pemrograman Swift atau Objective-C.

Lalu bagaimana jika ingin mengembangkan aplikasi untuk Android dan iOS sekaligus? Hal tersebut dapat diterapkan dan dapat menggunakan perangkat pengembangan multi-platform, diantaranya :

  1. Xamirin

Xamarin merupakan perusahaan tersendiri dan memiliki tools sendiri. Setelah dibeli oleh Microsoft, kini perangkat pengembangan Xamarin sudah terintegrasi menjadi satu dengan Visual Studio. Sebuah IDE (Integrated Development Environment) dari Microsoft. Dengan menggunakan Xamarin kamu dapat mengembangkan aplikasi mobile dengan menggunakan bahasa pemrograman C# atau F#dan bisa berjalan di Android, iOS, dan Windows Phone sekaligus.

  1. React Native

Dikembangkan oleh Facebook dan menggunakan bahasa pemrograman JavaScript. Dengan menggunakan React Native kamu dapat mengembangkan aplikasi untuk sistem operasi Android dan iOS. Jika sudah terbiasa menggunakan JavaScript untuk mengembangkan Web, maka React Native sangat cocok untuk kamu.

Sama seperti Xamarin, kamu juga bisa mengembangkan komponen-komponen dan fungsi-fungsi pada React Native jika kamu paham Java untuk Android dan Swift/ObjectiveC untuk di iOS.

  1. Phonegap

Salah satu pemain lama di dunia pengembangan aplikasi mobile lintas platform. Phonegap paling mudah digunakan, tapi termasuk cukup lambat dari sisi performa aplikasi yang dihasilkan. Dengan Phonegap kamu dapat membungkus aplikasi web yang ditulis dengan HTML, CSS, dan JavaScript menjadi sebuah aplikasi mobile.

 

  1. Ionic Framework

Salah satu framework untuk mengembangkan aplikasi lintas platform yang sedang naik daun dan berbasis Phonegap. Menggunakan AngularJS sebagai kerangka pengembangannya. Ionic cocok digunakan jika latar belakangmu adalah pengembang aplikasi Web yang sudah terbiasa menggunakan AngularJS. Walaupun berbasis Phonegap, dari sisi performa aplikasi yang dihasilkan jauh lebih baik dibanding menggunakan Phonegap itu sendiri.

Pengembangan aplikasi lintas platform cocok digunakan pada perusahaan yang ingin memiliki aplikasi mobile  yang berjalan di banyak sistem operasi  terutama Android dan iOS, tetapi belum mampu atau merasa tidak perlu membangun tim yang terdiri dari banyak bahasa pemrograman sekaligus.

Sumber : https://blog.framework.id/4-tools-alternatif-pengembangan-aplikasi-mobile-lintas-platform-c94fdb621fdf

File presentasi dapat didownload dengan klik link disamping PMO Pertemuan 2 Pengenalan Pemograman Mobile