2012-1-00346-IF Bab2001

Embed Size (px)

DESCRIPTION

for skirpsi LTE

Citation preview

  • 8

    BAB 2

    LANDASAN TEORI

    2.1 Teori-Teori Dasar / Umum

    Berikut merupakan teori teori dasar atau umum yang menjadi landasan

    teori yang digunakan dalam pengembangan aplikasi:

    2.1.1 Interaksi Manusia dan Komputer (IMK)

    Beberapa teori teori tentang Interaksi Manusia dan Komputer yang

    digunakan dalam pengembangan aplikasi:

    2.1.1.1 Pengertian IMK

    Berdasarkan Maheswari, Sharma, dan Khurana (2012),

    Interaksi Manusia Komputer atau Human Computer Interaction

    (HCI) adalah ilmu yang berkaitan dengan perancangan, evaluasi,

    dan implementasi untuk sistem komputer interaktif yang digunakan

    manusia.

    2.1.1.2 Lima Faktor Manusia Terukur

    Berdasarkan pendapat Shneiderman dan Plaisant (2010),

    dalam merancang sistem sebelumnya harus memperhatikan 5 (lima)

    faktor berikut:

    1. Waktu belajar

    Waktu yang dibutuhkan seorang pengguna aplikasi untuk

    belajar menggunakan aplikasi tersebut.

  • 9

    2. Kecepatan kinerja

    Waktu yang dibutuhkan oleh pengguna aplikasi untuk

    melakukan suatu tugas.

    3. Tingkat kesalahan pengguna

    Seberapa banyaknya dan apa jenis kesalahan yang dilakukan

    oleh pengguna aplikasi.

    4. Daya ingat

    Pengguna aplikasi dapat mengingat pengetahuan yang dimiliki

    tentang aplikasi tersebut dalam jangka waktu tertentu.

    5. Kepuasan subjektif

    Seberapa besar ketertarikan pengguna aplikasi terhadap aspek

    aspek interface aplikasi tersebut.

    2.1.1.3 Eight Golden Rules (Delapan Aturan Emas)

    Berdasarkan pendapat Shneiderman dan Plaisant (2010)

    terdapat 8 (delapan) aturan yang digunakan untuk merancang user

    interface:

    1. Berusaha untuk konsistensi

    Konsisten di berbagai situasi baik dalam istilah-istilah

    yang digunakan pada setiap menu, pesan bantuan, dan dalam

    penggunaan tampilan seperti jenis tulisan, warna, dan layout.

  • 10

    2. Memenuhi kegunaan yang universal

    Mengetahui kebutuhan yang berbeda pada masing-masing

    pengguna, seperti perbedaan umur pengguna, kondisi

    pengguna, teknologi yang digunakan dan perbedaan

    kemampuan pengguna. Berdasarkan kemampuan dari

    pengguna terbagi menjadi 3 (tiga) jenis yaitu:

    a. Novice atau First-Time-Users yang membutuhkan umpan

    balik yang informatif.

    b. Knowledgeable Intermittent Users yang membutuhkan

    fasilitas bantuan yang jelas.

    c. Expert Frequent Users yang membutuhkan umpan balik

    yang singkat dan dapat menggunakan shortcut.

    3. Memberikan umpan balik yang informatif

    Setiap tindakan yang dilakukan oleh pengguna harus

    mendapatkan umpan balik yang memudahkan pengguna dalam

    mengetahui akibat dari tindakannya. Misalnya muncul suatu

    suara ketika salah menekan tombol pada waktu input data atau

    muncul pesan kesalahan.

    4. Merancang dialog untuk menghasilkan suatu penutupan

    Kegiatan yang dilakukan pengguna dipisahkan menjadi 3 (tiga)

    bagian yaitu bagian awal, tengah, dan akhir. Pada bagian akhir

    pengguna harus mendapatkan umpan balik yang informatif

  • 11

    yang memudahkan pengguna dalam mengetahui dampak dari

    tindakan yang telah dilakukan.

    5. Memberikan penanganan kesalahan

    Sistem akan memberikan suatu intruksi yang sederhana dan

    mudah dimengerti kepada pengguna jika terjadi kesalahan yang

    dilakukan.

    6. Mudah kembali ke tindakan sebelumnya

    Pengguna tidak perlu khawatir bila melakukan kesalahan

    karena sistem menyediakan fitur yang dapat mengembalikan

    keadaan ke keadaan sebelum dilakukan kesalahan.

    7. Mendukung tempat pengendalian internal

    Pengguna menjadi pengendali sistem dan bukan sebaliknya.

    Jadi peran pengguna dalam sistem adalah sebagai inisiator

    bukan responden.

    8. Mengurangi beban ingatan jangka pendek

    Sistem yang dikembangkan berbentuk sederhana dan mudah

    diingat karena ingatan manusia yang terbatas. Penyederhanaan

    sistem misalnya menggabungkan tampilan-tampilan sejenis

    dan memberikan pelatihan dengan jangka waktu yang cukup.

    2.1.1.4 Desain Interface Mobile

    Smartphone dan komputer desktop sangat berbeda.

    Smartphone memiliki layar yang kecil, konektivitas intermittent,

  • 12

    bandwidth rendah dan bertenaga baterai. Sedangkan komputer

    desktop memiliki layar yang besar, konektivitas handal, bandwidth

    tinggi dan plugged in. Dengan banyaknya perbedaan antara

    smartphone dan desktop, desain untuk smartphone sangat berbeda

    dengan desain pada desktop.

    Mengacu pada pendapat dari Jonathan Stark (2012)

    pengembangan aplikasi pada mobile terdapat 10 (sepuluh) prinsip

    desain untuk interface mobile:

    1. Mobile Mindset

    Dengan adanya perbedaan antara mobile dan desktop, ada

    beberapa pola pikir untuk mobile:

    a. Be focused

    Aplikasi sebaiknya fokus pada suatu fitur karena dengan

    lebih banyak fitur, tidak membuat aplikasi tersebut menjadi

    lebih baik.

    b. Be unique

    Aplikasi yang dikembangkan memiliki suatu keunikan dan

    kekuatan yang membedakan aplikasi tersebut dengan

    aplikasi lainnya.

    c. Be charming

    Aplikasi yang dapat diandalkan, dan menyenangkan saat

    digunakan, sehingga aplikasi tersebut banyak diminati dan

    digunakan.

  • 13

    d. Be considerate

    Aplikasi yang dikembangkan sebaiknya tidak hanya

    menyenangkan pengguna saat menggunakannya, tetapi juga

    sesuai dengan keinginan pengguna.

    2. Mobile Contexts

    Terdapat 3 (tiga) konteks utama pada mobile yang perlu

    dipertimbangkan untuk mengetahui aplikasi yang pengguna

    inginkan:

    a. Bored : aplikasi yang berkonteks hiburan.

    b. Busy : aplikasi untuk menyelesaikan tugas dengan cepat.

    c. Lost : aplikasi yang berkonteks informasi tempat.

    3. Global Guidelines

    Setiap aplikasi memiliki teknik pendekatan dan desain yang

    berbeda-beda. Sifat yang merekat pada sebuah perangkat

    touchscreen berukuran saku memiliki hal yang harus

    diperhatikan dalam pengembangan aplikasi, yaitu:

    a. Responsiveness

    Jika pengguna melakukan sesuatu pada aplikasi, aplikasi

    perlu menunjukkan jika aplikasi sedang beroperasi.

    b. Polish

    Pengembang harus memperhatikan detil desain aplikasi.

  • 14

    c. Thumbs

    Dengan touchscreen interfaces, desain interfaces harus

    disesuaikan karena banyak pengguna menggunakan ibu jari

    untuk mengetik.

    d. Targets

    Dalam mendesain aplikasi yang akan menggunakan banyak

    fungsi keyboard, pengembang sebaiknya mendesain

    penempatan tombol yang baik sehingga memudahkan

    pengguna dalam pengetikan.

    e. Content

    Sebaiknya pengembang menempatkan content aplikasi pada

    tengah layar untuk memudahkan pengguna berinteraksi

    dengan aplikasi.

    f. Controls

    Ketika harus menambahkan suatu kontrol pada aplikasi,

    sebaiknya diletakkan pada bagian bawah layar agar

    memudahkan pengguna berinteraksi dengan aplikasi.

    g. Scrolling

    Sebaiknya pengembang mengurangi pemakaian scrolling

    untuk memudahkan pengguna dalam penggunaan aplikasi.

  • 15

    4. Navigation Models

    Ada beberapa model navigasi umum untuk aplikasi mobile yang

    dapat digunakan sesuai dengan aplikasi, seperti none, tab bar,

    dan drill down.

    5. User Input

    Pada pengembangan suatu aplikasi memungkinkan pengguna

    dalam memberikan input seperti pengetikan. Terdapat banyak

    variasi keyboard pada smartphone, pertimbangkan untuk

    menampilkan keyboard yang akan sangat berguna. Pilihan auto

    entry yang harus diaktifkan juga harus dipertimbangkan. Jika

    aplikasi perlu banyak input seperti pengetikan, pastikan

    mendukung orientasi landscape.

    6. Gestures

    Touchscreen interfaces saat ini mendukung gesture-based untuk

    interaksi pengguna. Hal - hal yang harus diingat adalah:

    a. Invisible

    Gestures tidak terlihat, tetapi pengembang aplikasi harus

    mempertimbangkan bagaimana untuk mengungkapkan

    keberadaan gestures tersebut kepada pengguna.

    b. Two Hands

    Multi-touch gestures membutuhkan operasi dua tangan.

    Contohnya pengguna dapat dengan mudah memperbesar

    atau memperkecil tampilan aplikasi dengan dua jari.

  • 16

    c. Nice to have

    Menggunakan semacam keyboard shortcuts pada suatu

    aplikasi yang dikembangkan jika diperlukan agar pengguna

    lebih mudah dalam menggunakan aplikasi.

    d. No replacement

    Teknologi Two-Hands belum terlalu berkembang dan

    pengembangan aplikasi dianjurkan tidak menghilangkan

    fungsi single-finger.

    7. Orientation

    a. Potrait

    Orientasi yang paling sering digunakan untuk

    mengoptimalkan desain antar muka aplikasi.

    b. Landscape

    Orientasi ini digunakan untuk mendukung pengguna yang

    sering mengetik yaitu dengan mengoptimalkan penggunaan

    keyboard yang lebih besar.

    c. Orientasi berubah tiba tiba

    Pengembangan aplikasi yang akan digunakan dalam jangka

    panjang perlu dipertimbangkan untuk menambahkan suatu

    orientasi yang tepat di aplikasi tersebut.

    8. Communications

    Aplikasi harus dapat berinteraksi dengan pengguna.

  • 17

    a. Provide feedback

    Memberikan umpan balik instan untuk setiap interaksi. Jika

    pengguna telah meminta suatu tindakan yang akan memakan

    waktu lama, maka aplikasi menampilkan progress bar.

    b. Modal alert

    Modal alert sangat mengganggu sehingga harus digunakan

    ketika ada sesuatu yang benar-benar salah.

    c. Confirmation

    Ketika harus meminta pengguna untuk mengkonfirmasi

    tindakan, dapat ditampilkan dialog konfirmasi modal.

    Seperti: Apakah Anda yakin ingin menghapus data ini?.

    9. Launching

    Ketika pengguna kembali ke aplikasi, maka aplikasi harus

    kembali beroperasi tepat dimana pengguna terakhir

    mengoperasikan aplikasi.

    10. First Impressions

    Pada saat pengguna pertama kali menggunakan aplikasi,

    terdapat 2 (dua) faktor yang menjadi kesan pertama pengguna,

    yaitu:

    a. Your icon

    Icon merupakan suatu hal yang sangat penting, karena icon

    merupakan salah satu yang menjadi daya tarik bagi

    pengguna dalam menggunakan aplikasi yang dikembangkan.

  • 18

    b. First launch

    Peluncuran pertama kali harusnya tidak menimbulkan

    kebingungan bagi pengguna yang menggunakannya.

    2.1.2 Unified Modelling Language (UML)

    Menurut Whitten dan Bentley (2007), Unified Modelling Language

    (UML) adalah sekumpulan aturan pemodelan yang digunakan untuk

    menentukan dan menggambarkan suatu sistem software yang berkaitan

    dengan objek.

    UML telah menjadi standar dalam bahasa pemodelan di bidang

    perancangan software. Standarisasi UML diatur dan dibuat oleh Object

    Management Group (OMG).

    Untuk menjalankan fungsinya dalam menentukan dan

    menggambarkan rancangan software, UML versi 2.0 menggunakan diagram-

    diagram sebagai berikut:

    1. Use Case Diagram

    2. Activity Diagram

    3. Class Diagram

    4. Object Diagram

    5. State Machine Diagram

    6. Sequence Diagram

    7. Communication Diagram

    8. Interaction Overview Diagram

  • 19

    9. Timing Diagram

    10. Component Diagram

    11. Deployment Diagram

    12. Package Diagram

    13. Composite Structure Diagram

    Meskipun UML memiliki begitu banyak diagram, tidak semuanya

    diperlukan dan harus digunakan dalam perancangan. Apabila sistem telah

    digambarkan dan dapat dipahami dengan baik menggunakan diagram yang

    ditentukan, maka tujuan dari UML telah tercapai.

    2.1.2.1 Use Case Diagram

    Use Case Diagram adalah diagram yang mendeskripsikan

    interaksi antara sistem dengan pengguna dan menggambarkan siapa

    yang akan menggunakan sistem serta bagaimana pengguna

    berinteraksi dengan sistem (Whitten dan Bentley, 2007).

    Komponen notasi dasar yang dimiliki oleh use case diagram

    adalah aktor dan use case. Berikut adalah notasi yang terdapat pada

    use case diagram:

    Tabel 2.1 Tabel Notasi Use Case Diagram

    Notasi Deskripsi

    Aktor Aktor adalah pengguna sistem. Aktor tidak terbatas

    hanya manusia saja, jika sebuah sistem berkomunikasi

  • 20

    dengan aplikasi lain dan membutuhkan input atau

    memberikan output, maka aplikasi tersebut juga bisa

    dianggap sebagai aktor.

    Use Case Use case digambarkan sebagai elips dengan nama

    use case dituliskan didalam elips tersebut.

    Gambar 2.1 Contoh Use Case Diagram

    Dalam use case diagram terdapat hubungan yang digunakan

    (Whitten dan Bentley, 2007), antara lain:

    1. Asosiasi

    Asosiasi mendeskripsikan suatu hubungan antara aktor dan use

    case. Asosiasi dapat digambarkan dengan suatu garis yang

    menghubungkan aktor dan use case. Sebuah asosiasi yang

    digambarkan dengan suatu garis dengan anak panah

  • 21

    menunjukkan interaksi antara use case dengan aktor sebagai

    inisiator. Sedangkan asosiasi yang digambarkan tanpa anak

    panah menggambarkan interaksi antara use case dengan aktor

    penerima.

    Gambar 2.2 Contoh Asosiasi Pada Use Case Diagram

    2. Extends

    Pada suatu use case dapat terdiri dari fungsi-fungsi yang

    kompleks dan menyebabkan use case sulit dimengerti. Oleh

    karena itu digunakan extends dengan cara use case tersebut

    menghasilkan use case baru yang berfungsi untuk

    mempermudah dalam pemahaman terhadap suatu use case. Use

    case hasil dari extends disebut dengan extention use case yang

    hanya dapat diakses oleh use case yang menggunakan extends.

  • 22

    Gambar 2.3 Contoh Extends Pada Use Case Diagram

    3. Uses / Includes

    Pada suatu use case diagram sering ditemukan dua atau lebih

    use case yang melakukan fungsi yang sama tersebut. Fungsi

    tersebut digabungkan menjadi use case baru yang disebut use

    case abstrak, yang berfungsi untuk mengurangi redundansi

    dalam suatu use case diagram.

    Gambar 2.4 Contoh Includes Pada Use Case Diagram

  • 23

    4. Depends On

    Depends On merupakan suatu hubungan ketergantungan antara

    satu use case dengan use case lainnya, dimana suatu use case

    tidak dapat berjalan jika use case lain belum dilakukan.

    Gambar 2.5 Contoh Depends On Pada Use Case Diagram

    5. Inheritance

    Inheritance digunakan untuk mempermudah penggambaran

    hubungan antara dua atau lebih aktor yang memiliki langkah

    yang sama dalam sistem dengan membuat aktor abstrak.

    Gambar 2.6 Contoh Inheritance Pada Use Case Diagram

  • 24

    2.1.2.2 Use Case Narrative

    Use Case Narrative adalah sebuah teks yang mendeskripsikan

    suatu langkah yang ada pada use case dan bagaimana cara

    pengguna berinteraksi dengan sistem untuk menyelesaikan

    pekerjaannya pada sistem tersebut (Whitten dan Bentley, 2007).

    2.1.2.3 Class Diagram

    Class diagram merupakan gambaran grafis dari struktur

    objek, yang menunjukkan kelas objek yang ada pada suatu sistem

    dan hubungan antara kelas-kelas objek tersebut (Whitten dan

    Bentley, 2007).

    Gambar 2.7 Contoh Class Diagram

  • 25

    Setiap kelas objek dibagi menjadi 3 (tiga) bagian, yaitu:

    1. Nama kelas

    Nama kelas harus unik atau dapat dibedakan antara kelas yang

    satu dengan kelas yang lain karena nama kelas merupakan

    identitas yang dimiliki oleh setiap kelas.

    2. Atribut kelas

    Atribut menunjukkan informasi yang dimiliki oleh suatu kelas

    atau informasi yang berhubungan dengan suatu kelas.

    3. Operasi kelas

    Operasi digunakan untuk menunjukkan fungsi yang dapat

    dilakukan oleh suatu kelas.

    Gambar 2.8 Struktur Kelas Objek

    2.1.2.3.1 Visibility

    Pada class diagram terdapat visibility yang

    digunakan untuk menentukan suatu kelas dapat diakses

    oleh kelas lainnya atau tidak. Dalam visibility memiliki 3

    (tiga) tingkatan, yaitu (Whitten dan Bentley, 2007):

    >

    - Atribut kelas

    + Operasi kelas

  • 26

    1. Public

    2. Protected

    3. Private

    Tabel 2.2 Tabel Penjelasan Visibility

    Visibility Simbol Deskripsi

    Public + Dapat diakses oleh semua

    kelas yang berhubungan

    Protected # Hanya dapat diakses oleh kelas

    yang mendefinisikan dan

    turunannya

    Private - Hanya dapat diakses oleh kelas

    yang mendefinisikan

    2.1.2.3.2 Multiplicity

    Multiplicity merupakan jumlah banyaknya objek

    sebuah kelas yang berelasi dengan sebuah objek lain pada

    kelas lain yang berasosiasi dengan kelas tersebut (Whitten

    dan Bentley, 2007).

  • 27

    Tabel 2.3 Tabel Penjelasan Multiplicity

    Multiplicity Deskripsi

    0..1 Nol atau satu

    1 Hanya satu

    0..* Nol atau lebih

    1..* Satu atau lebih

    2.1.2.3.3 Generalisasi

    Generalisasi merupakan suatu teknik dimana

    sebuah kelas (subclass) dapat mewarisi atribut-atribut dan

    operasi-operasi dari kelas lainnya (superclass) dimana

    superclass bersifat lebih umum daripada subclass

    (Whitten dan Bentley, 2007).

    Gambar 2.9 Contoh Generalisasi

    Person

    Teacher Student

  • 28

    2.1.2.3.4 Asosiasi

    Asosiasi merupakan hubungan antara satu kelas

    dengan kelas yang lain. Asosiasi antara dua kelas biasanya

    dinotasikan dengan sebuah garis yang menghubungkan

    kedua kelas tersebut dan biasanya disertakan keterangan

    mengenai detil relasi antar kelas dan multiplicity (Whitten

    dan Bentley, 2007).

    Hubungan yang digambarkan dibedakan menjadi 2

    (dua) jenis, yaitu:

    1. Uni-directional

    Hubungan uni-directional menghubungkan 2 (dua)

    kelas yang saling terhubung, tetapi hanya satu yang

    memiliki peran dalam hubungan tersebut. Hubungan

    uni-directional dapat direpresentasikan dengan

    menggunakan anak panah. Seperti gambar 2.4 kelas

    Order memiliki atribut bertipe sama dengan kelas

    Customer, dan kelas Customer tidak dapat

    memiliki atribut bertipe sama dengan kelas Order.

    Gambar 2.10 Contoh Hubungan Uni-Directoral

  • 29

    2. Bi-directional

    Hubungan bi-directional menghubungkan 2 (dua)

    kelas yang saling terhubung dan keduanya memiliki

    peran dalam hubungan tersebut. Hubungan bi-

    directional tidak perlu menggunakan anak panah.

    Seperti gambar 2.5 kelas Flight memiliki atribut

    bertipe sama dengan kelas Plane, dan kelas Plane

    memiliki atribut bertipe sama dengan kelas Flight.

    Gambar 2.11 Contoh Hubungan Bi-directional

    2.1.2.3.5 Agregasi

    Agregasi menggambarkan hubungan dimana satu

    kelas merupakan bagian dari kelas lain. Seperti pada

    gambar 2.5, dimana kelas Karyawan adalah bagian dari

    kelas Perusahaan, tetapi kelas Perusahaan bukan

    merupakan bagian dari kelas Karyawan (Whitten dan

    Bentley, 2007).

  • 30

    Gambar 2.12 Contoh Agregasi

    2.1.2.3.6 Komposisi

    Komposisi merupakan bentuk lain dari agregasi,

    tetapi sebuah kelas tidak dapat berdiri sendiri dan harus

    merupakan bagian dari kelas yang lain. Seperti pada

    gambar 2.6, dimana kelas Halaman merupakan bagian

    dari kelas Buku dan kelas Halaman tidak akan ada

    jika kelas Buku tidak dibuat (Whitten dan Bentley,

    2007).

    Gambar 2.13 Contoh Komposisi

    2.1.2.4 Activity Diagram

    Activity diagram adalah suatu diagram yang digunakan untuk

    menggambarkan proses bisnis, langkah-langkah dari use case dan

    logika perilaku dari objek. Dalam activity diagram lebih dari satu

    use case dapat digambarkan dengan satu activity diagram, tetapi

    Halaman Buku

    1 1..*

    Karyawan Perusahaan

    1 0..*

  • 31

    satu activity diagram dapat digambarkan untuk setiap use case jika

    use case tersebut memiliki logika yang kompleks (Whitten dan

    Bentley, 2007).

    Gambar 2.14 Activity Diagram

    Beberapa elemen yang digunakan dalam activity diagram

    adalah (Whitten dan Bentley, 2007):

    Activity

    Activity Activity

    Activity

    ActivityActivity

    [True] [False]

  • 32

    Tabel 2.4 Tabel Elemen Activity Diagram

    Initial node Simbol yang menggambarkan

    dimulainya proses.

    Action Simbol yang merepresentasikan suatu

    aktivitas. Keseluruhan aktivitas dari

    diagram mengikuti urutan actions.

    Flow Simbol yang merepresentasikan

    jalur dari satu aktivitas ke aktivitas

    lainnya.

    Decision /

    Merge

    Simbol yang merepresentasikan

    keadaan kondisional, yaitu decision

    dan merge.

    1. Decision

    Mengindikasi kondisi untuk

    memilih salah satu alur

    aktivitas.

    2. Merge

    Mengindikasi bergabungnya

    alur aktivitas yang dipisahkan

    oleh decision sebelumnya.

    Fork / Join Simbol yang merepresentasikan

    keadaan paralel, yaitu fork dan join.

    1. Fork

    Activity

  • 33

    Mengindikasikan adanya dua

    atau lebih actions yang

    berlangsung bersamaan.

    2. Join

    Mengindikasi berakhirnya

    proses paralel.

    Activity

    Final

    Simbol yang merepresentasikan

    berakhirnya proses.

    Pada activity diagram dapat ditentukan siapa yang melakukan

    tindakan apa dengan membagi activity diagram ke dalam beberapa

    partitions atau swimlane yang menunjukkan aktivitas yang

    dilakukan oleh aktor tertentu. Suatu activity diagram dapat

    memiliki tiga atau lebih swimlane yang menunjukkan aktor

    penerima.

    2.1.2.5 Sequence Diagram

    Sequence diagram adalah salah satu UML diagram yang

    menggambarkan model logika dari sebuah use case dengan

    menggambarkan interaksi pesan antar objek dalam suatu urutan

    waktu (Whitten dan Bentley, 2007).

  • 34

    Gambar 2.15 Contoh Sequence Diagram

    Beberapa elemen yang digunakan dalam sequence diagram

    adalah (Whitten dan Bentley, 2007):

    1. Aktor

    Aktor adalah suatu elemen yang dapat digunakan pada sequence

    diagram dimana digambarkan dengan aktor simbol yang

    mewakili pengguna dalam berinteraksi dengan interface.

    Gambar 2.16 Aktor Simbol

    Aktor

    :Pemesanan :Barang

    Memesan barang

    Status pemesanan

    Status barang

    Mengecek barang ()

  • 35

    2. Objek

    Objek digunakan untuk mewakili kelas-kelas pada class

    diagram dan digambarkan dengan simbol persegi panjang yang

    didalamnya terdapat nama objek tersebut. Pada objek terdapat

    garis putus-putus yang disebut lifeline.

    Gambar 2.17 Objek

    3. Pesan

    Pesan digunakan untuk menggambarkan interaksi antar objek

    yang ada pada sequence diagram.

    Contoh 2.18 Pesan

    4. Aktivasi

    Aktivasi digambarkan dengan sebuah persegi panjang pada

    lifeline dan berfungsi untuk menunjukkan lamanya objek yang

    digunakan.

    :Objek

    Pesan

  • 36

    Gambar 2.19 Aktivasi

    5. Pesan kembali

    Pesan kembali digambarkan dengan simbol seperti pesan tetapi

    dengan garis putus-putus dan berfungsi untuk menanggapi

    pesan yang sebelumnya telah disampaikan.

    Gambar 2.20 Pesan Kembali

    6. Self-call

    Suatu objek pada sequence diagram dapat mengirimkan pesan

    atau berinteraksi ke objek itu sendiri.

    Gambar 2.21 Self-call

    :Objek1

    Pesan Kembali

  • 37

    7. Frame

    Penggunaan frame pada sequence diagram menunjukkan

    adanya perulangan (looping) pada daerah yang dibatasi oleh

    frame tersebut. Frame juga digunakan jika pada sequence

    diagram terdapat pilihan yang boleh dipilih atau tidak dipilih

    (optional) atau menggambarkan pilihan yang setidaknya ada

    sebuah proses yang dilakukan (alternate).

    Gambar 2.22 Frame

    (Sumber: Whitten dan Bentley, 2007)

    2.1.3 Rekayasa Perangkat Lunak

    Menurut Pressman (2010), pengertian rekayasa perangkat lunak adalah

    pengimplementasian prinsip-prinsip perancangan untuk menghasilkan

    Sys Admin User :MemberServicesSystem

    opt

    opt

    numTries 3

    submitLogin(username, password)

    failedAttempt

    (datetime, ip)

  • 38

    software yang ekonomis, handal dan mampu bekerja efisien pada mesin

    yang sesungguhnya.

    Karakteristik dari software adalah sebagai berikut (Pressman, 2010):

    1. Software dikembangkan atau dibuat, bukan dirakit

    Terdapat beberapa kesamaan antara pengembangan software dan

    perakitan hardware. Pada dasarnya kedua kegiatan tersebut berbeda,

    kualitas tinggi dapat diperoleh melalui rancangan yang baik, tetapi

    perakitan hardware dapat memberikan permasalahan pada kualitas

    software.

    2. Software tidak akan habis

    Software tidak akan habis oleh waktu karena tidak memiliki bentuk

    fisik. Tidak seperti hardware yang memiliki bentuk fisik.

    3. Sebagian besar software dibangun sesuai dengan keinginan

    Sebuah komponen software harus dirancang dan diimplementasi,

    sehingga dapat digunakan kembali dalam banyak program berbeda.

    2.1.3.1 Agile Software Development

    Agile Software Development adalah sebuah strategi

    pengembangan sistem dimana pengembang diberikan fleksibilitas

    untuk memilih alat yang sesuai dan teknik yang baik untuk

    menyelesaikan tugas-tugasnya. Agile Software Development

    memiliki keseimbangan yang optimal antara produktivitas dan

    kualitas dalam pengembangan sistem (Whitten dan Bentley, 2007).

  • 39

    2.1.3.2 Extreme Programming

    Extreme Programming (XP) merupakan salah satu metodologi

    dalam rekayasa perangkat lunak dan merupakan salah satu metode

    dari beberapa agile software development yang berfokus pada

    coding sebagai aktivitas utama dan menekankan pada kerjasama

    tim. XP digunakan untuk menghadapi kebutuhan yang kurang

    dimengerti oleh pengembang dan berubahnya kebutuhan dari

    pengguna. Pada XP antara pengguna dan pengembang selalu

    melakukan komunikasi jika terjadi perubahan pada software yang

    dikembangkan.

    Gambar 2.23 Extreme Programming

    (Sumber: Roger S. Pressman, Software Enginnering: A

    Practitioners Approach, 2010)

  • 40

    Mengacu pada pendapat Pressman (2010), dalam

    pengembangan software dengan menggunakan XP terdapat 4

    (empat) tahap yang digunakan. Empat tahap tersebut yaitu:

    1. Planning

    Pada tahap ini dimulai dengan perencanaan stories yang

    menggambarkan fitur dan fungsionalitas yang diperlukan untuk

    software yang akan dibangun. Setiap story ditulis oleh

    pengguna dan ditempatkan pada kartu index. Kemudian

    pengguna memberikan nilai untuk story yang akan dinilai oleh

    pengembang dan menentukan biaya selama waktu

    pengembangan software. Jika waktu yang diperlukan untuk

    story lebih dari 3 (tiga) minggu, maka pengguna diminta untuk

    membagi story tersebut menjadi beberapa story yang lebih

    kecil.

    2. Design

    Pada tahap ini menggunakan prinsip Keep It Simple (KIS).

    Perancangan yang sederhana lebih mudah dimengerti dari pada

    tampilan yang kompleks. XP mendukung penggunaan Class

    Responsibillity Collaborator (CRC) cards sebagai mekanisme

    yang efektif untuk berpikir tentang software dalam konteks

    berorientasi objek.

  • 41

    3. Coding

    Tahap ini dilakukan setelah story dikembangkan dan rancangan

    pendahuluan selesai. Kemudian dilakukan perancangan unit

    test terlebih dahulu sebelum penulisan kode dilakukan. Unit

    test merupakan serangkaian test yang mengevaluasi setiap

    story. Setelah unit test selesai dibuat, pemikiran pengembang

    berfokus pada pengimplementasian untuk melewati unit test

    berikutnya. Setelah pembuatan kode selesai dapat langsung

    dilakukan pengujian. Pada tahap coding juga dilakukan

    refactoring yang merupakan suatu teknik konstruksi dan

    metode untuk mengoptimalkan rancangan yaitu dengan

    penyederhanaan kode untuk memudahkan orang lain atau

    pengembang dalam memahami kode tersebut. Setelah tahap

    pembuatan kode dilakukan selanjutnya dapat dilakukan

    perancangan baik sebelum ataupun sesudah tahap tersebut, hal

    ini dikarenakan adanya refactoring.

    4. Testing

    Pada bagian ini dilakukan pengujian kode dengan unit test yang

    telah dihasilkan pada tahap sebelumnya. Setelah itu dilakukan

    acceptance test yang disebut juga customer test yang berfungsi

    untuk memastikan aplikasi yang telah memenuhi kebutuhan

    pengguna.

  • 42

    2.1.4 Database

    Berdasarkan pendapat dari Connolly (2005), database adalah

    sekumpulan data yang secara logis saling terkait yang dirancang untuk

    memenuhi kebutuhan informasi suatu organisasi.

    2.1.5 Teknologi Mobile

    Berikut merupakan penjelasan mengenai teknologi teknologi mobile

    yang sedang berkembang:

    2.1.5.1 Smartphone

    Mengacu pada pendapat dari Ramteke, Choudhary (2012),

    smartphone menyediakan fasilitas internet dan akses ke layanan

    data yang beragam. Teknologi smartphone telah pindah ke

    perangkat yang sangat visual dan menarik banyak pengguna serta

    memberikan banyak fasilitas untuk berkomunikasi. Beberapa sistem

    operasi yang sedang berkembang saat ini adalah Blackberry, iOs,

    dan Android.

    2.1.5.2 Native Mobile Applications

    Mengacu pada pendapat Upadhyay dan Tripathi (2012),

    Native Mobile Applications adalah aplikasi yang diinstal pada

    smartphone dan dikembangkan dengan bahasa pemrograman

    khusus. Aplikasi mobile ini cepat, handal, dan kinerja yang

    maksimal tetapi terikat pada mobile platform yang dikembangkan.

  • 43

    Native mobile applications selalu lebih responsif dan dapat

    mengakses lebih fitur hardware pada device.

    2.1.6 Instant Messaging (IM)

    Instant Messaging (IM) adalah sebuah aplikasi berbasis Internet

    Protokol (IP) yang memberikan kemudahan berkomunikasi antar orang

    menggunakan bermacam macam device yang berbeda. Sekarang IM dapat

    bekerja dengan mobile device, seperti digital cellular phones dan dapat

    mendukung suara dan video (Rittinghouse dan Ransome, 2005).

    2.1.7 Android

    Mengacu pada pendapat Nimodia dan Deshmukh (2012), Android

    adalah sebuah software stack untuk perangkat mobile yang mencakup sistem

    operasi, middleware dan key applications. Android memiliki platform yang

    bersifat open source dan sistem operasi untuk perangkat mobile berbasis

    pada sistem operasi Linux dan dikembangkan oleh Google dan Open

    Handset Alliance.

    Sistem operasi pada android ini berbasis bahasa pemrograman Java

    menggunakan Android Software Development Kit (Android SDK) dan

    berjalan pada Linux Kernel, dengan middleware, library, Application

    Programming Interface (API) yang ditulis dalam bahasa C, dan software

    yang berjalan pada suatu kerangka aplikasi dengan menyertakan Java-

    compatible libraries berbasis pada Apache Harmony, yaitu sebuah

  • 44

    implementasi Java bersifat open source dikembangkan oleh Apache

    Software Foundation yang terdiri dari Java Development Kit (JDK), virtual

    machine dan class library.

    2.1.8 Fitur Android

    Android memiliki beberapa fitur yang mendukungnya, dimana fitur-

    fitur tersebut terdapat pada perangkat mobile. Fitur-fitur yang mendukung

    Android yaitu (Lee, 2011):

    1. Storage

    Menggunakan SQLite, mesin database SQL embedded, untuk

    menyimpan data.

    2. Connectivity

    Mendukung GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,

    WiFi, LTE, dan WiMAX.

    3. Messaging

    Mendukung SMS dan MMS.

    4. Web browser

    Berbasis open-source WebKit, dengan Chromes V8 JavaScript engine.

    5. Media support

    Mendukung media: MP3, MIDI, WAV, JPEG, PNG, dan lain-lain.

    6. Hardware support

    Mendukung hardware: Accelerometer Sensor, Camera, Digital Compass,

    Proximity Sensor, GPS.

  • 45

    7. Multi-touch

    Mendukung multi-touch screens.

    8. Multi-tasking

    Mendukung multi-tasking applications.

    9. Flash support

    Android 2.3 mendukung Flash 10.1.

    10. Tethering

    Mendukung sharing koneksi internet seperti wireless hotspot.

    2.1.9 Arsitektur Android

    Gambar 2.23 menunjukkan komponen-komponen yang terdapat pada

    sistem operasi Android yang terbagi menjadi beberapa layer.

    Gambar 2.24 Arsitektur Android

    (Sumber: http://developer.android.com/about/versions/index.html, 2012)

  • 46

    2.1.9.1 Applications

    Dalam applications layer, Android akan dikirim dengan satu

    set aplikasi termasuk email client, program SMS, kalender, peta,

    browser, kontak, dan lain-lain. Semua aplikasi ditulis menggunakan

    bahasa pemrograman Java (Anonim1, 2012).

    2.1.9.2 Application Framework

    Dengan platform open development, Android menawarkan

    kemampuan pengembang untuk membangun aplikasi yang sangat

    kaya dan inovatif. Pengembang bebas untuk mengambil keuntungan

    dari hardware devices, mengakses informasi lokasi, menjalankan

    background services, mengatur alarm, menambahkan

    pemberitahuan ke status bar, dan lain-lain (Anonim1, 2012).

    Sekumpulan services dan sistem yang mendasari aplikasi

    Android adalah (Anonim1, 2012):

    1. Sekumpulan views yang dapat digunakan untuk membangun

    aplikasi, termasuk list, grids, text boxes, buttons, dan

    embeddable web browser.

    2. Content providers yang memungkinkan aplikasi untuk

    mengambil data dari aplikasi lain atau untuk berbagi data dari

    aplikasi itu sendiri.

    3. Resource manager menyediakan akses ke non-code resources

    seperti localized strings, graphics, dan layout files.

  • 47

    4. Notification manager yang memungkinkan semua aplikasi

    untuk menampilkan pemberitahuan pada status bar.

    5. Activity manager yang mengatur siklus dari aplikasi dan

    menyediakan common navigation backstack.

    2.1.9.3 Libraries

    Android mencakup sekumpulan library C/C++ yang

    digunakan oleh berbagai komponen dari sistem Android. Beberapa

    library yang digunakan adalah (Anonim1, 2012):

    1. System C library digunakan untuk embedded Linux-based

    devices.

    2. Media Libraries untuk memutar audio dan video.

    3. Surface Manager untuk menyediakan pengaturan tampilan.

    4. LibWebCore sebuah mesin web browser modern.

    5. Scene Graph Library (SGL) untuk kemampuan menampilkan

    grafik dua dimensi.

    6. 3D libraries termasuk OpenGL untuk kemampuan

    menampilkan grafik tiga dimensi.

    7. SQLite untuk dukungan dalam database.

    2.1.9.4 Android Runtime

    Android yang mencakup sekumpulan core libraries yang

    menyediakan sebagian besar fungsi pada bahasa pemrograman

  • 48

    Java. Android Runtime juga termasuk Dalvik virtual machine, yang

    memungkinkan setiap aplikasi Android untuk berjalan dalam proses

    sendirinya. Dalvik adalah mesin virtual khusus dirancang khusus

    untuk android dan dioptimalkan untuk battery-powered device

    mobile dengan memori yang terbatas dan CPU (Anonim1, 2012).

    2.1.9.5 Linux Kernel

    Android bergantung pada versi Linux 2.6 Kernel untuk

    sistem inti seperti keamanan, manajemen memori, manajemen

    proses, network stack, dan driver model. Kernel juga bertindak

    sebagai abstraction layer antara hardware dan dari stack yang lain

    (Anonim1, 2012).

    2.1.10 Komponen Aplikasi Android

    Android memiliki 4 (empat) komponen pemrograman. Setiap

    komponen memiliki peran yang berbeda-beda. Masing-masing komponen

    memiliki siklus hidup sendiri-sendiri yang mengatur kapan komponen

    dibuat dan bagaimana komponen dihapus. Berikut ini adalah 4 (empat) jenis

    komponen dalam aplikasi android (Anonim2, 2012):

    1. Activities

    Activities adalah suatu komponen yang menyediakan layar dimana

    pengguna dapat berinteraksi untuk menjalankan fungsi tertentu.

  • 49

    2. Services

    Services adalah komponen aplikasi yang berjalan di background untuk

    menjalankan proses yang memerlukan waktu cukup lama. Services tidak

    memiliki tampilan.

    3. Content Providers

    Content Providers bertugas untuk mengelola sekumpulan data aplikasi

    yang terbagi (shared). Datanya dapat disimpan dalam file sistem,

    database SQLite atau lokasi penyimpanan lainnya. Dengan adanya

    Content Providers ini, aplikasi lain dapat mengakses data yang

    diperlukan tanpa perlu mengetahui bagaimana data tersebut disimpan.

    Content provider juga dapat digunakan untuk menulis dan membaca data

    pribadi yang tidak dibagikan (tidak shared).

    4. Broadcast Receivers

    Broadcast receivers adalah suatu komponen aplikasi yang menanggapi

    broadcast. Contoh broadcast yang dikirim oleh sistem operasi Android

    adalah pemberitahuan ada aplikasi baru yang terinstal atau ter-update,

    layar mati, ada SMS atau telepon masuk, dan lain-lain. Broadcast

    receiver juga tidak memiliki tampilan, tetapi dapat menjalankan suatu

    activity atau menampilkan pemberitahuan.

    2.1.11 Google Cloud Messaging (GCM)

    Google Cloud Messaging (GCM) adalah suatu layanan yang

    digunakan untuk mengirimkan data pesan singkat dari server ke pengguna

  • 50

    pada perangkat Android. GCM dapat mengirimkan pesan singkat untuk

    memberitahu aplikasi bahwa terdapat data baru yang akan diambil dari

    server, seperti file film yang diunggah oleh seorang teman atau pesan yang

    berisi data sampai dengan 4 KB. Layanan GCM menangani semua aspek

    antrian pesan dan pengiriman ke aplikasi pengguna Android pada perangkat

    pengguna. GCM tidak peduli seberapa besar pesan yang dibutuhkan oleh

    pengguna dan tidak ada kuota (Anonim3, 2012).

    2.2 Teori-Teori Khusus yang Berhubungan dengan Topik Bahasan

    Berikut merupakan teori teori khusus yang berhubungan dengan topik

    bahasan pada pengembangan aplikasi:

    2.2.1 PHP Hypertext Preprocessor (PHP)

    PHP adalah suatu bahasa scripting yang sesuai digunakan untuk

    pengembangan web dan tertanam ke dalam HTML. Terdapat perbedaan

    antara PHP dengan yang lain seperti client server JavaScript yaitu code

    dijalankan di server, menghasilkan HTML yang kemudian dikirim ke client.

    Dari client akan menerima hasil dari script yang dijalankan, tetapi tidak

    akan mengetahui apa code yang mendasarinya (Anonim4, 2012).

    PHP memiliki beberapa kelebihan dibandingkan dengan beberapa

    bahasa scripting yang lain. Beberapa kelebihan dari PHP adalah (Anonim5,

    2012):

    1. PHP dapat digunakan pada semua sistem operasi utama, termasuk Linux,

    Microsoft Office, Mac OS, dan beberapa sistem operasi lainnya.

  • 51

    2. PHP mendukung untuk sebagian web server, seperti Apache, IIS, dan

    beberapa web server lainnya.

    3. PHP dapat menggunakan pemrograman prosedural atau pemrograman

    berorientasi objek (OOP).

    4. PHP juga didukung berbagai database, seperti MySQL, ODBC.

    2.2.2 MySQL

    MySQL adalah suatu open source database yang sering digunakan di

    dunia karena memiliki kinerja yang tinggi, kehandalan yang tinggi, dan

    kemudahan dalam penggunaan. MySQL berjalan pada lebih dari 20

    platform termasuk Linux, Windows, Mac OS, Solaris, IBM, AIX (Anonim6,

    2012).

    2.2.3 JavaScript Object Notation (JSON)

    JSON merupakan suatu format teks yang tidak bergantung pada

    bahasa pemrograman apapun karena menggunakan bahasa yang umum dan

    dapat digunakan oleh programmer yang menggunakan C, C++, C#, Java,

    JavaScript, Perl, Python dan lain lain (Anonim7, 2012).

    Beberapa bentuk yang digunakan di dalam JSON adalah (Anonim7,

    2012):

    1. Object

    Object adalah sepasang nama atau nilai yang tidak terurutkan. Object

    dimulai dengan kurung kurawal buka ( { ) dan diakhiri dengan kurung

  • 52

    kurawal tutup ( } ). Pada setiap nama diikuti dengan titik dua ( : ) dan

    setiap pasangan nama atau nilai dipisahkan oleh koma ( , ).

    2. Array

    Array adalah kumpulan nilai yang terurutkan dan memiliki komponen

    komponen yang mempunyai tipe data sama. Array dimulai dengan

    kurung kotak buka ( [ ) dan diakhiri dengan kurung kotak tutup ( ] ). Pada

    setiap nilai dipisahkan oleh koma ( , ).

    3. Value

    Value dapat berupa string, angka, object, array, true, false, atau null.

    Struktur struktur tersebut dapat disusun dengan bertingkat.

    4. String

    String adalah kumpulan dari nol atau lebih karakter Unicode, yang

    dibungkus dengan tanda kutip ganda. Di dalam string dapat digunakan

    dapat digunakan backslash escapes ( \ ) untuk membentuk karakter

    khusus. Sebuah karakter mewakili karakter tunggal pada string. String

    sangat mirip dengan string C atau Java.

    5. Number

    Number sangat mirip dengan number di C atau Java, kecuali format oktal

    dan heksadesimal tidak digunakan.

    2.2.4 SQLite

    SQLite adalah sebuah library yang mengimplementasi self-contained,

    serverless, zero-configuration, transactional SQL database. SQLite

  • 53

    merupakan SQL database engine yang paling banyak digunakan karena

    kode untuk SQLite berada dalam public domain dan dengan demikian bebas

    untuk digunakan (Anonim8, 2012).

    Beberapa fitur yang terdapat pada SQLite adalah (Anonim9, 2012):

    1. Transaksi bersifat atomic, konsisten, terisolasi, dan tahan lama (ACID),

    bahkan jika terjadi kegagalan sistem atau power.

    2. Zero configuration, yang berarti tidak membutuhkan setup atau

    administration.

    3. Penerapan SQL92.

    4. Database yang lengkap disimpan di dalam single cross-platform disk

    file.

    5. Mendukung database dengan ukuran terabyte dan gigabyte, strings,

    dan blobs.

    6. Footprint yang berukuran kecil: kurang dari 350 KB jika terkonfigurasi

    penuh atau kurang dari 200 KB jika fitur fitur tambahan tidak

    digunakan.

    7. Lebih cepat dari database client atau server yang sering digunakan

    pada umumnya untuk operasi operasi yang bersifat umum.

    8. API yang sederhana dan mudah untuk digunakan.

    9. Ditulis dalam ANSI-C dan TCL binding terdapat didalamnya. Binding

    untuk bahasa lainnya tersedia secara terpisah.

    10. Tersedia sebagai single ANSI-C source-code file yang dapat

    ditambahkan dengan mudah.

  • 54

    11. Mandiri, tidak bergantung kepada faktor eksternal.

    12. Cross platform: UNIX (Linux dan Mac OS X), OS/2, dan Windows

    (Win32 dan WinCE).

    13. Kode SQLite berada di public domain dan dapat digunakan untuk

    tujuan apapun.

    14. Memiliki command line interface (CLI) client yang mandiri dan dapat

    digunakan untuk mengatur database dari SQLite.

    2.2.5 Global Positioning System (GPS)

    Mengacu pada pendapat Meduri dan Brahmanandam (2012), Global

    Positioning System (GPS) adalah satelit berbasis sistem navigasi radio untuk

    memberikan informasi posisi yang akurat dengan waktu yang tepat.

    Biasanya, akurasi GPS dibatasi oleh beberapa faktor seperti lingkungan,

    penerima, dan kesalahan berbasis satelit.

    2.2.6 Java

    Berdasarkan pendapat Schildt (2005), java adalah bahasa

    pemrograman yang mendukung Object Oriented Programming (OOP).

    Aplikasi Java biasanya dapat dikompilasi menjadi bytecode (file kelas) yang

    dapat berjalan di Java Virtual Machine (JVM) manapun walaupun berbeda

    dalam arsitektur komputer.

    Bahasa pemrograman Java memiliki beberapa kelebihan dibandingkan

    beberapa bahasa pemrograman lain. Beberapa kelebihan dari Java adalah:

  • 55

    1. Multiplatform

    Java dapat dijalankan dibeberapa platform atau sistem operasi komputer,

    yang tidak terikat pada arsitektur tertentu. Sesuai dengan prinsip write

    once, run anywhere.

    2. Object Oriented Programming (OOP)

    Bahasa Java merupakan bahasa pemrograman yang mendukung

    pemodelan berorientasi objek karena pada Java mengutamakan dalam

    pembuatan objek, manipulasi objek, dan membuat objek bekerja sama.

    3. Library yang lengkap

    Java memiliki library yang lengkap dan mempermudah dalam

    penggunaan oleh para pembangun untuk membangun aplikasinya.

    4. Berdasar C++

    Memiliki sintaks seperti bahasa pemrograman C++.

    2.2.7 Eclipse

    Eclipse adalah suatu software yang bersifat terbuka dan multi-bahasa.

    Eclipse terdiri dari Integrated Development Environment (IDE) dan sistem

    extensible plug-in. Dapat digunakan untuk mengembangkan berbagai jenis

    aplikasi, menggunakan bahasa seperti Java, Ada, C, C++, COBOL, Python

    dan lain-lain (Lee, 2011).

    Eclipse mengijinkan ekstensi tambahan dari pihak third-party dan

    merupakan sebuah IDE karena menyediakan tools untuk mengatur

  • 56

    workspace; dapat membangun, menjalankan dan debug aplikasi; dan

    melakukan penyesuaian terhadap pemrograman.

    Mengacu pada pendapat Harika, Pravin, dan Sivaram (2012) dalam

    mengembangkan aplikasi mobile platform Android diperlukan Software

    Development Kit (SDK) untuk membantu dalam pengembangan aplikasi

    dan yang paling penting adalah Emulator Android dan Android

    Development Tool (ADT) plug-in untuk Eclipse.

    2.2.8 Android Software Development Kit (SDK)

    Android SDK berisi debugger, libraries, emulator, dokumentasi,

    sample code, dan tutorial. SDK ini merupakan add-on Java Development

    Kit (JDK) dan memiliki plug-in terintegrasi untuk Eclipse IDE (Lee, 2011).

    Beberapa fitur yang terdapat pada Android SDK (Meier, 2010):

    1. Tidak ada proses perizinan , distribusi, atau pengembangan biaya atau

    persetujuan proses rilis.

    2. Wi-Fi akses hardware.

    3. GSM, EDGE, dan 3G untuk telepon atau mengirim data, memungkinkan

    untuk membuat atau menerima panggilan atau pesan SMS, atau mengirim

    dan mengambil data di jaringan mobile.

    4. Komprehensif API untuk layanan berbasis lokasi seperti GPS.

    5. Pengaturan multimedia hardware, termasuk pemutaran dan merekam

    dengan kamera dan microphone.

  • 57

    6. API untuk menggunakan sensor hardware, termasuk accelerometer dan

    kompas.

    7. Libraries menggunakan Bluetooth untuk mengirim data peer-to-peer.

    8. IPC message passing.

    9. Shared data stores

    10. Latar belakang dari aplikasi dan proses.

    11. Home-screen Widgets, Live Folders, dan Live Wallpaper.

    12. Kemampuan untuk mengintegrasikan hasil pencarian aplikasi ke dalam

    pencarian sistem.

    13. Terintegrasi open-source HTML5 WebKit-based browser.

    14. Mendukung untuk aplikasi yang mengintegrasikan map controls

    sebagai bagian dari user interface.

    15. Mobile-optimized hardware-accelerated graphic, termasuk library

    path-based grafik 2D dan mendukung untuk grafik 3D menggunakan

    OpenGL ES 2.0.

    16. Media libraries untuk bermain dan merekam berbagai audio atau video

    atau format gambar.

    17. Lokalisasi melalui dynamic resource framework.

    18. Suatu framework aplikasi yang mendorong penggunaan kembali

    komponen aplikasi dan penggantian aplikasi asli.

  • 58

    2.2.9 Android Development Tools (ADT)

    ADT adalah plug-in untuk Eclipse yang memudahkan dalam

    pengembangan Android dengan menghubungkan developer tools, termasuk

    emulator dan .class-to-.dex converter, langsung di dalam IDE (Meier, 2011).

    Dengan menggunakan ADT sebagai plug-in untuk Eclipse dapat

    melakukan (Meier, 2010):

    1. Android Project Wizard menyederhanakan dalam pembuatan proyek baru

    dan termasuk template aplikasi dasar

    2. Forms-based manifest, layout, dan resource editors untuk membantu

    membuat, mengubah, dan validasi sumber XML.

    3. Membangun secara langsung Android Projects, konversi untuk Android

    executables (.dex), pengemasan untuk package files (.apk), dan instalasi

    package pada Dalvik virtual machine.

    4. Android Virtual Device manager, dapat membuat dan mengatur virtual

    devices hosting emulator yang menjalankan keluaran tertentu dalam

    sistem operasi Android dan mengatur memory constraint.

    5. Emulator Android, termasuk untuk mengendalikan tampilan emulator dan

    pengaturan koneksi jaringan, dan kemampuan untuk menyimulasikan

    telepon masuk dan pesan SMS.

    6. Dalvik Debug Monitoring Service (DDMS), yang termasuk port

    forwarding, stack, heap, dan thread viewing, detil proses, dan fasilitas

    screen-capture.

  • 59

    7. Akses ke perangkat atau file sistem emulator, memungkinkan untuk

    menavigasi folder tree dan transfer files.

    8. Runtime debugging, dapat mengatur breakpoints dan view call stacks.

    9. Semua Android atau Dalvik log dan console outputs.