bab 2 tinjauan pustaka -...

32
7 Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu Berbagai penelitian mengenai aplikasi virtual gamelan telah banyak dilakukan di antaranya adalah penelitian mengenai Design of Virtual Javanese Gamelan as Learning Media. Dalam penelitian pertama ini didapatkan bahwa gamelan Jawa virtual di multimedia memungkinkan siswa untuk praktek mempelajari dan bermain gamelan sendiri. Multimedia belajar ini diharapkan dapat menjembatani siswa untuk menyukai gamelan Jawa yang nyata, sehingga gamelan Jawa sebagai warisan budaya yang memiliki nilai- nilai mulia kehidupan yang dapat diteruskan dari satu generasi ke generasi berikutnya. Dengan media ini generasi muda indonesia akan selalu mengerti dan menyukai budaya lokal dan nasional di era globalisasi (Pramudi, 2011). Penelitian kedua mengenai Android juga pernah dilakukan dengan judul Implementation of an Android Phone Based Video Streamer. Dalam penelitian kedua ini didapatkan bahwa metodologi yang digunakan untuk mengintegrasikan open source media server LIVE555 dengan MPEG4 perekam video berbasis modul perangkat lunak yang berjalan pada Android berbasis ponsel. Sistem yang diterapkan memanfaatkan kamera di ponsel untuk menangkap gambar video secara rael time yang kemudian dialirkan melalui jaringan WiFi kemudian video dapat dilihat di stasiun remote menggunakan standar VLC media player (Vun, 2010).

Upload: buibao

Post on 01-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

7

Bab 2

Tinjauan Pustaka

2.1 Penelitian Terdahulu

Berbagai penelitian mengenai aplikasi virtual gamelan telah

banyak dilakukan di antaranya adalah penelitian mengenai Design

of Virtual Javanese Gamelan as Learning Media. Dalam penelitian

pertama ini didapatkan bahwa gamelan Jawa virtual di multimedia

memungkinkan siswa untuk praktek mempelajari dan bermain

gamelan sendiri. Multimedia belajar ini diharapkan dapat

menjembatani siswa untuk menyukai gamelan Jawa yang nyata,

sehingga gamelan Jawa sebagai warisan budaya yang memiliki nilai-

nilai mulia kehidupan yang dapat diteruskan dari satu generasi ke

generasi berikutnya. Dengan media ini generasi muda indonesia

akan selalu mengerti dan menyukai budaya lokal dan nasional di era

globalisasi (Pramudi, 2011).

Penelitian kedua mengenai Android juga pernah dilakukan

dengan judul Implementation of an Android Phone Based Video

Streamer. Dalam penelitian kedua ini didapatkan bahwa metodologi

yang digunakan untuk mengintegrasikan open source media server

LIVE555 dengan MPEG4 perekam video berbasis modul perangkat

lunak yang berjalan pada Android berbasis ponsel. Sistem yang

diterapkan memanfaatkan kamera di ponsel untuk menangkap

gambar video secara rael time yang kemudian dialirkan melalui

jaringan WiFi kemudian video dapat dilihat di stasiun remote

menggunakan standar VLC media player (Vun, 2010).

Page 2: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

8

Berdasarkan penelitian-penelitian sebelumnya, penelitian ini

mengembangkan dari penelitian yang sudah ada dengan objek

penelitian gamelan dengan menggunakan teknologi Android.

Penelitian yang dibuat adalah “ Perancangan dan Implementasi

Aplikasi Virtual Gamelan Berbasis Android ” menggunakan metode

Prototype. Perbedaan dari penelitian yang sudah ada, penelitian yang

dilakukan sekarang adalah mengenai aplikasi yang menyajikan

gamelan dalam bentuk virtual berbasis Android. Diharapkan dengan

adanya aplikasi ini user dapat memainkan gamelan pada telepon

seluler sehingga lebih ringkas dan harga terjangkau.

2.2 Virtual

Menurut Kamus Besar Bahasa Indonesia pengertian virtual

adalah secara nyata (KBBI, 2008). Dengan kata lain sesuatu yang

telah divirtualkan tidak dapat lagi dilihat dengan mata atau dipegang,

tetapi mempunyai fungsi yang sama seperti sistem aslinya (Siahaan,

2011).

2.3 Gamelan

2.3.1 Pengertian Gamelan

Gamelan adalah perangkat alat musik Jawa (sunda, bali, dan

sebagainya) yang terdiri atas saron, bonang, rebab, gendang, gong,

dan sebagainya (KBBI, 2008). Sedangkan menurut (Yudoyono,

1984) gamelan adalah sebuah pernyataan musikal berupa kumpulan

alat-alat musik (bunyi-bunyian) tradisional dalam jumlah besar yang

terdapat (terutama) di Pulau Jawa. Gamelan lengkap mempunyai

kira-kira 75 alat dan dapat dimainkan oleh 30 niyaga (penabuh)

Page 3: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

9

dengan disertai 10 sampai 15 pesinden. Semua alat tersebut

dibunyikan bersama-sama atau sebagian dengan cara yang sesuai,

sehingga merupakan konsert atau kumpulan suara yang teratur

menurut tempo dan irama tertentu.

Komponen utama yang menyusun alat-alat musik gamelan

adalah bambu, logam, dan kayu. Masing-masing alat mempunyai

fungsi tersendiri dalam pagelaran musik gamelan. Misalnya, gong

berperan menutup sebuah irama yang panjang dan memberi

keseimbangan setelah sebelumnya musik dihiasi oleh irama gending

(Haryono, 2001).

2.3.2 Sejarah dan Perkembangan Gamelan

Sedemikian telah menyatunya, dalam perjalanannya gamelan

Jawa telah mempunyai sejarah yang panjang. Dan seperti musik dari

kebudayaan lain, gamelan Jawa juga mengalami perubahan dan

perkembangan yang masih berlangsung sampai saat ini. Perubahan

terutama terlihat dari tata cara serta bahan pembuatannya, sedangkan

perkembangan menyangkut segi kuantitas serta pemilikan dan

penggunaanya. Kalau dahulu hanya terbatas untuk kalangan istana,

kini siapa pun yang berminat dapat memainkanya. Sepanjang bukan

gamelan-gamelan Jawa yang termasuk dalam kategori pusaka

(Yudoyono, 1984).

2.4 Android

2.4.1 Pengertian Android

Android adalah perangkat lunak toolkit baru open source

untuk perangkat bergerak yang dikembangkan oleh Google dan

Page 4: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

10

Open Handset Allience (OHA) yaitu aliansi perangkat selular

terbuka yang terdiri dari 47 perusahaan hardware, software dan

perusahaan telekomunikasi ditujukan untuk mengembangkan standar

terbuka bagi perangkat selular. Dalam beberapa tahun Android

diharapkan bisa ditemukan didalam berjuta-juta telepon dan

perangkat gerak yang lainnya (Burnette, 2009).

Android Standart Development Kid (SDK) menyediakan

perlengkapan dan Application Programming Interface (API) yang

diperlukan untuk mengembangkan aplikasi pada platform Android

dengan menggunakan bahasa pemrograman Java (Android

Developer, 2011).

2.4.2 Sejarah dan Perkembangan Android

Pada mulanya terdapat berbagai macam sistem operasi pada

perangkat selular, di antaranya sistem operasi Symbian, Microsoft

Windows, Mobile, Mobile Linux, iPhone, dan sistem operasi lainnya.

Namun diantara sistem operasi yang ada belum mendukung standar

dan penerbitan API yang dapat dimanfaatkan secara keseluruhan dan

dengan biaya yang murah. Kemudian Google ikut berkecimpung

didalamnya dengan platform Android, yang menjanjikan

keterbukaan, keterjangkauan, open source, dan framework

berkualitas.

Pada tahun 2005, Google mengakuisisi perusahaan Android

Inc. Untuk memulai pengembangan platform Android. Di mana

terlibat dalam pengembangan ini Andy Rubin, Rich Miner, Nick

Sears, dan Chris White. Pada pertengahan 2007 sekelompok

pemimpin industri bersama-sama membentuk aliansi perangkat

Page 5: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

11

selular terbuka, Open Handset Alliance (OHA). Bagian dari tujuan

aliansi tersebut adalah berinovasi dengan cepat dan menanggapi

kebutuhan konsumen dengan lebih baik, dengan produk awalnya

adalah platform Android, di mana Android dirancang untuk

melayani kebutuhan operator telekomunikasi, manufaktur handset,

dan pengembang aplikasi. OHA berkomitmen untuk membuat

Android open source dengan lisensi Apache versi 2.0 (Hashimi,

2009).

Android pertama kali diluncurkan pada 5 November 2007, dan

smartphone pertama yang menggunakan sistem operasi Android

dikeluarkan oleh T-Mobile dengan sebutan G1 pada bulan

September 2008. Hingga saat ini Android telah merilis beberapa

versi Android untuk menyempurnakan versi sebelumnya. Selain

berdasarkan penomoran, pada setiap versi Android terdapat kode

nama berdasarkan nama-nama kue.

Hingga saat ini sudah terdapat beberapa versi yang telah

diluncurkan, diantaranya: versi 1.1 dirilis pada 9 Februari 2009,

versi 1.5 dirilis pada 30 April 2009 diberi nama Cupcake, versi 1.6

dirilis pada 15 September 2009 diberi nama Donut, versi 2.0/2.1

dirilis pada 26 Oktober 2009 diberi nama Éclair dan mengalami

perbaikan pada januari 2010. versi 2.2 dirilis mei 2010 diberi nama

Froyo (frozen yogurt )dan perbaikan pada juni 2010, versi

2.3.3/2.3.4 dirilis februari 2011 diberi nama Gingerbread dan

mengalami perbaikan pada mei 2011, versi 3.0/3.1/3.2 diberi nama

Honeycomb dan mengalamai perbaikan pada februari, mei dan juli

Page 6: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

12

2011, dan versi terakhir saat ini 4.0 dirilis pada oktober 2011 dan

diberi nama Ice Cream Sandwich (Android Developer, 2011).

2.4.3 Features Android

Features yang tersedia pada platform android saat ini antara

lain (Meier,2009):

- Tidak ada biaya perijinan (licensing), distribusi atau

pengembangan.

- Akses Wi-Fi untuk perangkat keras.

- GSM, EDGE, dan 3G untuk transfer telepon atau data,

memungkinkan user untuk membuat, menerima panggilan atau

pesan SMS, atau untuk mengirim dan mengambil data pada

jaringan mobile.

- APIs meliputi service location-based seperti untuk GPS.

- Kendali DNS termasuk perangkat keras multimedia playback dan

recording menggunakan kamera dan mikrofon.

- APIS untuk accelerometer dan perangkat keras penunjuk arah

(kompas).

- IPC untuk menyampaikan pesan.

- Berbagi data stores

- Integrasi browser berdasarkan open source engine WebKit

- Dukungan penuh untuk mengintegrasikan aplikasi pengendalian

peta sebagai bagian dari penghubung antara user dengan aplikasi.

- Dukungan Peer-to-peer (P2P) menggunakan Google Talk

- Grafis yang dioptimalkan dan didukung oleh library grafis 2D

yang terkustominasi, grafis 3D berdasarkan spesifikasi openGL

ES .

Page 7: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

13

- Mendukung audio (MP3, AAC, AMR, ), video (MPEG4,

H.264),dan gambar (JPG, PNG, GIF).

- Framework aplikasi yang mendukung penggunaan kembali

komponen aplikasi dan penggantian dari aplikasi asli.

- Mesin virtual Delvix berjalan diatas linux kernel dan

dioptimalkan untuk perangkat mobile.

- SQLite untuk penyimpanan data terstruktur.

- Multi-touch : kemampuan layaknya handset modern yang dapat

menggunakan dua jari atau lebih untuk berinteraksi dengan

peangkat.

- Lingkungan Development yang lengkap dan kaya termasuk

perangkat emulator, tools untuk debugging, profil dan kinerja

memori, dan plugin untuk Eclipse IDE.

2.4.3 Architecture Android

Gambar 2.1 Detail Architecture Android (Android Developer, 2011)

Paket sistem operasi Android tediri dari beberapa unsur seperti

terlihat pada Gambar 2.1. Secara sederhana arsitektur Android

merupakan sebuah kernel Linux dan sekumpulan pustaka C / C++

Page 8: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

14

dalam suatu framework yang menyediakan dan mengatur alur

proses aplikasi (Meier, 2009).

- Linux Kernel

Android dibangun di atas kernel Linux 2.6. Namun secara

keseluruhan Android bukanlah linux, karena dalam Android tidak

terdapat paket standar yang dimiliki oleh linux lainnya. Linux

merupakan sistem operasi terbuka yang handal dalam manajemen

memori dan proses. Oleh karena itu, pada Android hanya terdapat

beberapa service 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. Kernel juga bertindak sebagai lapisan

abstrak antara perangkat keras (hardware) dan perangkat lunak

(software) stacknya (Meier, 2009).

- Librares

Android menyertakan libraris C / C++ yang digunakan oleh

berbagai komponen dari sistem Android. Kemampuan ini disediakan

kepada developer aplikasi melalui framework aplikasi Android.

Beberapa inti libraries tercantum di bawah ini (Android Developers,

2011):

- System C library

Merupakan variasi dari implementasi BSD berasal dari

pelaksanaan sistem standar C library (libc), sesuai untuk

perangkat embedded berbasis linux.

Page 9: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

15

- Media Libraries

Merupakan Packet video berdasarkan OpenCORE; library

mendukung pemutaran rekaman dengan banyak format audio dan

video , serta file gambar ,termasuk MPEG4, H.264, MP3, AAC,

AMR, JPG DAN, PNG.

- Surface Manager

Mengelola akses ke subsistem layar, lapisan komposit 2D dan

grafis 3D dari beberapa aplikasi.

- LibWebCore

Merupakan mesin web modern yang powerfull yang baik untuk

browser pada embeddable web Android.

- SGL

Merupakan mesin grafis 2D

- 3D libraries

Merupakan implementasi berdasarkan openGL ES 1,0 API ;

libraries menggunakan perangkat keras akselerasi 3D (apabila

tersedia) atau yang disertakan, termasuk software yang sangat

mengoptimalkan 3D.

- FreeType

Merupakan bitmap dan vektor font rendering.

- SQLite

Merupakan mesin penghubung database yang kuat dan ringan

dan tersedia untuk semua aplikasi.

- Android Runtime

Pada Android tertanam paket core libraries yang menyediakan

sebagian besar fungsi Android. Inilah yang membedakan Android

Page 10: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

16

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

(Burnette, 2009) :

- Core Libraries

Android dikembangkan melalui bahasa pemrograman Java, tapi

Android Runtime bukanlah mesin virtual Java. Core libraries

Android menyediakan hampir semua fungsi yang terdapat pada

pustaka Java serta beberapa pustaka khusus Android.

- Dalvik Virtual Machine

Dalvik merupakan sebuah mesin virtual yang dikembangkan oleh

Dan Bornstein yang terinspirasi dari nama sebuah perkampungan

yang berada di Iceland. Dalvik hanyalah interpreter mesin virtual

yang mengeksekusi file dalam format Dalvik Executable (*.dex).

Dengan format ini Dalvik akan mengoptimalkan efisiensi

penyimpanan dan pengalamatan memori pada file yang

dieksekusi. Dalvik berjalan di atas kernel Linux 2.6, dengan

fungsi dasar seperti threading dan manajemen memori yang

terbatas.

- Application Framework

Framework 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

Page 11: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

17

terpenting dalam framework aplikasi Android adalah sebagai berikut

(Burnette, 2009):

- Activity Manager, berfungsi untuk mengontrol siklus hidup

aplikasi dan menjaga keadaan ”Backstack“ untuk navigasi

penggunaan.

- Content Providers, berfungsi untuk merangkum data yang

memungkinkan digunakan oleh aplikasi lainnya, seperti daftar

nama.

- Resuource Manager, untuk mengatur sumber daya yang ada

dalam program. Serta menyediakan akses sumber daya diluar

kode program, seperti karakter, grafik, dan file layout.

- Location Manager, berfungsi untuk memberikan informasi detail

mengenai lokasi perangkat Android berada.

- Notification Manager, mencakup berbagai macam peringatan

seperti, pesan masuk, janji, dan lain sebagainya yang akan

ditampilkan pada statusbar.

- Application Layer

Puncak dari diagram arsitektur Android adalah lapisan aplikasi

dan widget. Lapisan aplikasi merupakan lapisan yang paling terlihat

pada user ketika menjalankan program. User 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

Page 12: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

18

berjalan diatas lapisan aplikasi dengan menggunakan pustaka API

(Application Programming Interface) yang sama.

Aplikasi juga merupakan program yang dapat mengambil alih

keseluruhan layar dan saling berhubungan dengan user. Pada sisi

lain, Widgets ( kadang-kadang disebut Gadgets) hanya beroperasi

didalam empat persegi panjang yang kecil diantara home screen

aplikasi.

2.4.5 Komponen Aplikasi

Fitur penting Android adalah bahwa satu aplikasi dapat

menggunakan elemen dari aplikasi lain (untuk aplikasi yang

memungkinkan). Sebagai contoh, sebuah aplikasi memerlukan fitur

scroller dan aplikasi lain telah mengembangkan fitur scroller yang

baik dan memungkinkan aplikasi lain menggunakannya. Maka

developer tidak perlu lagi mengembangkan hal serupa untuk

aplikasinya, cukup menggunakan scroller yang telah ada .

Agar fitur tersebut dapat bekerja, sistem harus dapat

menjalankan aplikasi ketika setiap bagian aplikasi itu dibutuhkan,

dan pemanggilan objek Java untuk bagian itu. Oleh karenanya

Android berbeda dari sistem-sistem lain, Android tidak memiliki

satu tampilan utama program seperti fungsi main() pada aplikasi

lain. Sebaliknya, aplikasi memiliki komponen penting yang

memungkinkan sistem untuk memanggil dan menjalankan ketika

dibutuhkan (Android Developer, 2011).

Aplikasi Android terdiri dari komponen yang bebas

digabungkan, mengikat menggunakan suatu project manifest yang

menggambarkan masing-masing komponen dan bagaimana

Page 13: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

19

komponen saling berhubungan. Ada enam komponen yang

disediakan untuk membangun blok aplikasi (Meier, 2009):

- Activities

Activity merupakan bagian yang paling penting dalam sebuah

aplikasi, karena activity menyajikan tampilan visual program

yang sedang digunakan oleh user. Setiap activity dideklarasikan

dalam sebuah kelas yang bertugas untuk menampilkan antarmuka

user yang terdiri dari views dan respon terhadap event. Setiap

aplikasi memiliki sebuah activity atau lebih. Biasanya pasti akan

ada activity yang pertama kali tampil ketika aplikasi dijalankan.

Perpindahan antara activity dengan activity lainnya diatur melalui

sistem, dengan memanfaatkan activity stack. Keadaan suatu

activity ditentukan oleh posisinya dalam tumpukan acitivity,

LIFO (Last In First Out) dari semua aplikasi yang sedang

berjalan. Bila suatu activity baru dimulai, activity yang

sebelumnya digunakan maka akan dipindahkan ketumpukan

paling atas. Jika user ingin menggunakan activity sebelumnya,

cukup menekan tombol back, atau menutup activity yang sedang

digunakan, maka activity yang berada diatas akan aktif kembali.

Memory manager Android menggunakan tumpukkan ini untuk

menentukan prioritas aplikasi berdasarkan activity, memutuskan

untuk mengakhiri suatu aplikasi dan mengambil sumber daya dari

aplikasi tersebut.

Ketika activity diambil dan disimpan dalam tumpukkan

activity terdapat 4 kemungkinan kondisi transisi yang akan terjadi

(Meier, 2009):

Page 14: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

20

- Active, setiap activity yang berada ditumpukan paling atas, maka

activity tersebut akan terlihat, terfokus, dan menerima masukkan

dari user. Android akan berusaha untuk membuat activity aplikasi

ini untuk untuk tetap hidup dengan segala cara, bahkan akan

menghentikan activity yang berada dibawah tumpukkannya jika

diperlukan. Ketika activity sedang aktif, maka yang lainnya akan

dihentikan sementara.

- Paused, dalam beberapa kasus activity akan terlihat tapi tidak

terfokus pada kondisi inilah disebut paused. Keadaan ini terjadi

jika activity transparan dan tidak fullscreen pada layar. Ketika

activity dalam keadaan paused, dia terlihat active namun tidak

dapat menerima masukkan dari user. Dalam kasus ekstrim,

Android akan menghentikan activity dalam keadaan paused ini,

untuk menunjang sumber daya bagi activity yang sedang aktif.

- Stopped, ketika sebuah activity tidak terlihat, maka itulah yang

disebut stopped. Activity akan tetap berada dalam memori dengan

semua keadaan dan informasi yang ada. Namun akan menjadi

kandidat utama untuk dieksekusi oleh sistem ketika

membutuhkan sumberdaya lebih. Oleh karenanya ketika suatu

activity dalam kondisi stopped maka perlu disimpan data dan

kondisi antarmuka saat itu. Karena ketika activity telah keluar

atau ditutup, maka dia akan menjadi inactive.

- Inactive, kondisi ketika activity telah dihentikan dan sebelum

dijalankan. Inactive activity telah ditiadakan dari tumpukan

activity sehingga perlu restart ulang agar dapat tampil dan

digunakan kembali. Kondisi transisi ini sepenuhnya ditangani

Page 15: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

21

oleh manajer memori Android. Android akan memulai menutup

aplikasi yang mengandung activity inactive, kemudian stopped

activity, dan dalam kasus luar biasa paused activity juga akan di

tutup.

- Services

Suatu service tidak memiliki tampilan antarmuka, melainkan

berjalan di background untuk waktu yang tidak terbatas.

Komponen service diproses tidak terlihat, memperbarui sumber

data dan menampilkan notifikasi. Service digunakan untuk

melakukan pengolahan data yang perlu terus diproses, bahkan

ketika activity tidak aktif atau tidak tampak.

- Content Providers

Content providers digunakan untuk mengelola dan berbagi

database. Data dapat disimpan dalam file sistem, dalam database

SQLite, atau dengan cara lain yang pada prinsipnya sama. Dengan

adanya content provider memungkinkan antar aplikasi untuk

saling berbagi data. Komponen ini sangat berguna ketika sebuah

aplikasi membutuhkan data dari aplikasi lain, sehingga mudah

dalam penerapannya.

- Intents

Intens merupakan sebuah mekanisme untuk menggambarkan

tindakan tertentu, seperti memilih foto, menampilkan halaman

web, dan lain sebagainya. Intents tidak selalu dimulai dengan

menjalankan aplikasi, namun juga digunakan oleh sistem untuk

memberitahukan ke aplikasi bila terjadi suatu hal, misal pesan

masuk. Intents dapat eksplisit atau implisit, contohnya jika suatu

Page 16: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

22

aplikasi ingin menampilkan URL, sistem akan menentukan

komponen apa yang dibutuhkan oleh intents tersebut.

- Broadcast Receivers

Broadcast receivers merupakan komponen yang sebenarnya tidak

melakukan apa-apa kecuali menerima dan bereaksi

menyampaikan pemberitahuan. Sebagian besar Broadcast berasal

dari sistem misalnya, baterai sudah hampir habis, informasi zona

waktu telah berubah, atau pengguna telah merubah bahasa default

pada perangkat. Sama halnya dengan service, broadcast receivers

tidak menampilkan antarmuka user. Namun, broadcast receivers

dapat menggunakan notification manager untuk memberitahukan

sesuatu kepada user

- Notifications

Notifications merupakan kerangka pemberitahuan untuk user.

Notification memberikan isyarat atau peringatan tanpa mencuri

perhatian atau menyela aktivitas yang sedang dilakukan user.

Notifications adalah teknik yang lebih disukai untuk membuat

perhatian user dari dalam suatu layanan atau broadcast receiver .

Sebagai contoh, ketika device menerima pesan teks atau

panggilan masuk ditandai dengan menampilkan keterangan

berupa cahaya, berbunyi, menampilkan icon, atau menampilkan

pesan dialog. Sehingga user bisa cepat bertindak pada peristiwa

serupa karena memiliki aplikasi yang menggunakan notifications.

2.4.6 Tipe Aplikasi Android

Terdapat tiga kategori aplikasi pada Android yaitu (Meier,

2009) :

Page 17: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

23

- Foreground Activity

Aplikasi yang hanya dapat dijalankan jika tampil pada layar dan

tetap efektif walaupun tidak terlihat. Aplikasi dengan tipe ini

selalu mempertimbangkan siklus hidup activity, sehingga

perpindahan antar activity dapat berlangsung dengan lancar.

- Background Service

Aplikasi yang memiliki interaksi terbatas dengan user, selain dari

pengaturan konfigurasi, semua dari prosesnya tidak tampak pada

layar. Contohnya aplikasi penyaringan panggilan atau sms auto

respon.

- Intermittent Activity

Aplikasi yang masih membutuhkan beberapa masukkan dari user,

namun sebagian sangat efektif jika dijalankan di background dan

jika diperlukan akan memberi tahu user tentang kondisi tertentu.

Contohnya pemutar musik.

Untuk aplikasi yang kompleks akan sulit untuk menentukan

kategori aplikasi tersebut apalagi aplikasi memiliki ciri-ciri dari

semua kategori. Oleh karena itu, perlu mempertimbangkan

bagaimana aplikasi tersebut digunakan dan menentukan kategori

aplikasi yang sesuai.

2.4.7 Siklus Hidup Aplikasi Android

Siklus hidup aplikasi Android dikelola oleh sistem,

berdasarkan kebutuhan user, sumber daya yang tersedia, dan

sebagainya. Misalnya user ingin menjalankan browser web, pada

akhirnya sistem yang akan menentukan menjalankan aplikasi.

Sistem sangat berperan dalam menentukan apakah aplikasi

Page 18: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

24

dijalankan, dihentikan sementara, atau dihentikan sama sekali. Jika

user sedang menjalankan sebuah activity, maka sistem akan

memprioritaskan aplikasi tersebut. Sebaliknya, jika suatu activity

tidak terlihat dan sistem membutuhkan sumber daya yang lebih,

maka activity yang prioritas rendah akan ditutup (Hashimi, 2009).

Gambar 2.2 Siklus Hidup Activity Android (Burnette, 2009)

User mengatasi method ini pada activity class, dan Android

akan memanggilnya menurut waktu yang tepat (Burnette, 2009):

- onCreate(Bundle) : Dipanggil ketika activity pertama kali dibuat,

disini user melakukan pengaturan statis secara normal, misal

membuat view, memasukkan data dan sebagainya. Method ini

mempassing obyek yang berisi status activity sebelumnya, jika

status tersebut sebelumnya telah di catat . Selalu diikuti dengan

onStart( ).

- onStart() : Dipanggil sebelum activity terlihat moleh user. Selalu

diikuti onResume( ).

Page 19: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

25

- onResume( ) : Dipanggil sebelum activity mulai berinteraksi

dengan user. Pada titik ini, activity berada pada stack activity

yang paling atas. Selalu diikuti onPause( ).

- onPause( ) : Dipanggil ketika sistem akan memulai activity lain.

Method ini biasa digunakan untuk melakukan perubahan yang

tidak disimpan kedalam data yang tetap, menghentikan animasi,

dan hal lain yang memakai CPU dan yang lainnya. Diikuti

onResume( ) jika activity tetap berada di layar atau onStop( ) jika

activity menjadi tidak terlihat oleh user.

- onStop( ) : Dipanggil ketika activity tidak lagi terlihat oleh user.

Ini mungkin terjadi karena kemudian dihancurkan atau jika

activity lain yang sudah ada atau yang baru telah dilanjutkan.

Diikuti dengan onRestart( ) jika activity kembali berinteraksi

dengan user atau dengan onDestroy( ) jika activity akan ditutup.

- onRestart( ) : Dipanggil setelah activity dihentikan, dan

merupakan prioritas untuk di jalankan kembali dan selalu diikuti

onStart( ).

- onDestroy( ) : Dipanggil sebelum activity dihancurkan, ini

merupakan panggilan terakhir yang diterima activity. Bisa

dikatakan activity diakhiri ( finish( ) ), atau karena sistem secara

temporary menghancurkan instant activity untuk menghemat

ruang.

- onSaveInstanceState(Bundle) : Android akan memanggil method

ini untuk mengizinkan activity menyimpan setiap contoh

keadaan, seperti posisi kursor dalam sebuah text field. Pada

umunya user tidak akan membutuhkan untuk mengatasi

Page 20: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

26

pelaksanaan penyimpanan keadaan, karena pelaksanaan

penyimpanan untuk semua tampilan user dikontrol secara

otomatis.

- onRestoreInstanceState(Bundle) : Dipanggil ketika activity di

inisialisasi ulang sejak keadaan sebelum disimpan dari onSave-

InstanceState( ). Default implementasi dikembalikan dari

keadaan tampilan user.

Activity tidak berjalan di dalam bagian yang mungkin akan

dihentikan atau proses linux menempatkannya yang mungkin akan

dihentikan pada setiap waktu pada setiap perintah untuk membuat

tempat activity baru. Sementara itu, method onPause( ) mungkin

akan jadi method terakhir yang dipanggil dalam activity.

Android menjalankan setiap aplikasi dalam proses secara

terpisah, yang masing-masing memiliki mesin virtual pengolah

sendiri, dengan melindungi penggunaan memori pada aplikasi.

Selain itu juga Android dapat mengontrol aplikasi mana yang layak

menjadi prioritas utama. Karena itu Android sangat sensitive dengan

siklus hidup aplikasi dan komponen-komponennya. Gambar 1.2

menunjukkan prioritas dari aplikasi (Meier, 2009).

Page 21: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

27

Gambar 2.3 Prioritas Aplikasi Berdasarkan Activity (Meier, 2009)

- Active Processes (foreground)

Proses yang sedang dibutuhkan oleh user. Suatu proses

dipertimbangkan menjadi yang terdepan jika berada pada kondisi

(Android Developer, 2011) :

- Menjalankan sebuah activity di mana user sedang berinteraksi

dengannya (Method Objek Activity onResume( ) sedang

dipanggil).

- Merupakan host service yang terkait dengan activity di mana

user sedang berinteraksi dengannya.

- Memiliki obyek BroadcastReceiver yang mengeksekusi

method onReceive( ).

- Memiliki obyek service yang mengeksekusi satu dari lifecycle

callback (onStart(), onCreate(), atau onDestroy()).

Page 22: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

28

- Visible Processes

Merupakan proses tidak memiliki komponen yang di depan,

tetapi tetap mempengaruhi apa yang user lihat dilayar. Proses ini

dipertimbangkan menjadi terlihat ketika salah satu dari kedua

kondisi ini terjadi :

- Host dari sebuah activity yang tidak berada didepan, teatapi

tetap terlihat oleh user (method onPause( ) dipanggil). Ini

mungkin terjadi, misalnya, jika activity yang terdepan

merupakan dialog yang mengijinkan activity sebelumnya

terlihat pada latar belakang.

- Host dari sebuah service yang terikat pada activity yang

terlihat.

Proses yang terlihat dipertimbangkan menjadi sangat penting

dan tidak akan dimatikan kecuali jika itu diperlukan untuk

menjaga foreground berjalan.

- Started Service Processes

Suatu proses service yang menjalankan service dengan method

startService ( ) dan tidak berada kedalam salah satu dari dua

kategori diatas. Walaupun proses service tidak secara langsung

mengikat pada apapun yang dilihat user. Pada umumnya

melakukan sesuatu yang dilakukan oleh user seperti memainkan

file.mp3 pada background, atau mendownload data pada network,

maka dari itu sistem menjaga mereka tetap berjalan, kecuali

memori tidak mencukupi untuk memelihara semua foreground

dan proses yang terlihat.

Page 23: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

29

- Background Processes

Proses yang memegang suatu activity yang saat ini tidak terlihat

oleh user (method obyek onStop( ) dipangil). Proses ini tidak

secara langsung berpengaruh kepada user, dan dapat dimatikan

kapanpun untuk mengklaim memori untuk proses foreground,

terlihat atauproses service. Jika sebuah activity

mengimplementasi method lifecycle secara benar, dan

mengcapture status saat itu, mematikan proses tidak membuat

user terganggu.

- Empty Processes

Proses untuk meningkatkan keseluruhan pencapaian sistem,

Android sering mempertahankan aplikasi didalam memori setelah

mereka sudah mencapai akhir dari umur hidup mereka. Android

memelihara cache ini untuk meningkatkan proses start-up

aplikasi ketika kembali dihidupkan atau dipakai. Proses ini secara

rutin mematikan ketika diperlukan.

2.4.8 Kelebihan Android

Sudah banyak platform untuk perangkat selular saat ini,

termasuk didalamnya Symbian, iPhone, Windows Mobile,

Blackberry, Java Mobile Edition, Linux Mobile (LiM0), dan banyak

lagi. Namun ada beberapa hal yang menjadi kelebihan Android.

Walaupun beberapa fitur-fitur yang ada telah muncul sebelumnya

pada platform lain, Android adalah yang pertama menggabungkan

hal seperti berikut (Burnette, 2009) :

Page 24: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

30

- A truly open, free development platform based on Linux and

opensource. Developer perangkat menyukai hal ini karena dapat

membangun platform yang sesuai yang diinginkan tanpa harus

membayar royality. Sementara pengembang software menyukai

karena Android dapat digunakan diperangkat manapun dan tanpa

terikat oleh vendor manapun.

- A component-based architecture inspired by Internet mashups.

Bagian dalam sebuah aplikasi dapat digunakan oleh aplikasi

lainnya, bahkan dapat diganti dengan komponen lain yang sesuai

dengan aplikasi yang dikembangkan.

- Tons of built-in services out of the box, kemudahan dalam

menggunakan berbagai macam layanan pada aplikasi seperti

penggunaan layanan pencarian lokasi, database SQL, browser

dan penggunaan peta. Semua sudah tertanam pada Android

sehingga memudahkan dalam pengembangan aplikasi.

- Automatic management of the application life cycle, setiap

program terjaga antara satu sama lain oleh berbagai lapisan

keamanan, sehingga kerja sistem menjadi lebih stabil. User tak

perlu takut dalam menggunakan aplikasi pada perangkat yang

memiliki memori terbatas.

- High-quality graphics and sound, dengan adanya dukungan 2D

grafis dan animasi yang diilhami oleh Flash menyatu dalam 3D

menggunakan OpenGL memungkinkan membuat aplikasi

maupun game yang berbeda.

- Portability across a wide range of current and future hardware,

aplikasi dapat digunakan pada perangkat yang ada saat ini

Page 25: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

31

maupun yang akan datang. Semua program ditulis dengan

menggunakan bahasa pemrograman Java dan dieksekusi oleh

mesin virtual Dalvik, sehingga kode program portabel antara

ARM, X86, dan arsitektur lainnya. Sama halnya dengan dukungan

bermacam cara inputan seperti penggunaan keyboard, layar

sentuh, trackball dan resolusi layar semua dapat disesuaikan

dengan program.

2.5 Class MediaPlayer Android

Gambar 2.4 Diagram Bagian Mediaplayer dari Android API Reference (Every,

2009).

Page 26: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

32

Kontrol playback audio atau video file dan arus dikelola

sebagai bagian dari mesin. Gambar 2.4 menunjukkan siklus hidup

dan bagian-bagian dari objek MediaPlayer yang dikendalikan oleh

pengoperasian pemutaran yang didukung oleh kontrol. Bentuk

lengkung mewakili bagian MediaPlayer, dapat berada didalam

lengkungan mewakili operasi untuk mengontrol pemutaran yang

mendorong transisi keadaan objek. Ada dua jenis lengkungan. Tanda

panah dengan ujung tunggal mewakili metode panggilan sinkron,

sementara tanda panah dengan ujung ganda merupakan pemanggilan

metode asynchronous (Android Developer, 2011).

Diagram Bagian Mediaplayer dari Android API Reference

dapat dilihat bahwa objek MediaPlayer memiliki keadaan berikut:

- Ketika sebuah objek MediaPlayer hanya dibuat menggunakan

new atau setelah reset() dipanggil, itu adalah dalam keadaan

idle, dan setelah release() dipanggil merupakan bagian akhir.

Antara dua bagian siklus hidup dari objek MediaPlayer.

- Ada sedikit perbedaan penting antara objek MediaPlayer

baru dibangun dan objek MediaPlayer setelah reset()

dipanggil. Apaila terjadi kesalahan dalam menuliskan

kode, maka membutuhkan metode seperti

getCurrentPosition(),getDuration(),getVideoHeight(),getV

ideoWidth(),setAudioStreamType(int),setLooping(boolean

),setVolume(float, float), pause(), start(), stop(),

seekTo(int), prepare() or prepareAsync() dalam keadaan

idle untuk kedua kasus. Jika salah satu metode ini benar

setelah objek MediaPlayer dibangun, user disediakan

Page 27: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

33

metode callback OnErrorListener.onError dan tidak akan

dipanggil oleh mesin pemutar internal dan bagian objek

tetap tidak akan berubah, tetapi jika metode ini disebut

tepat setelah reset(), user disediakan metode callback

OnErrorListener.onError() dan akan dipanggil oleh mesin

pemutar internal dan objek akan ditransfer ke bagian

kesalahan.

- Selanjutnya, objek yang dibuat menggunakan

MediaPlayer baru berada di bagian Idle, sementara itu

yang dibuat dengan salah satu kelebihan beban

menciptakan metode yang nyaman tidak dalam keadaan

idle. Bahkan, objek berada dalam keadaan prepared jika

dibuat menggunakan metode create sukses.

- Secara umum, beberapa operasi mengontrol pemutaran

mungkin tidak berfungsi karena berbagai alasan, seperti tidak

didukung audio / video format, buruknya interleaved audio /

video, resolusi terlalu tinggi, streaming timeout, dan

sejenisnya. Dengan demikian, kesalahan pelaporan dan

pemulihan merupakan perhatian penting dalam situasi seperti

ini. Terkadang karena kesalahan pemrograman, memanggil

operasi kontrol playback dalam keadaan tidak valid juga dapat

terjadi. Di dalam semua kondisi kesalahan, mesin pemutar

internal meminta user untuk memanggil metode

OnErrorListener.onError(), jika OnErrorListener telah

didaftarkan terlebih dahulu melalui

Page 28: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

34

setOnErrorListener(android.media.MediaPlayer.

OnErrorListener).

- Saat terjadi kesalahan, objek MediaPlayer masuk dalam

keadaan Error (kecuali seperti yang disebutkan di atas),

bahkan jika kesalahan error listener belum terdaftar oleh

aplikasi.

- Perintah untuk menggunakan kembali objek MediaPlayer

dalam keadaan Error dan mengembalikan dari error,

reset() dapat dipanggil untuk mengembalikan objek ke

keadaan idle sebelumnya.

- IllegalStateException dieksekusi untuk mencegah

kesalahan pemrograman seperti memanggil prepare(),

prepareAsync(), atau salah satu kelebihan beban

setDataSource metode dalam keadaan tidak valid.

- Memanggil setDataSource(FileDescriptor), atau

setDataSource(String), atau setDataSource(Context, Uri), atau

setDataSource(FileDescriptor, long, long) transfer objek

MediaPlayer dalam keadaan idle ke keadaan diinisialisasi.

- IllegalStateException akan dieksekusi jika

setDataSource() dipanggil di bagian lain.

- IllegalArgumentException dan IOException mungkin

dibuang dari metode setDataSource karena overload.

- Sebuah objek MediaPlayer harus terlebih dahulu memasukkan

keadaan prepared sebelum pemutaran dapat dimulai.

Page 29: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

35

- Ada dua cara (synchronous vs. asynchronous) bahwa

bagian prepared dapat dihubungi, baik panggilan untuk

prepare() (synchronous) yang mentransfer objek untuk

bagian prepared setelah metode kembali dipanggil, atau

panggilan untuk prepareAsync() (asynchronous) yang

pertama transfer objek untuk bagian preparing setelah

panggilan ulang (yang terjadi hampir benar) sedangkan

mesin pemutar internal yang terus bekerja pada persiapan

sisa pekerjaan hingga pekerjaan persiapan selesai. Ketika

persiapan selesai atau saat prepared() mengembalikan

panggilan, mesin pemutar internal kemudian dipanggil,

user disediakan metode callback onPrepared() dari

interface OnPreparedListener, jika suatu

OnPreparedListener terdaftar terlebih dahulu melalui

setOnPreparedListener(Android.media.MediaPalayer.On

PreparedListener).

- preparing merupakan keadaan sementara, dan tindakan

memanggil banyak metode dapat berakibat objek

MediaPlayer dalam keadaan preparing tidak terdefinisi.

- IllegalStateException akan dieksekusi jika prepare() atau

prepareAsync() dipanggil di bagian lain.

- Sementara di bagian prepaed, properti seperti volume

audio / suara, screenOnWhilePlaying, perulangan dapat

disesuaikan dengan menerapkan metode yang sesuai.

- Untuk memulai pemutaran, start() harus dipanggil. Setelah

start() berhasil dikembalikan, objek MediaPlayer dalam

Page 30: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

36

keadaan Started. isPlaying() dapat dipanggil untuk menguji

apakah objek MediaPlayer dalam keadaan Started.

- Sementara dalam keadaan started, mesin pemutar internal

memanggil OnBufferingUpdateListener.

onBufferingUpdate() yang disediakan user metode

callback jika OnBufferingUpdateListener telah terdaftar

terlebih dahulu melalui setOnBufferingUpdateListener

(OnBufferingUpdateListener). Panggilan balik ini

memungkinkan aplikasi untuk melacak keadaan buffering

sementara streaming audio / video.

- Memanggil start() tidak berpengaruh pada objek

MediaPlayer yang sudah dalam keadaan Started.

- Pemutaran dalam keadaan Paused dan Stopped, dan posisi

pemutaran saat ini dapat disesuaikan. Pemutaran dapat di

hentikan sementara melalui pause(). Ketika panggilan untuk

kembali pause(), objek MediaPlayer memasuki keadaan

dihentikan sementara. Pada transisi dari bagian start bagian

puase dan sebaliknya terjadi asynchronous dalam mesin

pemutar. Sehingga diperlukan beberapa waktu sebelum bagian

diperbarui dalam panggilan untuk isPlaying (), dan dapat

menjadi jumlah detik dalam kasus konten streaming.

- Memanggil start() untuk melanjutkan pemutaran objek

MediaPlayer yang Paused, dan posisi pemutaran kembali

sama seperti saat paused. Ketika panggilan untuk

Page 31: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

37

mengembalikan start(), objek paused MediaPlayer

kembali ke keadaan Started.

- Memanggil pause() tidak memiliki pengaruh pada objek

MediaPlayer yang sudah dalam keadaan paused.

- Memanggil stop() untuk menghentikan pemutaran dan

menyebabkan MediaPlayer dalam keadaan Started, Paused,

Prepared atau PlaybackCompleted untuk memasuki bagian

Stopped.

- Setelah di bagian Stopped, pemutaran tidak dapat dimulai

sampai prepare() atau prepareAsync() dipanggil untuk

mengatur objek MediaPlayer ke bagian Prepared lagi.

- Memanggil stop() tidak memiliki pengaruh pada objek

MediaPlayer yang sudah dalam keadaan Stopped.

- Posisi pemutaran dapat disesuaikan dengan panggilan untuk

seekTo(int).

- Meskipun asynchronuous seekTo(int) dipanggil kembali

dengan cara yang benar, operasi seek biasanya digunakan

sebelum selesai, terutama untuk audio / video-streaming.

Ketika operasi aktual seek selesai, mesin pemutar

panggilan internal meminta user menyediakan

OnSeekComplete.onSeekComplete() jika

OnSeekCompleteListener yang telah terdaftar sebelumnya

melalui setOnSeekCompleteListener

(OnSeekCompleteListener).

Page 32: Bab 2 Tinjauan Pustaka - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1733/3/T1_672007003_BAB II… · akan selalu mengerti dan menyukai budaya lokal dan nasional di

38

- seekTo(int) juga dapat disebut di bagian-bagian lain,

seperti bagian Prepared, Paused dan PlaybackCompleted.

- Selanjutnya, posisi pemutaran aktual saat ini dapat diambil

dengan panggilan getCurrentPosition(), yang sangat

membantu untuk aplikasi seperti pemutar musik yang

perlu untuk melacak progress pemutaran.

- Bila pemutaran mencapai ujung stream, selanjutnya pemutaran

akan selesai.

- Jika modus perulangan sedang diatur untuk truewith

setLooping(boolean), objek MediaPlayer akan tetap pada

bagian Started.

- Jika modus perulangan ditetapkan ke false, mesin pemutar

panggilan user disediakan metode callback,

OnCompletion.onCompletion(), jika suatu

OnCompletionListener terdaftar terlebih dahulu melalui

setOnCompletionListener(OnCompletionListener),

melibatkan sinyal dari objek callback yang sekarang

dalam keadaan PlaybackCompleted.

- Ketika dalam keadaan PlaybackCompleted, memanggil

start() bisa mengembalikan pemutaran kembali dari awal

sumber audio / video.