PMO Pertemuan 2 Pengenalan Pemrograman Mobile

PENGERTIAN PEMROGRAMAN MOBILE
Pemrograman Mobile adalah pemrograman yang ditujukan untuk pembuatan aplikasi diperangkat mobile. Banyak sekali platform mobile yang dapat kita coba, diantaranya iOS, BB RIM, J2ME, QT Mobile, Symbian, dan Android. Salah satunya yang sedang booming adalah Android Mobile. Android merupakan sistem operasi berbasis Linux yang bahasa pemrograman aplikasinya dapat kita buat menggunakan Java. Seperti namanya Mobile Programing adalah pemrograman yang diterapkan di mobile/Handphone atau Laptop. Contoh macam-macam alat mobile yaitu antara lain : Telepon Wireless, Tablet PC, Smartphone. Laptop Handphone, Dll

SISTEM OPERASI PERANGKAT BERGERAK
Sistem operasi perangkat bergerak atau sistem operasi mobile adalah suatu sistem operasi yang mengontrol sistem dan kinerja pada barang elektronik yang mobile, mirip dengan fungsi Windows, Mac OS, dan Linux pada desktop atau laptop tetapi lebih sederhana. Biasanya penggunaannya hadir di smartphone, PDA, tablet computer.
Sistem operasi perangkat bergerak merupakan software utama yang bertugas melakukan menejemen dan kontrol terhadap hardware secara langsung serta software-software lain sehingga software-software lain tersebut dapat berjalan. Sistem operasi itu sendiri digunakan sebagai interface perantara antara user dan device yang digunakan untuk mengontrol/memanage device maupun aplikasi di dalamnya.
Sehingga suatu sistem operasi mobile akan bertanggung jawab dalam mengoperasikan berbagai fungsi dan fitur yang tersedia dalam perangkat ponsel tersebut seperti, schedulling task, keyboard, WAP, email, text message, sinkronisasi dengan aplikasi dan perangkat lain, memutar musik, camera, dan mengontrol fitur-fitur lainnya.

LINGKUNGAN PENGEMBANGAN
Masing-masing platform untuk aplikasi mobile juga memiliki lingkungan pengembangan terintegrasi, yang menyediakan alat untuk memungkinkan pengembang untuk menulis, menguji dan menyebarkan aplikasi ke dalam lingkungan platform target. Berikut ini adalah bahasa pemprograman yang menyajikan unsur-unsur dalam masing-masing lingkungan pengembangan perangkat mobile.
1. Adobe AIR Action Script, HTML, CSS, JavaScript Flash Builder, Flash Professional, IntelliJ IDEA iOS (iPhone, iPad, iPod touch), Android, BlackBerry format asli distribusi setiap platform adalah Flash Builder, Flash Professional, IntelliJ IDEA. Lisensi komersial yang tersedia adalah Adobe AIR SDK (command line tool). Sifatnya Gratis.
2. Java Android namun bagian-bagian dari kode bisa di C, C++ Debugger terintegrasi di Eclipse, memantau debugging mandiri tersedia Eclipse, IntelliJ IDEA, Project Kenali Plugin Android untuk NetBeans hanya Android, karena Dalvik VM, Maret 2009 apk gratis, IntelliJ IDEA Community Edition – Gratis.
3. BlackBerry Java Debugger terintegrasi dalam IDE Eclipse , BlackBerry JDE BlackBerry saja, karena RIM API alx, cod Gratis.
4. iOS SDK Objective-C Debugger terintegrasi di Xcode IDE Dibundel dengan iPhone SDK, terintegrasi dengan Xcode IDE Xcode, AppCode iPhone, iPad, iPod Touch Hanya melalui App Store, membutuhkan tinjauan dan persetujuan oleh Apple Apple Inc alat bebas untuk berbasis Intel mac. Pengujian bisa melalui simulator gratis, tapi menginstal pada perangkat membutuhkan biaya untuk kunci penandatanganan pengembang. AppCode – lisensi komersial tersedia.

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, atau 4) pengembangan platform (Wales, 2012). Secara garis besar Software Development terbagi menjadi beberapa tahapan, yaitu:
1. Planning
Merupakan tahap awal untuk memulai Software Development. Tujuan dari tahap ini adalah menghasilkan: 1) proses kerja yang jelas antar setiap anggota, 2) timeline, dan 3) anggaran dana. Pada tahap ini juga, ketua proyek berkoordinasi dengan stakeholder untuk membuat kontrak kerja yang jelas.
2. Requirement and Specification
Tahap ini dilakukan untuk menentukan fitur-fitur yang tepat serta kebutuhan sistem untuk software yang akan dibuat. Tahap ini dapat dilakukan dengan interview, observasi lapangan, dan studi pustaka.
3. Architecture and Design
Merupakan tahap untuk menentukan detail sistem yang akan dipakai. Tahap ini bertujuan untuk menentukan desain keseluruhan dari software, yang meliputi: konseptual database, sistem keamanan, dan interface.
4. Implementation and Testing
Tahap 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. Tsting dapat terbagi menjadi: 1) security testing, 2) performance testing, 3) stress testing, 4) recovery testing.
5. Deployment and Maintenance
Pada tahap terakhir ini adalah tahap dimana software telah mulai digunakan oleh user. Terdapat 2 hal penting yag ada pada tahap ini, antara lain: 1) training penggunaan software dan 2) pemantauan software. Pemantauan dilakukan untuk mengecek apakah software telah stabil atau belum. Kestabilan ini dapat dinilai dengann tidak adanya bug yang muncul selama penggunaan.

ARSITEKTUR SISTEM OPERASI MOBILE
Arsitektur pada android
• Application dan Widget
Application dan widgets ini adalah layer dimana kita berhubungan dengan aplikasi saja. dimana biasanya kita download aplikasi kemudian kita lakukan instalasi dan jalankan aplikasi tersebut. dilayer terdapat aplikasi inti termasuk klien email, program SMS, kalender, peta, browser, kontak dan lain-lain. semua aplikasi ditulis menggunakan pemrograman java
• Application Framework
Android adalah “Open Development Platform” yaitu android menawarkan kepada pengembang untuk membangun aplikasi yang bagus dan inovatif, pengembang bebas mengakses perangkat keras , akses informasi resources, menjalankan service background, mengatur alarm dan menambah status notifikations, dan sebagainya, pengembangan memiliki akses penuh menuju API framework seperti yang dilakukan oleh aplikasi yang katergori inti. arsitektur aplikasi dirancang supaya kita dengan mudah dapat menggunakan kembali komponen yang sudah digunakan(reuse). sehingga dapat disimpulkan Application Framework ini adalah layer dimana para pembuat aplikasi melakukan pengembangan/pembuatan aplikasi yang akan dijalankan disistem operasi android. karena pada layer inilah aplikasi dirancang dan dibuat seperti content-providers yang berupa sms dan panggilan telepon. komponen pada application framework adalah views, content-provider, resource manager, notification manager, activity manager.
• Libraries
Libraries ini adalah layer di mana fitur-fitur Android berada, biasanya para pembuat aplikasi mengakses libararies untuk menjalankan aplikasinya. berjalan diatas kernel, layer ini meliputi berbagai library C/C++ inti seperti Libe dan SSL, serta
o libraries media untuk pemutaran media audio dan video
o libraries untuk memanajemen tampilan
o libraries Graphics mencakup SGL dan OpenGL untuk grafis 2D dan 3D
o libraries SQLite untuk dukungan database
o libraries SSL dan Webkit untuk terintegrasi dan web browser dan security
o libraires LiveWebcore mencakup modern web browser dengan engine embeded web view
o libraires 3D yang mencakup implementasi OpenGL, ES 1.0 APTs
• Android Run Time
Layer yang membuat aplikasi android dapat dijalankan dimana dalam prosesnya menggunakan Implementasi Linux, Dalvik Virtual Machine(DVM) merupakan mesin uang mebentuk dasar kerangka aplikasi android, didalam Android Run Time dibagi menjadi dua bagian yaitu:
o Core Libraries aplikasi android dibangun dalam Bahasa Java, sementara Dalvik sebagai virtual mesinnya bukan virtual machine Java, sehingga diperlukan sebuah libraries yang berfungsi untuk menerjemahkan Bahasa Java/C yang ditangani oleh Core Libaries
o Dalvik Virtual Machine: virtual mesin berbasis register yang dioptimalkan untuk menjalankan fungsi-fungsi secara efisen, dimana merupakan pengembangan yang mampu membuat linux kernel untuk melakukan threading dan manajemen tingkat rendah
• Linux Kernel
Linux Kernel adalah layer dimana inti dari operating sistem dari Android. berisi file-file sistem yang mengatur sistem processing, memory, resource, drivers, dan sistem-sistem android lainnya. linux kernel yang digunakan android mulai dari linux kernel release 2.6

VERSI-VERSI SISTEM OPERASI
• Apple (iOS)
iOS adalah sistem operasi mobile Apple. Dikembangkan awalnya untuk iPhone, kemudian telah digunakan juga pada iPod Touch, iPad dan Apple TV. Apple tidak mengizinkan OS untuk dijalankan pada hardware pihak ketiga. Interface pengguna iOS didasarkan pada konsep manipulasi langsung, menggunakan gerakan multi-touch. Elemen kendali Interface terdiri dari slider, switch, dan tombol. Akselerometer internal digunakan oleh beberapa aplikasi untuk merespon guncangan perangkat (satu hasil yang umum adalah membatalkan perintah) atau berputar dalam mode tiga dimensi (satu hasil yang umum adalah beralih dari portrait ke modus landscape). Dalam IOS, ada empat lapisan abstraksi: Core OS layer, Core Services layer, Media layer, dan Cocoa Touch layer. Sistem operasi membutuhkan sekitar 500 megabyte penyimpanan perangkat, bervariasi untuk setiap perangkat yang diimplementasikan.
• Android
Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.
• Windows Mobile
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 saat ini disebut ‘Windows 7 Mobile’. OS ini berbasis pada Windows CE 7 Kernel, dan fitur-fiturnya dikembangkan menggunakan Microsoft Windows API. Windows Mobile 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.
• 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. BES+ adalah layanan gabungan dari BES dan BIS, ditujukan bagi pelanggan korporasi sehingga pelanggan dapat menerima dan mengirim email kantor yang berbasis Microsoft Exchange, Novel Wise, Lotus Domino dan 10 akun e-mail berbasis POP3/IMAP melalui telepon genggam.
• Symbian OS
Symbian OS adalah sistem operasi tak bebas 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). API mendukung terhadap komunikasi dan tingkah laku yang umum pada hardware yang dapat digunakan oleh objek aplikasi lain. Hal ini dimungkinkan karena API merupakan objek antarmuka yang didefenisikan pada level aplikasi, yang berisikan prosedur dan fungsi (dan juga variabel serta struktur data) yang mengelola/memanggil kernel dimana sebagai penghubung antara software dan hardware.

PERBANDINGAN SISTEM OPERASI MOBILE
Setiap sistem operasi yang terdapat pada mobile device tentu memiliki ke-khasan tersendiri. Misalnya saja pada Android, IOS, Windows dan Blackberry tentu memiliki keunikan dan sifat tersendiri. Berikut adalah perbandingan dari beberapa contoh sistem operasi di mobile device :
Secara Garis Besar
• Android dibuat berdasarkan kernel Linux, didesain secara umum untuk perangkat mobile dengan touch screen. Open Source dan mendapat dukungan penuh Google.
• IOS adalah sistem operasi ramah pengguna yang dibuat dan didistribusikan oleh Apple. Dibuat khusus untuk produk mobile milik Apple.
• Windows Phone adalah seri sistem operasi mobile yang dibuat oleh Microsoft.
• Blackberry OS adalah seri sistem operasi mobile yang dibuat oleh Blackberry Ltd untuk seri smartphone mereka.
Tanggal Awal Perilisan
• Android pertama kali dirilis pada 23 September 2008.
• IOS pertama kali dirilis pada 29 Juni 2007.
• Windows Phone pertama kali dirilis pada 8 November 2010.
• Blackberry pertama kali dirilis pada Maret 2002.
Bahasa Pemrograman Untuk Pengembangan OS
• Android menggunakan bahasa C(core), C++, Java(UI).
• IOS menggunakan bahasa C, C++, Objective-C.
• Windows Phone menggunakan bahasa C,C++.
• Blackberry menggunakan bahasa C++.

KELEBIHAN DAN KEKURANGAN SISTEM OPERASI MOBILE
Beberapa kelebihan dan kekurangan pada sistem operasi mobile:
Android OS
Kelebihan Android OS :
• Open Source.
• Multitasking.
• Mendukung GPS.
• Kemudahan dalam notifikasi.
• Tersedia Android Market untuk memenuhi kebutuhan user.

Kekurangan Android OS:
• Baterai cepat habis.(akan tetapi tersedia hardware atau software yang bisa menghindarinya)
• Bagi orang yang belum pernah memakainya mungkin akan sedikit membingungkan
• Banyaknya aplikasi gratis berarti banyak iklan yang muncul.
• harus tahu spesifikasinya lebih dahulu.
• Harus terkoneksi dengan jaringan internet.
• Harus terus update untuk memperbaiki bug.

APPLE IOS/MAC OS
Kelebihan IOS OS :
• 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.
• Multitasking.
• Mendukung GPS.
• Browser Safari yang dimiliki sistem operasi ini juga merupakan yang terbaik sekarang.
Kekurangan IOS OS:
• Tidak support flash(Safari Mobile).
• Sistem operasi sangat tertutup dan tidak bisa dipersonalisasi.
• Proses sertifikasi untuk aplikasi baru sangat ketat.
• Aplikasi dan game hanya bisa didownload dari App Store.
• Penempatan antenna kurang baik.

SYMBIAN
Kelebihan Symbian OS:
• Dirancang sebagai gabungan kemampuan computer dengan ponsel
• Bersifat open application environment yang memungkinkan ponsel menjadi
sebuah platform bagi pengembangan berbagai aplikasi dan layanan (bahasa
dan konten)
• Multitasking, yang menekankan pada object oriented dan component based.
• User friendly.
• Hemat baterai.
Kekurangan Symbian OS :
 Interface yang statis.
 Mudah terserang malware.
BLACKBERRY
Kelebihan Blackberry OS:
• Merupakan multiple Push Email yang terbaik saat ini,
• Sinkronisasi nirkabel (tanpa kabel seperti Bluetooth dan infra red) yang lengkap,
• Sistem keamanan berlapis yang menjamin keselamatan data penting kita.
• Customize Theme untuk user level untuk mendesain tema Blackberrynya sendiri.
Kekurangan Blackberry OS:
• Browser Web masih kurang bagus,
• Ada biaya tambahan untuk menikmati layanan BlackBerry yang kita pakai, sistem operasi sangat tertutup dan tidak bisa dipersonalisasi
• Belum mendukung conference call.
• Tidak ada aplikasi native untuk menerima dan mengirimkan fax.

MICROSOFT WINDOWS PHONE

Kelebihan Windows Phone:
• Memiliki interface yang berbeda dibandingkan dengan interface smartphone lainnya.
• Melalui account Windows Live tersedia layanan mail, contact, calender. Pengguna juga bisa mengakses layanan toko online-nya (Marketplace) dan fasilitas keamanan gratis.
• Melalui browser dan GPS, pengguna bisa menemukan lokasi, memblokirdan me-reset smartphone.
• Fitur kantoran yang sangat lengkap ditambah integrasi dengan layanan Microsoft Outlook dan Exchange menjadikan Windows Mobile/Phone perangkat smartphone paling powerful bagi para pebisnis.

Kekurangan Windows Phone:
 Microsoft melakukan perubahan radikal pada sistem baru ini. Misalnya, aplikasi pihak ketiga(third party) tidak boleh aktif dilatar belakang, tidak ada folder, akses file multimedia harus melalui Zune, dan data Office harus disimpan dilayanan online SkyDrive.
 Memang karena masih baru, semau potensi platform mobile ini belum optimal.
 Kurang user friendly sehingga membutuhkan pemahaman lebih dalam,
 Sistem operasi terkesan lambat.

PENGEMBANGAN APLIKASI MOBILE
Pengembangan aplikasi mobile adalah istilah yang digunakan untuk proses pengembangan aplikasi perangkat lunak untuk perangkat genggam , seperti asisten digital pribadi , perusahaan asisten digital atau ponsel . Aplikasi-aplikasi tersebut dapat diinstal pada ponsel selama proses manufaktur, didownload oleh pelanggan dari berbagai platform distribusi perangkat lunak ponsel , atau dikirimkan sebagai aplikasi web menggunakan pengolahan sisi server atau sisi klien (misalnya JavaScript) untuk memberikan pengalaman “seperti-aplikasi” dalam sebuah browser Web .
Sebagai bagian dari proses pengembangan, desain user interface (UI) ponsel juga merupakan hal penting dalam penciptaan aplikasi mobile. UI ponsel mempertimbangkan kendala & konteks, layar, input dan mobilitas sebagai garis besar untuk desain. Pengguna seringkali menjadi fokus interaksi dengan perangkat mereka, dan antarmuka memerlukan komponen hardware dan software. Input pengguna memungkinkan bagi pengguna untuk memanipulasi sistem, dan output perangkat memungkinkan sistem untuk menunjukkan efek manipulasi pengguna.
Pengujian Aplikasi Mobile
• Aplikasi mobile yang pertama kali diuji dalam lingkungan pengembangan menggunakan emulator dan kemudian mengalami pengujian lapangan. Emulator menyediakan cara murah untuk menguji aplikasi pada ponsel yang pengembang mungkin tidak memiliki akses fisik. Berikut ini adalah contoh dari alat yang digunakan untuk aplikasi pengujian yang paling populer sistem operasi mobile.
Google Android Emulator
• Google Android Emulator adalah Android emulator yang di-patch untuk dijalankan pada PC Windows sebagai aplikasi mandiri, tanpa harus men-download dan menginstal lengkap SDK Android yang kompleks. Emulator ini dapat diinstal dan apps yang kompatibel dengan Android dapat diuji di emulator ini.
The official Android SDK Emulator
• Android SDK Emulator ofisial termasuk emulator perangkat mobile yang meniru semua fitur perangkat mobile baik itu perangkat keras atau perangkat lunak yang khas (tanpa panggilan).

Sumber :
Safaat H,Nazruddin. 2011. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Bandung : Informatika .
http://stmik-amikbandung.ac.id/berita-188-aplikasiaplikasi-pengembangan-mobile.html
https://en.wikipedia.org/wiki/Mobile_app_development
https://id.wikipedia.org/wiki/Sistem_operasi_telepon_genggam
https://visual.ly/community/infographic/computers/comparison-mobile-os-android-iOS-windows-and-blackberry , dibuat dan diterbitkan oleh Cruz Werner.
https://en.wikipedia.org/wiki/Comparison_of_mobile_operating_systems
https://en.wikipedia.org/wiki/Mobile_operating_system
http://computer-ciber.blogspot.co.id/2014/06/sistem-operasi-pada-mobilehandphone.html
Kelebihan dan Kekurangan OS Mobile
https://en.wikipedia.org/wiki/Mobile_app_development
Software Development – Definisi dan Contoh

Link Download PowerPoint
https://mega.nz/#!I4c1RKJb!Mt7s8vRyuiI0qDYtCVh7m_0lpJmeelO4yf2TGs0jvoQ
https://drive.google.com/open?id=0BwOxdnMiHPj5aFV4SkNTMGhYT1U