PMO Pertemuan 1 Pengenalan Pemrograman Mobile

1.pengertian pemrograman mobile

Pemrograman Mobile adalah pemrograman yang ditujukan untuk pembuatan aplikasi diperangkat mobile yang dapat kita buat dengan menggunakan Java. Keterbatasan yang sangat umum dalam bahasa pemrograman untuk peralatan mobile adalah kendala dalan segala dalam hal sumber daya, seperti ukuran layar, memori, CPU, penyimpanan dan cara menginput data. Perbedaan tampilan juga disebabkan adanya
perbedaan hardware dan API yang di gunakan. Berikut macam-macam Mobile Programming untuk ponsel :

–          J2ME

–          C++

–          Objective C

–          C#.

–          Javafx

–          PHP

 

  1. Sistem operasi perangkat bergerak

Sebagaimana sistem operasi pada komputer, sistem operasi pada perangkat komputasi bergerak 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 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. Jadi sistem operasi perangkat bergerak memiliki kelebihan dalam mengelola secara langsung hardware yang disertakan.

Dengan adanya sistem operasi pada perangkat bergerak ini, memungkinkan perangkat bergerak 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.

Sistem operasi perangkat bergerak yang menguasai pasaran perangkat komputasi bergerak saat ini tidak lepas dari empat sistem operasi yang tadi: Android, iOS, Blackberry dan Windows Phone.

 

  1. Lingkungan Pengembangan

aplikasi mobile sebenarnya tidak berkisar pada satu platform saja, jadi sebuah aplikasi setidaknya harus memiliki beberapa developer untuk mengembangkan ke platform lain. Misalnya aplikasi A dibuat untuk Android, maka jika ingin agar aplikasi A support platform iOS, pengembang harus melakukan koding untuk platform iOS. Dan ketika ingin support ke Windows Phone pun juga demikian

saat ini sudah muncul beberapa framework HTML5 untuk membuat aplikasi secara cross platform dalam satu waktuPhonegap, Sencha Touch dan Kendo UI adalah contohnya. pembuatan aplikasi secara native atau dengan bahasa pemrograman asal platform untuk pengembangan yang maksimal dan lebih baik.

  1. Google (Android). Platform paling populer dan paling laris dipasaran saat ini. Pembuatan aplikasi Android secara native (alami) membutuhkan pengetahuan pemrograman Java. Salah satu tools yang paling populer dan powerfull dalam pembuatan aplikasi Android adalah Eclipse IDE yang dihubungkan dengan Compilerdan Emulator Android SDK. kunci dari pembuatan aplikasi Android secara native adalah pengetahuan dasar Java Programming Language.

 

  1. iOs (iPhone Apps). Ketika beranjak ke platform buatan Apple. Awal mula kita harus mengetahui secara dasar mengenai XCode IDE untuk lingkungan pengembangan aplikasi, Objective-C  atau Cocoa untuk bahasa pemrograman native iOS,  dan UIToolkit untuk pembangunan desain awal aplikasi.

Hal wajib lainnya adalah, pengembangan aplikasi iOS atau iPhone sangat disarankan memakai sistem operasi MacOS. Karena XCode hanya support untuk OS Macintosh.

 

  1. Windows Phone. Peralatan dasar pembuatan aplikasi berbasis Windows Phone baik versi 7 atau 8 adalah Visual Basic 2010 dan Windows Phone Developer Tools. Tentunya dengan dasar pengetahuan bahasa pemrograman C# (C Hash) sebagai native language. Untuk melakukan desain, developer dan desainer aplikasi bisa menggunakan Windows Presentation Foundation (WPF) atau Microsoft Silverlight. Bagi pengembang game, desainer dapat memanfaatkan XNA Game Studio.

 

  1. Untuk pengembangan aplikasi berbasis Blackberry. Kita bisa memasang Blackberry Java Plug-in For Eclipse, sehingga memungkinkan Eclipse sebagai lingkungan pemrograman Blackberry. Bahasa pemrograman utama adalah Java Programming. Tools untuk melakukan desain dapat menggunakan mockupstogo.com.

 

  1. Software Development

Software Development adalah salah satu tipe proyek IT yang berfokus pada penciptaan atau pengembangan perangkat lunak.

Software Development dapat didetailkan lagi menjadi proses:

1) penciptaan software untuk memenuhi kebutuhan manusia

2) desain software

3) pengembangan software aplikasi perusahaan

4) pengembangan platform (Wales, 2012).

Secara garis besar Software Development terbagi menjadi beberapa tahapan, yaitu:

  1. Planning

Merupakan tahap awal untuk memulai Software Development.

  1. Requirement and Specification

Tahap ini dilakukan untuk menentukan fitur-fitur yang tepat serta kebutuhan sistem untuk software yang akan dibuat.

  1. Architecture and Design

Merupakan tahap untuk menentukan detail sistem yang akan dipakai.

  1. Implementation and TestingTahap 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.
  2. Deployment and Maintenance

Kedua tahap terakhir ini adalah tahap dimana software telah mulai digunakan oleh user.

 

 

 

 

  1. Arsitektur sistem operasi mobile

       1. Linux Kernel

  1. 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.
  2. 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. Dalam Android Runtime terdapat 2 bagian utama, diantaranya:

 

  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 versi sistem operasi

Android

Android merupakan OS yang dibuat oleh Andy Rubin pada tahun 2005 sebelum diakuisisi oleh Google, dirilis tahun 2007 bersamaan dibentuk Open Handset Alliance. Pada saat perilisan Android bersama Open Handset Alliance mendukung penuh pengembangan terbuka pada perangkat seluler atau biasanya di sebut dengan mobile.

  • 1.0,”Alpha” dirilis 23 September 2008
  • 1.1,”Beta” dirilis 9 Februari 2009
  • 1.5 “Cupcake”, dirilis 27 April 2009
  • 1.6 “Donut”, dirilis 15 September 2009
  • 2.0-2.1 “Eclair”, dirilis 3 Desember 2009
  • 2.2-2.2.3 “Froyo”, dirilis 20 Mei 2010
  • 2.3-2.3.7 “Gingerbread”, dirilis 6 Desember 2010
  • 3.0-3.2.6 “Honeycomb”, dirilis 22 Februari 2011
  • 4.0-4.0.4 “Ice Cream Sandwich”, dirilis 18 Oktober 2011
  • 4.1-4.3.1 “Jelly Bean”, dirilis 9 Juli 2012
  • 4.4-4.4.4 “KitKat”, dirilis 31 Oktober 2013
  • 5.0-5.1.1 “Lolipop”, dirilis 12 November 2014
  • 6.0-6.x.x “Marsmallow”, September 2015

 

iOS

Sistem operasi ini pertama diluncurkan tahun 2007 untuk iPhone dan iPod Touch, dan telah dikembangkan untuk mendukung perangkat Apple lainnya seperti iPad dan Apple TV.

  • iPhone OS 1.x, dirilis 6 Maret 2008
  • iPhone Os 2.x, dirilis 11 Juli 2008
  • iPhone OS 3.x, dirilis 17 Juni 2009
  • iOS 4, dirilis 22 November 2010
  • iOS 5, dirilis 12 Oktober 2011
  • iOS 6, dirilis 19 September 2012
  • iOS 7, dirilis 18 September 2013
  • iOS 8, dirilis 17 September 2014
  • iOS 9, dirilis 16 September 2015

 

Windows Phone

Windows Phone adalah keluarga sistem operasi perangkat bergerak yang dikembangkan oleh Microsoft dan merupakan pengganti platform Windows Mobile. Tidak seperti pendahulunya, Windows Phone ditujukan pada pasar konsumen alih alih perusahaan. Sistem operasi ini pertama diluncurkan bulan Oktober 2010 dan diluncurkan di Asia pada awal 2011. Di Windows Phone, Microsoft menciptakan antarmuka pengguna baru menggunakan bahasa desainnya yang diberi nama Modern Style UI

  • Windows Phone 7, dirilis 21 Oktober 2010
  • Windows Phone 7.5, dirilis 27 September 2011
  • Windows Phone 7.8, dirilis 1-2 Februari 2012
  • Windows Phone 8, dirilis 29 Oktober 2012
  • Windows Phone 8.1, dirilis 14 April 2014
  • Windows Phone 10, dirilis akhir 2015

 

Blackberry

Blackberry adalah OS yang dikembangkan Research in Motion (RIM), perusahaan IT asal Kanada. RIM ditujukan bagi pelanggan korporasi atau bisnismen sehingga pelanggan dapat menerima dan mengirim email.

 

  1. perbandingan sistem operasi mobile

iOS

Pada konsepnya Sistem operasi ini dirancang memiliki keunggulan untuk game, koleksi game yang tersedia sangat banyak dengan kualitas hampir mendekati konsol game yang sesungguhnya serta ditunjang kualitas grafis yang diatas standar level, Sistem operasi stabil dan mudah digunakan bagi orang awam sekalipun, Browser Safari yang dimiliki sistem operasi ini juga merupakan yang terbaik sekarang. Responsif dan intuitif, Browser web terbaik saat ini, Pemutar musik sangat bagus dari segi antarmuka maupun kualitas suara, Adanya toko aplikasi online App Store yang menyediakan ribuan aplikasi dan game yang siap didownlod secara langsung.

Tidak multitasking, Sistem operasi sangat tertutup dan tidak bisa dipersonalisasi, Proses sertifikasi untuk aplikasi baru sangat ketat, Aplikasi dan game hanya bisa didownload dari App Store, Bluetooth tidak bisa untuk proses pengiriman file, dan Entry teks kurang nyaman.

 

Android

Android OS menawarkan banyak aplikasi gratis, dan aplikasi berbayar yang tidak terlampau mahal. Lihat saja bandrol BlackBerry OS yang tercatat paling tinggi di antara aplikasi lainnya. Selain itu, Android OS siap berkolaborasi pemakaian dengan 57 persen aplikasi gratis yang diperuntukkan bagi Android. Berbeda jauh dengan BlackBerry OS yang hanya menyediakan aplikasi gratis sekitar 24 persen, dan iPhone yang hanya 25% dari total aplikasi.

 

Blackberry

blackberry memiliki berbagai fungsi seperti, GPS, internet mobile, serta dapat mengakses Wi-FI. RIM sebagai developer untuk sistem operasi blackberry telah mengeluarkan sistem operasi baru dengan salah satu aplikasi yang tertanam didalamnya adalah Document to Go versi trial buatan DataViz, suatu aplikasi yang memiliki fungsi officeseperti Word to Go, Presenter to Go yang otomatis memiliki Sheet to Go sebagai aplikasi Spreadsheet.

 Sistem Operasi Blackberry Bisa digunakan sebagai GPS. Telah didukung teknologi wifi sehingga jika kita berpergian keluar negeri bisa menerima email dan mengirim email gratis melalui hot-spot.  Karena layanan BIS Blackberry menggunakan jalur khusus, koneksi jarang terganggu. Sistem Operasi Blackberry Sistem operasi sangat tertutup dan tidak bisa dipersonalisasikan.

 

Windows Phone

Windows Mobile merupakan sistem operasi mobile yang dikembangkan oleh Microsoft, produk Mobile Windows seperti Sagem myS-7, O2 Xphone dll. Sistem operasi yang berhasil dikembangkan dan diaplikasikan mulai dari Pocket PC 2000 hingga Windows Mobile versi 6.5.5. Meskipun ada beberapa kelebihan seperti fitur GPS, dapat menonton televisi, mobile blog, mobile database namun kelemahan dari Windows Mobile adalah minim developer independen.

 

 

  1. kelebihan dan kekurangan sistem operasi mobile

Android

Kelebihan
• Banyak pilihan devices mulai dari kalangan bawah sampai atas
• Aplikasi yang banyak dan sebagian besar gratis
• Open-Source , jadi kita mudah oprek-oprek kode sumber Android
• User-Friendly
• Terdapat Google Now (untuk Android Jelly Bean)
• Multitasking
Kekurangan
• Update OS system yang lama
• Android terkadang menimbulkan lag bahkan hang
• Banyak memakan resource sehingga mengurangi pemakaian baterai
• Terkadang Android rentan sekali terhadap virus

 

iOS

Kelebihan
• Touch ID, menggunakan keamanan sensor jari, walaupun sudah ada di OS lain seperti Android (Samsung Galaxy, Nexus 6)
• Aplikasi terbaik seperti CoC (Clash of Clans) dan Instagram mapipr lebih dulu di iOS
• Update OS yang cepat dibanding OS lain
• Layanan purna jual yang terbaik
• Multitasking
• Desainnya yang premium membuat pengguna OS lain klepek-klepek
• Terdapat Siri yang siap mendampingi hidup agan
• User-Friendly

Kekurangan
• Seperti halnya MacOS, harganya mahal
• iOS hanya terdapat di devices merk Apple
• Tidak bisa konektivitas ke devices lain seperti bluetooth
• Cukup sulit menghubungkan data ke PC seperti halnya Android
• App nya yang kebanyakan berbayar
• Susah sekali dioprek-oprek karena closed-source

 

Windows Phone

Kelebihan
• Cortana, terinspirasi dari game Halo, Microsoft membuat virtual Assistant untuk Windows Phone. Virtual assistant ini bukan memberikan hasil penelusuran seperti Siri dan Google Now, namun langsung memberikan jawabannya
• Customize Lockscreen
• Fitur Hub
• Fitur Continuum (khusus WP 10)
• Relatif bebas virus

Kekurangan

  • Jumlah aplikasi tidak sebanyak Android dan iOS
    • UI tidak bisa diotak-atik
    • Closed source

 

Blackberry

Kelebihan

• BlackBerry Messenger, sebelum tahun 2013 BBM ini adalah eksklusif untuk Blackberry
• Mengirim Email secepat mengirim SMS
• Sistem keamanan yang baik
• Mempunyai fungsi autotext
• Mempunyai Pushmail

Kekurangan

• Browser yang tidak user-friendly juga payah
• Aplikasi tidak sebanyak Android dan iOS
• Untuk menikmati Blackberry harus ada paket internet khusus yaitu Blackberry Internet Service. Misalnya kita pake sim yang ada paket internet biasa, ketika dimasukkan BB, Cuma bisa dipakai buat browser dan tidak bisa dipakai BBM
• Closed Source
• Hanya terdapat pada Blackberry device

 

  1. pengembangan aplikasi mobile

teknologi apa saja yang dapat digunakan untuk mengembangkan aplikasi mobile, dengan melihat berbagai perkembangan teknologi yang ada.

  1. Aplikasi Native untuk user experience yang terbaik

Aplikasi Native dibangun untuk berjalan pada device dan sistem operasi yang spesifik. Misalnya, aplikasi iOS (iPhone,iPad) dibangun menggunakan Objective C atau Swift. Atau aplikasi Android dengan bahasa Java, atau Windows Phone dengan .NET/WinRT. Teknologi pengembangan aplikasi native didukung penuh oleh prinsipal perangkat, dalam hal ini perusahaan seperti Apple, Google atau Microsoft.

 

  1. Aplikasi Mobile Web untuk kemudahan akses di berbagai perangkat melalui web browser

Jika user experience aplikasi bukan menjadi hal yang utama melainkan kemudahan akses dari berbagai perangkat, mobile web bisa jadi menjadi pilihan yang sesuai. Mobile web dikembangkan agar tidak memiliki dependensi khusus terhadap salah satu platform dan dapat diakses melalui web browser pada perangkat yang dimiliki pengguna.

Mobile web adalah aplikasi web seperti layaknya yang biasa diakses melalui browser di desktop namun di desain khusus agar mudah dan dapat digunakan di perangkat mobile. Teknologi pilihan saat ini adalah HTML5, dengan bantuan framework seperti jQuery Mobile, Sencha Touch dan lainnya.

 

  1. Aplikasi Hybrid untuk dukungan multi-platform dengan sedikit mengorbankan user experience

Selalu ada jalan tengah, dan untuk aplikasi mobile, salah satu yang populer adalah menggunakan pendekatan hybrid. Aplikasi mobile dapat dikembangkan menggunakan teknologi web (HTML5) yang dibungkus dalam wrapper yang bersifat native. Hal ini diperlukan untuk menjembatani kelemahan mobile web yang tidak bisa mengakses komponen hardware dari perangkat mobile.Dengan konsep wrapper maka hal ini bisa dijembatani.

Contoh framework yang bisa digunakan seperti Appcelerator Titanium dan Apache Cordova (sebelumnya Phonegap) untuk mengembangkan aplikasi Hybrid. Aplikasi Hybrid dapat berjalan di berbagai sistem operasi namun biasanya tampilan dari aplikasi akan sama persis sehingga tidak ada perbedaan yang mencolok ketika dijalankan di device yang berbeda.

 

File Presentasi download

 

Referensi