View
95
Download
24
Category
Preview:
DESCRIPTION
Laporan
Citation preview
LAPORAN KERJA PRAKTEK
PEMBUATAN APLIKASI CLIENT-SERVER LIVE VIDEO STREAMING
UNTUK CHANNEL TV PADA PT. SIMS JOGJA MEDIANET BERBASIS
PLATFORM ANDROID
PT. SARANA INSAN MUDA SELARAS (SIMS) JOGJA
MEDIANET
Disusun Oleh :
Akhmad Junaedi / 21120112140085
PROGRAM STUDI SISTEM KOMPUTER
FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO
SEMARANG
2015
ii
LEMBAR PENGESAHAN PROGRAM STUDI SISTEM KOMPUTER
PEMBUATAN APLIKASI CLIENT-SERVER LIVE VIDEO STREAMING
UNTUK CHANNEL TV PADA PT SIMS JOGJA MEDIANET BERBASIS
PLATFORM ANDROID
Disusun oleh:
Akhmad Junaedi / 21120112140085
disetujui dan disahkan sebagai
Laporan Kerja Praktik
Semarang, 13 Mei 2015
Mengetahui,
Ketua Program Studi
Sistem Komputer
Ir. Kodrat Iman Satoto, MT
NIP. 196310281993031002
Pembimbing Kerja Praktik
Kurniawan Teguh Martono,ST,MT
NIP. 198303192010121002
iii
LEMBAR PENGESAHAN PROGRAM STUDI SISTEM KOMPUTER
PEMBUATAN APLIKASI CLIENT-SERVER LIVE VIDEO STREAMING
UNTUK CHANNEL TV PADA PT SIMS JOGJA MEDIANET BERBASIS
PLATFORM ANDROID
Disusun oleh:
Akhmad Junaedi / 21120112140085
disetujui dan disahkan sebagai
Laporan Kerja Praktik
Yogyakarta, 13 Mei 2015
Mengetahui,
Kepala Cabang PT Sarana Insan Muda
Selaras Yogyakarta
Ihwani Joko Prasetyo
Pembimbing Lapangan
Eksan Wahyu Nugroho, S. Kom
iv
ABSTRAK
Laporan yang berjudul “Pembuatan Aplikasi Client-Server Live Video Streaming UntukChannel Tv Pada Pt Sims Jogja Medianet Berbasis Platform Android” ini dibuat untuk memenuhisyarat dalam melakukan kerja praktik dari program studi Sistem Komputer Fakultas TeknikUniversitas Diponegoro. Kerja praktik ini dilakukan untuk memenuhi kewajiban dalampengambilan mata kuliah pada program studi. Tujuan diadakannya kerja praktik yaitu memberikangambaran kepada mahasiswa tentang lingkungan kerja yang akan dihadapinya, serta untukmemberikan pengalaman kerja dan memperluas wawasannya.
Kerja Praktik ini dilaksanakan di PT SIMS Jogja Medianet yang berlokasi di KotaYogyakarta, DIY. Perusahaan ini bergerak dalam bidang layanan multimedia seperti layanan ISP,broadcasting tv dan radio, VPN, broadbrand multimedia access, dan sebagainya. Perusahaan inimasih menggunakan televisi sebagai media penyiarannya. Akan tetapi, perkembangan perangkatbergerak seperti smartphone saat ini sangat banyak digunakan oleh banyak orang. Dimanapun dankapanpun semua orang dapat menggunakan smartphone tersebut.
Oleh karena itu, pada Kerja Praktik ini dibuatlah sebuah aplikasi live video streaming untukmengakses siaran televisi pada PT SIMS Jogja Medianet berbasis platform android yang sangatmudah digunakan dengan antarmuka yang interaktif. Dalam pembuatan aplikasi ini menggunakanAndroid Studio, bahasa pemrograman Java, bahasa pemrograman PHP, JSON, dan menggunakansuatu DBMS yaitu MySQL. Diharapkan dengan adanya aplikasi ini, para pelanggan PT SIMS JogjaMedianet dapat mengakses layanan siaran televisi saat dimanapun dan kapanpun melaluismartphone yang mereka miliki.
Kata Kunci : video streaming, Android, PHP, JSON, MySQL, Jogja Medianet
v
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa atas limpahan berkah, rahmat,
karunia, serta hidayah-Nya sehingga Laporan Kerja Praktik dengan judul
“Pembuatan Aplikasi Client-Server Live Video Streaming untuk Channel TV pada
PT SIMS Jogja Medianet Berbasis Platform Android” dapat selesai dan disusun dan
diselesaikan dengan baik. Laporan Praktikum Kerja Praktik ini di susun dalam
rangka melengkapi tugas mata kuliah Kerja Praktik setelah melakukan praktik
di PT SIMS Jogja Medianet.
Dengan disusunnya laporan ini, tidak lupa penyusun menyampaikan terima
kasih kepada:
1. Tuhan Yang Maha Esa atas segala limpahan rahmat dan karunia-Nya.
2. Bapak Kurniawan Teguh Martono,ST,MT selaku dosen pembimbing KP.
3. Ibu Ike Pertiwi Windasari, ST, MT selaku dosen koordinator Kerja Praktik.
4. Bapak Eksan Wahyu Nugroho, S. Kom selaku pembimbing selama Kerja
Praktik.
5. Orangtua dan keluarga yang selalu membimbing dan mendoakan saya.
6. Teman-teman saya yang membantu saya selama proses Kerja Praktik
berlangsung.
7. Pihak-pihak lain yang tidak dapat disebutkan satu-persatu.
Penulis menyadari masih banyak kekurangan dalam penyusunan Laporan
ini, oleh karena itu penulis meminta maaf dan berharap semoga Laporan ini dapat
berguna bagi pembaca.
Semarang, 13 Mei 2015
Penulis
vi
DAFTAR ISI
LAPORAN KERJA PRAKTEK.............................................................................. i
LEMBAR PENGESAHAN PROGRAM STUDI SISTEM KOMPUTER............. ii
LEMBAR PENGESAHAN PROGRAM STUDI SISTEM KOMPUTER............ iii
ABSTRAK ............................................................................................................. iv
KATA PENGANTAR ............................................................................................ v
DAFTAR ISI.......................................................................................................... vi
DAFTAR GAMBAR ........................................................................................... viii
BAB I PENDAHULUAN...................................................................................... 1
1.1. Latar Belakang Masalah ........................................................................... 1
1.2. Tujuan....................................................................................................... 2
1.3. Tempat dan Waktu ................................................................................... 2
1.4. Batasan Masalah....................................................................................... 2
1.5. Sistematika Penyusunan ........................................................................... 3
BAB II PT SIMS JOGJA MEDIANET YOGYAKARTA.................................... 4
2.1. Profil Perusahaan...................................................................................... 4
2.2. Visi ........................................................................................................... 4
2.3. Misi........................................................................................................... 4
2.4. Strategi Usaha........................................................................................... 5
2.5. SIMS Group ............................................................................................. 5
2.6. Struktur Organisasi................................................................................... 7
BAB III TINJAUAN PUSTAKA .......................................................................... 8
3.1. PHP........................................................................................................... 8
3.2. Notepad++................................................................................................ 8
3.3. JAVA........................................................................................................ 9
3.4. JSON ........................................................................................................ 9
3.5. Android OS............................................................................................. 10
3.6. Android Studio ....................................................................................... 11
3.7. Android SDK.......................................................................................... 11
3.8. MySQL................................................................................................... 12
vii
BAB IV PEMBUATAN APLIKASI CLIENT-SERVER LIVE VIDEO
STREAMING UNTUK CHANNEL TV PADA PT SIMS JOGJA MEDIANET
BERBASIS PLATFORM ANDROID.................................................................. 13
4.1. Gambaran Umum Aplikasi..................................................................... 13
4.2. Perancangan Database ............................................................................ 14
4.2.1. Membuat Database.......................................................................... 14
4.2.2. Membuat Tabel dalam Database..................................................... 14
4.2.3. Memasukkan Data Pada Tabel........................................................ 15
4.3. Membuat Script PHP.............................................................................. 15
4.4.1. Koneksi Database............................................................................ 16
4.4.2. Mengambil Data Pada Tabel ........................................................... 16
4.4. Perancangan Aplikasi Android............................................................... 16
4.4.1. Desain Antarmuka Aplikasi ............................................................ 16
4.4.2. Membuat Java Class Pada Setiap Activity...................................... 18
BAB V PENUTUP............................................................................................... 34
5.1. Kesimpulan............................................................................................. 34
5.2. Saran ....................................................................................................... 34
DAFTAR PUSTAKA ........................................................................................... 35
LAMPIRAN
viii
DAFTAR GAMBAR
Gambar 2.1 Skema SIMS Group ............................................................................ 5
Gambar 2.2 Bagan Struktur PT SIMS Jogja Medianet ........................................... 7
Gambar 4.1 Skema Aplikasi Android yang dibangun .......................................... 13
Gambar 4.2 Query create database ....................................................................... 14
Gambar 4.3 Tampilan struktur dari tabel stream .................................................. 15
Gambar 4.4 Tampilan dari tabel stream beserta isi data ....................................... 15
Gambar 4.5 Tampilan Desain Layout activity_main ............................................ 17
Gambar 4.6 Tampilan Desain Layout activity_list_video..................................... 17
Gambar 4.7 Tampilan Desain Layout activity_player .......................................... 18
Gambar 4.8 Tampilan Desain Layout activity_about ........................................... 18
Gambar 4.9 Listing Code dari alamat server......................................................... 20
Gambar 4.10 Listing Code dari ListingAdapterStream.java................................. 22
Gambar 4.11 Listing code untuk melakukan request ke server (1)....................... 24
Gambar 4.12 Listing code untuk melakukan request ke server (2)....................... 24
Gambar 4.13 Hasil respon JSON melalui web browser........................................ 24
Gambar 4.14 Listing code untuk memproses respon JSON.................................. 25
Gambar 4.15 Listing code dari PlayerActivity (1) ................................................ 29
Gambar 4.16 Listing code dari PlayerActivity (2) ................................................ 29
Gambar 4.17 Listing code permission dalam AndroidManifest.xml .................... 31
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Teknologi di jaman sekarang ini sangat berkembang dengan pesat. Banyak
bermunculan suatu inovasi-inovasi baru dalam dunia teknologi di dunia ini setiap
tahunnya. Seperti teknologi broadcast tv, sekarang banyak perusahaan di Indonesia
yang menyediakan jasa penyiaran televisi berbayar berbasis televisi satelit maupun
televisi kabel yang memberikan siaran-siaran televisi dengan mencakup siaran di
seluruh dunia dengan kualitas gambar HDTV.
PT SIMS Jogja Medianet merupakan salah satu perusahaan di Indonesia yang
menyediakan jasa penyiaran televisi berbayar berbasis televisi satelit maupun
televisi kabel. Perusahaan ini masih menggunakan televisi sebagai media
penyiarannya.
Akan tetapi, perkembangan perangkat bergerak seperti smartphone saat ini
sangat banyak digunakan oleh banyak orang. Dimanapun dan kapanpun semua
orang dapat menggunakan smartphone tersebut. Hal ini sangat memudahkan
seseorang untuk mendapatkan informasi-informasi yang terkini dari berbagai
penjuru dunia. Sehingga, banyak orang yang mempunyai banyak aktivitas jarang
menonton siaran televisi secara langsung untuk mendapatkan informasi terkini
karena terbantu oleh informasi yang didapatkan dengan mengakses internet melalui
smartphone.
Melihat permasalah tersebut, PT SIMS Jogja Medianet ingin
mengembangkan layanan siaran televisinya ke perangkat bergerak yaitu
smartphone agar para pelanggannya dapat mengakses layanan siaran televisi saat
dimanapun dan kapanpun melalui smartphone yang mereka miliki. Oleh karena itu,
saya membuat sebuah aplikasi live video streaming untuk mengakses siaran televisi
pada PT SIMS Jogja Medianet berbasis platform android yang sangat mudah
digunakan dengan antarmuka yang interaktif.
2
1.2 Tujuan
Tujuan dilaksanakannya kerja praktik ini antara lain adalah sebagai
berikut:
1. Menambah wawasan dan gambaran tentang iklim dunia kerja yang
sebenarnya.
2. Membuat sebuah aplikasi client-server live video streaming untuk channel tv
pada PT SIMS Jogja Medianet berbasis platform android untuk mempermudah
pelanggan dalam menonton siaran televisi secara langsung melalui smartphone
yang dimiliki oleh masing-masing pelanggan.
3. Mempersiapkan pengembangan aplikasi client-server berbasis platform android
yang lebih kompleks dan membutuhkan banyak data dengan menggunakan
eksternal database seperti MySQL.
1.3 Tempat Dan Waktu
Kerja Praktik dilaksanakan di PT SIMS Jogja Medianet Yogyakarta. Kerja
Praktik dilakukan mulai tanggal 19 Januari 2015 s/d 27 Februari 2015.
1.4 Batasan Masalah
Batasan masalah dalam penyusunan laporan kerja praktik ini adalah
sebagai berikut :
1. Laporan membahas perangkat keras dan perangkat lunak yang digunakan
dalam pembuatan aplikasi client-server live video streaming untuk channel tv
pada PT SIMS Jogja Medianet berbasis platform android.
2. Laporan membahas cara pembuatan aplikasi client-server live video streaming
berbasis platform android dengan menggunakan bahasa pemrograman Java
menggunakan Android Studio.
3. Laporan membahas cara menghubungkan aplikasi client-server live video
streaming berbasis platform android dengan database MySQL menggunakan
script server side PHP.
3
4. Laporan membahas unsur apa saja yang ada pada aplikasi client-server live
video streaming untuk channel tv pada PT SIMS Jogja Medianet berbasis
platform android.
1.5 Sistematika Penyusunan
Untuk menjelaskan kerja praktik yang dilakukan di PT SIMS Jogja Medianet
Yogyakarta, penyusun menyusun laporan secara garis besar sebagai berikut.
BAB I PENDAHULUAN
Merupakan uraian umum yang memuat latar belakang masalah,
tujuan dan manfaat, tempat dan waktu pelaksanaan, metode
pengumpulan data, pembatasan masalah, dan sistematika penyusunan
laporan.
BAB II GAMBARAN UMUM PERUSAHAAN
Berisi informasi tentang PT SIMS Jogja Medianet Yogyakarta,
kegiatan, visi dan misi, serta struktur PT SIMS Jogja Medianet
Yogyakarta.
BAB III TINJAUAN PUSTAKA
Bab ini berisi dasar teori tentang penggunaan PHP, JSON, Notepad++,
Android Studio, dan Java serta Android SDK untuk pembuatan aplikasi
dan peloporan ini, dan sebagai penyimpanan data digunakan MySQL.
BAB IV PELAKSANAAN KERJA PRAKTIK
Bab ini berisi langkah-langkah pembuatan aplikasi client-server live
video streaming untuk channel tv pada PT SIMS Jogja Medianet berbasis
platform android.
BAB V PENUTUP
Bab ini berisi kesimpulan dan saran dari hasil kerja praktik yang telah
dilaksanakan di PT SIMS Jogja Medianet Yogyakarta.
DAFTAR PUSTAKA
LAMPIRAN
4
BAB II
PT SIMS JOGJA MEDIANET YOGYAKARTA
2.1 Profil Perusahaan
PT Saranainsan Mudaselaras (PT SIMS) adalah sebuah perusahaan yang
bergerak dalam bidang layanan multimedia sebagaimana disebutkan dengan lisensi
nasional dalam bidang jasa layanan multimedia sesuai Surat Keterangan Laik
Operasi No. 1270/PT.003/DITTEL/SRT/2002 dari Direktur Jenderal Pos dan
Telekomunikasi sebagai berikut : Broadcasting TV dan Radio, Fast Internet,
Broadband Multimedia Access, E-Commerce, VPN (Virtual Private Network),
Video on Demand, Video Conferencing, TeleCommuting, Telemedicine,
Telelearning, Interactive Game.
Sebagai perusahaan yang menyediakan total solusi kepada pelanggan, saat ini
PT SIMS mengembangkan layanan berbasis satelit yaitu SCPC/DVB dan DVB-
RCS sebagai salah satu wujud komitmen untuk meningkatkan penetrasi akses
informasi ke masyarakat Indonesia seluas-luasnya.
2.2 Visi
Penyelenggara Jaringan dan Jasa Multimedia yang terdepan dalam kualitas
dan terlengkap dalam konten.
2.3 Misi
1. Memberikan solusi jaringan, layanan dan produk multimedia yang terfokus
kepada kepuasan pelanggan dengan memberikan kualitas terbaik.
2. Menciptakan trend services dan pengkayaan konten multimedia dengan
pengembangan dan proses innovasi yang berkelanjutan.
3. Mendorong transformasi masyarakat informasi menuju berpengetahuan
dengan penguatan pada budaya, produktifitas, pertumbuhan, cerdas
bermoral dan keluhuran budi pekerti.
5
4. Membangun sinergi dan kemitraan dengan kompetensi-kompetensi lokal
dan nasional dalam pengembangan produk dan aplikasi multimedia yang
berdaya saing.
5. Memberikan tempat dan dukungan pada sdm yang berusaha untuk menjadi
profesional yang terbaik dalam produk dan layanan multimedia.
6. Menjadi mitra pemerintah dalam menciptakan iklim yang baik dalam
pengembangan industri multimedia dan mempercepat implementasi services
dan jaringan multimedia di masyarakat.
2.4 Strategi Usaha
1. Strategi kemitraan dengan perusahaan-perusahaan lokal dan nasional yang
sudah berpengalaman
2. Kompetensi yang kuat dalam riset dan pengembangan pemasaran
3. Pengembangan konsep Cyber Estate (pemanfaatan Cyber teknologi untuk
semua lini)
2.5 SIMS Group
Berikut merupakan pengembangan layanan multimedia dari merk dagang PT
SIMS di Indonesia yang ditunjukkan oleh Gambar 2.1.
Gambar 2.1 Skema SIMS Group
6
KANTOR PUSAT : Wisma Kosgoro 10th Floor. Jl MH Thamrin 53,
Jakarta Pusat. Tlp / Fax (021 ) 230 2826
JOGJA MEDIANET : Jl. Bhinneka Tunggal Ika K-2 Sekip-Jogjakarta
55281. Tlp. (0274) 544000; Fax. (0274) 545000
KEBUMEN MEDIANET : Jl. Cincin Kota Gg. Berlian 04 RT. 02/05 Karangsari
Kebumen 54351 Tlp.(0287) 5520455
BALI MEDIANET : Jl. Tukad Batanghari 88 Panjer. Denpasar Bali
80225. Tlp. (0361) 7421099
MAGELANG MEDIANET : Perum Tidar No 13, Megarsari Magelang
BATAM MEDIANET : Komplek Ruko Bandar Mas Blok G No 5, Sei Panas
Batam Center, Batam, Kepulauan Riau
7
2.6 Struktur Organisasi
Berikut ini merupakan bagan struktur PT SaranaInsan MudaSelaras Cabang
Yogyakarta (Jogja Medianet) :
Gambar 2.2 Bagan Struktur PT SIMS Jogja Medianet
8
BAB III
TINJAUAN PUSTAKA
3.1 PHP
PHP adalah banyak digunakan Open Source, untuk keperluan umum, bahasa
scripting yang sangat cocok untuk pengembangan Web dan dapat tertanam dalam
HTML. Menurut situs php.net, singkatan "PHP" adalah singkatan dari "PHP:
Hypertext Preprocessor". Sintaks mengacu pada C, Java, dan Perl dan mudah
untuk dipelajari. Tujuan utama dari bahasa ini adalah untuk memungkinkan
pengembang web untuk menulis secara dinamis menghasilkan halaman web
dengan cepat, tetapi Anda dapat melakukan lebih banyak dengan PHP. [1]
PHP mendukung semua sistem operasi utama, termasuk Linux / Unix,
Microsoft Windows, Mac OS X, dan lain-lain. PHP juga mendukung sebagian
besar web server termasuk Apache, Microsoft Internet Information Server,
Personal Web Server, Netscape, iPlanet server, dan sebagainya. [1]
3.2 Notepad++
Notepad++ adalah sebuah aplikasi penyunting teks dan penyunting kode
sumber yang berjalan di sistem operasi Windows. Notepad++ menggunakan
komponen Scintilla untuk dapat menampilkan dan menyuntingan teks dan berkas
kode sumber berbagai bahasa pemrograman. Notepad++ mendukung banyak
bahasa pemrograman. Dukungan dalam hal ini adalah dimengerti dan
diterjemahkan menjadi teks oleh Notepad++. Misalnya pada C++, fungsi-fungsinya
akan di masukan kedalam daftar fungsi dan kata-katanya akan berubah warna sesuai
dengan makna kata tersebut di C++. [2]
Berbagai bahasa pemrograman seperti HTML, CSS, PHP, XML, Java, JSP,
JavaScript, Perl Pascal, dan lain-lain yang dapat bekerja pada System Operasi
Windows. Kelebihan Notepad++ jika dibanding Notepad bawaan Windows adalah
memiliki kelengkapan fitur untuk mempermudah pengguna
9
saat mengedit kode termasuk saat mengedit kode HTML dan kode
CSS.mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang
berjalan di atas .NET Compact Framework). [2]
3.3 JAVA
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer
termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat
masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan
dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C
dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan
rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya
dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin
Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat
umum/non-spesifik (general purpose), dan secara khusus didisain untuk
memanfaatkan dependensi implementasi seminimal mungkin. Karena
fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa
platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis
sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang
paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan
berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web. [3]
Java itu sederhana, berorientasi objek, distributed, interpreted, kuat, aman,
arsitektur netral, portable, berkinerja tinggi, multithreaded, bahasa yang dinamis.[4]
3.4 JSON
JSON (JavaScript Object Notation) adalah format pertukaran data yang
ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan
dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa
Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON
merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun
karena menggunakan gaya bahasa yang umum digunakan oleh programmer
10
keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena
sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.
JSON terbuat dari dua struktur:
1. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan
sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary),
tabel hash (hash table), daftar berkunci (keyed list), atau associative array.
2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal
ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan
(sequence).
Struktur-struktur data ini disebut sebagai struktur data universal. Pada
dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini
dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena
format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga
berdasarkan pada struktur data ini. [5]
3.5 Android OS
Android adalah sistem operasi berbasis Linux yang dirancang untuk
perangkat seluler layar sentuh seperti telepon pintar dan komputer tablet. Android
awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial dari Google,
yang kemudian membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi
pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance,
konsorsium dari perusahaan-perusahaan perangkat keras, perangkat lunak, dan
telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler.
Android adalah sistem operasi dengan sumber terbuka, dan Google merilis kodenya
di bawah Lisensi Apache. Kode dengan sumber terbuka dan lisensi perizinan pada
Android memungkinkan perangkat lunak untuk dimodifikasi secara bebas dan
didistribusikan oleh para pembuat perangkat, operator nirkabel, dan pengembang
aplikasi. Selain itu, Android memiliki sejumlah besar komunitas pengembang
aplikasi (apps) yang memperluas fungsionalitas perangkat, umumnya ditulis dalam
versi kustomisasi bahasa pemrograman Java. [6]
11
Android dapat dibagi menjadi empat layer utama: kernel, libraries,
applications framework, dan aplikasi. Seperti yang disebutkan sebelumnya kernel
Linux. Libraries yang dilengkapi dengan Android menyediakan banyak grafis,
penyimpanan data, dan kemampuan media. Tertanam dalam layer libraries adalah
runtime Android yang berisi Dalvik virtual machine, yang mana kekuatan aplikasi.
Applications framework adalah API yang akan digunakan oleh semua aplikasi
untuk mengakses tingkat terendah arsitektur. [7]
3.6 Android Studio
Android Studio adalah sebuah perangkat lunak baru untuk pengembangan
aplikasi berbasis Android yang berbasis IntelliJ IDEA. [8]
Beberapa fitur yang ada pada Android Studio adalah sebagai berikut :
a. Sistem build yang fleksibal berbasis Gradle,
b. Mempunyai banyak macam generasi APK dan variasi build,
c. Mendukung template untuk layanan Google dan berbagai macam tipe
perangkat,
d. Tampilan editor yang kaya dan jug amendukung untuk perubahan tema,
e. Menyediakan peralatan Lint untuk untuk merekam kinerja, penggunaan,
kompabilitas versi, dan permasalahan lainnya,
f. Mempunyai fasilitas ProGuard dan app-signing untuk aplikasi,
g. Mendukung Google Cloud Platform yang memudahkan untuk melakukan
integrasi Google Cloud Messaging dan App Engine.
3.7 Android SDK
Android Software Development Kit (SDK) berisi alat yang diperlukan untuk
membuat, mengkompilasi dan paket aplikasi Android. Sebagian besar alat-alat ini
adalah baris perintah yang berbasis. Android SDK juga menyediakan emulator
perangkat Android, sehingga aplikasi Android dapat diuji tanpa ponsel Android
yang nyata. Anda dapat membuat perangkat Android virtual (AVD) melalui SDK
Android, yang berjalan di emulator ini. Android SDK berisi Android debug bridge
12
(adb) alat yang memungkinkan untuk terhubung ke perangkat Android virtual atau
nyata. [9]
3.8 MySQL
MySQL adalah database open source paling populer di dunia. MySQL adalah
sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang
didistribusikan secara gratis dibawah lisensi GPL (General Public License).
MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata
yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah
konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan
pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan
mudah secara otomatis. [10]
MySQL database menyediakan fitur berikut: Self-healing Replication
Clusters untuk meningkatkan skalabilitas, kinerja dan ketersediaan aplikasi volume
tinggi, Performance/Scalability untuk memenuhi tuntutan beban data yang pernah
tumbuh dan user concurrency, Online DDL/Schema Changes untuk aplikasi
dinamis yang harus tetap tersedia untuk update setiap saat, SQL dan NoSQL Access
untuk aplikasi yang membutuhkan query yang kompleks dan sederhana, cepat
operasi Nilai Key terhadap dataset transaksional yang sama, Performance Schema
untuk memantau pengguna / tingkat kinerja aplikasi dan konsumsi sumber daya dan
Platform Interoperability yang memungkinkan MySQL untuk menjalankan seluruh
sistem operasi dan digunakan sebagai penyimpanan data operasional Hadoop dan
penyebaran platform Data besar lainnya. [11]
13
BAB IV
PEMBUATAN APLIKASI CLIENT-SERVER LIVE VIDEO STREAMING
UNTUK CHANNEL TV PADA PT SIMS JOGJA MEDIANET BERBASIS
PLATFORM ANDROID
4.1 Gambaran Umum Aplikasi
Aplikasi yang dibuat dalam kegiatan kerja praktik di PT SIMS Jogja
Medianet merupakan sebuah aplikasi client-server untuk mengakses alamat server
live video streaming dimana sebuah smartphone dapat mengakses data alamat-
alamat server live video streaming yang tersimpan dalam sebuah server database
dalam hal ini menggunakan database MySQL. Sehingga, client dapat mengakses
alamat live video streaming dari smartphone yang dimilikinya dimanapun dan
kapanpun serta admin dapat mengupdate data alamat-alamat live video streaming
di database tersebut. Aplikasi yang akan dibangun tergambar seperti pada gambar
4.1.
Gambar 4.1 Skema Aplikasi Android yang dibangun
Berdasarkan gambar di atas smartphone android (client) akan melakukan
request (get) ke server melalui internet. Kemudian, web server (dalam hal ini PHP)
akan memproses request dari smartphone android (client) dan melakukan query ke
database MySQL.
14
4.2 Perancangan database
4.2.1 Membuat database
Membuat sebuah database dengan mengakses
video.jogjamedianet.com/phpmyadmin. Dengan bantuan aplikasi PhpMyAdmin
pembuatan database menjadi lebih mudah. Kemudian login dengan username
“video” dan password “v1d30”. Setelah berhasil masuk masukan perintah query
create database video; ke tab SQL Query. Kemudian klik Go.
Gambar 4.2 Query create database
4.2.2 Membuat Tabel Dalam Database
Dalam aplikasi yang akan dibuat hanya memerlukan satu buah tabel dalam
database video. Masukkan perintah query ke tab SQL Query seperti berikut :
CREATE TABLE IF NOT EXISTS `stream` (`id` int(11) NOT NULL AUTO_INCREMENT,`video` varchar(11) NOT NULL,`alamat` varchar(100) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;
Tabel yang dibuat bernama stream dengan 3 kolom yaitu id, video, dan alamat.
Kolom id merupakan primary key dengan tipe data integer dan panjang nilai 11.
Kolom video bertipe data varchar dengan nilai 11. Kolom alamat bertipe data
varchar dengan nilai 100.
15
Gambar 4.3 Tampilan struktur dari tabel stream
4.2.3 Memasukkan Data Pada Tabel
Memasukkan data pada tabel stream ke dalam kolom video dan kolom alamat
menggunakan perintah query dalam tab SQL Query seperti berikut :
INSERT INTO `stream` ( `video`, `alamat`) VALUES( 'FOX TV','http://202.169.224.206:1935/live/fmp.sdp/playlist.m3u8'),( 'HBO TV','http://202.169.224.206:1935/live/hbo1.sdp/playlist.m3u8'),('Test', 'http://202.169.224.206:1935/live/test/playlist.m3u8'),( 'SNSD', rtsp://202.169.224.206:1935/vod/SNSD_MrTaxi.mp4''),( 'BUNNY', 'rtsp://202.169.224.206:1935/vod/sample.mp4'),( 'SAMAS','http://202.169.224.206:1935/vod/mp4:Pantai_Samas.mp4/playlist.m3u8');
Gambar 4.4 Tampilan dari tabel stream beserta isi data
4.3 Membuat Script Php
Script PHP ini merupakan script server side yang digunakan sebagai
penghubung atau jembatan antara android dengan MySQL. Tanpa script server side
ini android tidak dapat berkomunikasi langsung dengan MySQL untuk
memanipulasi database. [12] Jadi, android hanya mengirimkan perintah request ke
PHP dan PHP lah yang akan melaksanakan perintah query ke MySQL.
16
4.4.1 Koneksi Database
Koneksi database digunakan untuk mengkoneksikan database dan memilih
database yang akan digunakan. Buatlah script php seperti berikut menggunakan
Notepad++ kemudian save file dengan nama testkoneksi.php.
<?phperror_reporting(0);$conn = mysql_connect('localhost', 'video', 'v1d30') or di
e(mysql_error());$db = mysql_select_db('video') or die(mysql_error());
?>
4.4.2 Mengambil Data Pada Tabel
Fungsi dari query ini merupakan untuk mengambil data pada tabel stream
yang akan ditampilkan pada aplikasi android. Dalam aplikasi ini menggunakan
tabel stream. Buatlah script php seperti berikut menggunakan Notepad++ kemudian
save file dengan nama select_all.php.
<?phpinclude('../testkoneksi.php');$query = 'select * from stream';$result = mysql_query($query) or die(mysql_error());
$data = array();while($row = mysql_fetch_object($result)){
$data['stream'][]= $row;}echo json_encode($data);?>
4.4 Perancangan Aplikasi Android
Perancangan aplikasi client-server live streaming video ini menggunakan
Android Studio yang merupakan sebuah perangkat lunak baru dari Google Inc.
untuk pengembangan aplikasi berbasis Android yang berbasis IntelliJ IDEA. [8]
4.4.1 Desain Antarmuka Aplikasi
Desain dari aplikasi client-server live streaming video ini terdiri dari empat
layout yaitu layout activity_main, layout activity_list_video, layout activity_player,
dan layout activity_about.
17
Layout Activity_Main merupakan tampilan awal dari aplikasi client-server
live streaming video untuk menampilkan splash screen sebelum masuk ke tampilan
menu utama yaitu layout activity_list_video.
Gambar 4.5 Tampilan Desain Layout activity_main
Layout Activity_List_Video ini merupakan tampilan menu utama dari
aplikasi client-server live video streaming. Pada layout ini menampilkan data-data
yang ada di kolom video pada tabel stream dalam database dalam bentuk list video.
Gambar 4.6 Tampilan Desain Layout activity_list_video
Layout Activity_Player ini mempunyai fungsi untuk menampilkan live video
streaming secara satu layar penuh dari server yang sebelumnya dipilih dari layout
activity_list_video pada tampilan menu utama.
18
Gambar 4.7 Tampilan Desain Layout activity_player
Layout Activity_About merupakan layout untuk menampilkan informasi
tentang aplikasi client-server live video streaming berupa guider, developer, dan
versi aplikasi.
Gambar 4.8 Tampilan Desain Layout activity_about
4.4.2 Membuat Java Class Pada Setiap Activity
Setelah desain antarmuka aplikasi dibuat, langkah selanjutnya yaitu
membuat java class pada setiap activity yang ada pada aplikasi untuk mengaktifkan
fungsi-fungsi pada aplikasi client-server live video streaming dengan cara
memasukkan beberapa source code pada setiap activity agar aplikasi tersebut dapat
berfungsi dengan baik.
MainActivity (MainActivity.java) merupakan activity yang digunakan untuk
membuat splash screen tampilan awal aplikasi pada layout activity_main sebelum
masuk ke menu utama yaitu layout activity_list_video. Berikut listing code dari
MainActivity.java.
19
package com.studio.cinta09.jmnstream_fix;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;
public class MainActivity extends Activity {
protected boolean _active = true;protected int _splashTime = 5000; //waktu tampilan splash screen
5 detikIntent intent;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
Thread splashTread = new Thread() {@Overridepublic void run() {
try {int waited = 0;while(_active && (waited < _splashTime)) {
sleep(100);if(_active) {
waited += 100;}
}} catch(InterruptedException e) {
// do nothing} finally {
finish();intent = new Intent(MainActivity.this,
ListVideoActivity.class);//deklarasi class yang muncul setelahsplash screen
startActivity(intent);}
}};splashTread.start();
}}
Class stream (stream.java) ini merupakan kelas yang digunakan untuk
memanipulasi objek dengan konsep Object Relational Mapping (ORM) yang
menggunakan objek yang sama untuk memetakan tabel pada database.[13] Berikut
listing code dari stream.java.
package com.studio.cinta09.jmnstream_fix.entities;/*** Created by ajjunaedi on 10/02/2015.
20
*/public class stream {
private Integer id;private String video;private String alamat;
public stream() {super();
}
public stream(Integer id, String video, String alamat) {super();this.id = id;this.video = video;this.alamat = alamat;
}
public Integer getId() {return id;
}
public void setId(Integer id) {this.id = id;
}
public String getVideo() {return video;
}
public void setVideo(String video) {this.video = video;
}
public String getAlamat() {return alamat;
}
public void setAlamat(String alamat) {this.alamat = alamat;
}
}
Class server (ServerRequest.java) merupakan kelas yang digunakan untuk
berkomunikasi atau melakukan request ke server. Request yang digunakan hanya
get request.
Gambar 4.9 Listing Code dari alamat server
21
Berdasarkan gambar 4.9 server yang diakses oleh aplikasi adalah
http://video.jogjamedianet.com. Sedangkan, alamat /app/select_all.php merupakan
script php yang ada di server http://video.jogjamedianet.com untuk mengambil data
yang ada di dalam tabel pada database MySQL. Berikut listing code lengkap dari
class ServerRequest.java.
package com.studio.cinta09.jmnstream_fix.server;
/*** Created by ajjunaedi on 10/02/2015.*/
import android.util.Log;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;
public class ServerRequest {private final static String TAG = "ServerRequest";public static final String serverUri =
"http://video.jogjamedianet.com";public static final String urlSelectAll =
"/app/select_all.php";
public ServerRequest() {super();
}
/* Mengirimkan GET request */public String sendGetRequest(String reqUrl){
HttpClient httpClient;HttpGet httpGet = new HttpGet(serverUri+"/"+reqUrl);InputStream is = null;StringBuilder stringBuilder = new StringBuilder();try {
HttpParams params = new BasicHttpParams();HttpConnectionParams.setConnectionTimeout(params,
3000);HttpConnectionParams.setSoTimeout(params, 3000);httpClient = new DefaultHttpClient(params);Log.d(TAG, "executing...");HttpResponse httpResponse =
httpClient.execute(httpGet);StatusLine status = httpResponse.getStatusLine();
22
if(status.getStatusCode() == HttpStatus.SC_OK &&httpResponse != null){
/* mengambil response string dari server*/
HttpEntity httpEntity = httpResponse.getEntity();is = httpEntity.getContent();BufferedReader reader = new BufferedReader(new
InputStreamReader(is));String line = null;while((line = reader.readLine()) != null){
stringBuilder.append(line+"\n");}is.close();
}} catch (Exception e) {
//Log.d(TAG, e.getMessage());}
return stringBuilder.toString();}
}
Untuk menampilkan custom ListView (ListAdapterStream.java) pada layout
activity_list_video kita membutuhkan sebuah adapter yang inherit kepada
BaseAdapter. Sehingga, kita dapat menampilkan data-data tertentu saja yang ada di
tabel database pada layout acitivity_list_video.
Gambar 4.10 Listing Code dari ListingAdapterStream.java
Pada gambar 4.10 merupakan potongan listing code dari
ListAdapterStream.java yang digunakan untuk meng-custom ListView yang
ditampilkan dalam layout acitivity_list_video. Berdasarkan gambar 4.10 data yang
ditampilkan dalam layout acitivity_list_video hanya isi kolom video dari tabel
stream pada database. Sedangkan, kolom id dari tabel stream tidak ditampilkan
23
berdasarkan urutan id pada tabel stream tetapi berdasarkan posisi dari layout
acitivity_list_video. Berikut listing code lengkap ListAdapterStream.java.
package com.studio.cinta09.jmnstream_fix.entities;
/*** Created by ajjunaedi on 10/02/2015.*/
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import com.studio.cinta09.jmnstream_fix.R;import java.util.List;
public class ListAdapterStream extends BaseAdapter {private Context context;private List<stream> list, filterd;
public ListAdapterStream(Context context, List<stream> list) {this.context = context;this.list = list;this.filterd = this.list;
}
@Overridepublic int getCount() {
return filterd.size();}
@Overridepublic Object getItem(int position) {//menampilkan objek
berdasarkan urutan posisi pada layout listviewreturn filterd.get(position);
}
@Overridepublic long getItemId(int position) {
return position;}
@Overridepublic View getView(int position, View convertView, ViewGroup
parent) {//mengatur data pada tabel yang akan ditampilkanif(convertView == null){
LayoutInflater inflater =LayoutInflater.from(this.context);
convertView = inflater.inflate(R.layout.list_row,null);
}stream str = filterd.get(position);int id = str.getId();TextView textvideo = (TextView)
convertView.findViewById(R.id.text_nama);
24
convertView.setId(position);textvideo.setText(str.getVideo());
return convertView;}
}
ListVideoActivity (ListVideoAvtivity.java) ini merupakan activity yang
digunakan untuk menampilkan menu utama yaitu layout acitivity_list_video berupa
pilihan video atau channel tv yang ada di database sesuai dengan pengaturan pada
kelas ListAdapterStream.java. Selain itu, dalam activity ini terdapat option menu
berupa refresh page dan about application yang berada di action bar.
Gambar 4.11 Listing code untuk melakukan request ke server (1)
Gambar 4.12 Listing code untuk melakukan request ke server (2)
Pada gambar 4.11 dan gambar 4.12 merupakan listing code untuk activity
melakukan request ke server melalui AsyncTask yang merupakan sebuah kelas
yang digunakan untuk melakukan operasi background dan menampilkannya ke UI
thread. Dan respon dari request dari server yaitu JSON.
Gambar 4.13 Hasil respon JSON melalui web browser
25
Gambar 4.14 Listing code untuk memproses respon JSON
Pada gambar 4.13 terlihat bahwa hasil respon request dari url
http://video.jogjamedianet.com/app/select_all.php yang di akses melalui browser
adalah bahwa objek JSON terdiri dari stream dan stream memiliki JSON array.
Kemudian, JSON array akan diproses dengan listing code seperti pada gambar 4.14
agar dapat ditampilkan di layout acitivity_list_video. Berikut listing code lengkap
dari ListVideoActivity.java
package com.studio.cinta09.jmnstream_fix;
import android.app.ProgressDialog;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.ActionMode;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;importcom.studio.cinta09.jmnstream_fix.entities.ListAdapterStream;import com.studio.cinta09.jmnstream_fix.entities.stream;import com.studio.cinta09.jmnstream_fix.server.ServerRequest;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import java.util.ArrayList;import java.util.List;
public class ListVideoActivity extends ActionBarActivity {
26
private static final String TAG = "ListVideoActivity";private ListView listView;private ActionMode actionMode;private ProgressDialog progressDialog;private ServerRequest serverRequest;private List<stream> list;private ListAdapterStream adapter;private stream selectedList;private Menu mymenu;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_list_video);serverRequest = new ServerRequest();listView = (ListView) findViewById(R.id.listview_main);list = new ArrayList<stream>();
/** melakukan load data melalui AsyncTask */new VideoActivityAsync().execute("load");
}
private List<stream> processResponse(String response){List<stream> list = new ArrayList<stream>();try {
JSONObject jsonObj = new JSONObject(response);JSONArray jsonArray = jsonObj.getJSONArray("stream");Log.d(TAG, "data length: "+jsonArray.length());stream str = null;for(int i = 0; i < jsonArray.length(); i++){
JSONObject obj = jsonArray.getJSONObject(i);str = new stream();//Log.v("id", String.valueOf(obj.getInt("id")));str.setId(obj.getInt("id"));//Log.v("video", obj.getString("video"));str.setVideo(obj.getString("video"));//Log.v("alamat", obj.getString("alamat"));str.setAlamat(obj.getString("alamat"));list.add(str);
}} catch (JSONException e) {
Log.d(TAG , e.getMessage());}return list;
}
private void populateListView(){/*for(int i = 0; i<list.size(); i++){
stream objStream = list.get(i);Log.v("check list id",
String.valueOf(objStream.getId()));Log.v("check list video",
String.valueOf(objStream.getVideo()));Log.v("check list alamat",
String.valueOf(objStream.getAlamat()));
27
}*/adapter = new ListAdapterStream(getApplicationContext(),
list);listView.setAdapter(adapter);listView.setOnItemClickListener(new OnItemClickListener()
{
@Overridepublic void onItemClick(AdapterView<?> adapterView,
View v, int pos, long id) {//merupakan deklarasi untuk event klikpada listview
selectedList = list.get(pos);Intent intent = new Intent(ListVideoActivity.this,
PlayerActivity.class);//Log.v("clicked", String.valueOf(v.getId()));intent.putExtra("alamat",
selectedList.getAlamat());startActivity(intent);
}});
}
public stream getSelectedList() {return selectedList;
}
public void setSelectedList(stream selectedList) {this.selectedList = selectedList;
}
private class VideoActivityAsync extends AsyncTask<String,Void, String>{
@Overrideprotected void onPreExecute() {
progressDialog = newProgressDialog(ListVideoActivity.this);
progressDialog.setMessage("Loading....");progressDialog.setIndeterminate(false);progressDialog.setCancelable(false);progressDialog.show();
}
@Overrideprotected String doInBackground(String... params) {
/** Mengirimkan request ke server dan memproses JSONresponse */
String response =serverRequest.sendGetRequest(ServerRequest.urlSelectAll);
list = processResponse(response);return null;
}
@Overrideprotected void onPostExecute(String result) {
28
progressDialog.dismiss();runOnUiThread(new Runnable() {
@Overridepublic void run() {
populateListView();}
});}
}
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_list_video, menu);return true;
}
@Overridepublic boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){case R.id.option_menu_new:
Intent in = new Intent(getApplicationContext(),AboutActivity.class);
startActivity(in);break;
case R.id.action_refresh:new VideoActivityAsync().execute();return true;
}return super.onOptionsItemSelected(item);
}
public void resetUpdating(){
// Get our refresh item from the menuMenuItem m = mymenu.findItem(R.id.action_refresh);if(m.getActionView()!=null){
// Remove the animation.m.getActionView().clearAnimation();m.setActionView(null);
}}
}
PlayerAcvtivity (PlayerActivity.java) merupakan activity yang digunakan
untuk mengaktifkan layout activity_player. Sehingga, dapat memainkan video yang
dipilih dari layout acitivity_list_video. Tampilan activity ini satu layar penuh.
29
Gambar 4.15 Listing code dari PlayerActivity (1)
Gambar 4.16 Listing code dari PlayerActivity (2)
Pada gambar 4.15 terlihat bahwa respon dari event klik pada layout
acitivity_list_video yang dipilih akan diproses pada PlayerActivity. Dan kemudian,
PlayerActivity mendapatkan data yang ada di dalam kolom alamat berupa
videoURI yang kemudian activity ini memproses seperti dalam lisiting code pada
gambar 4.16 untuk mengakses videoURI tersebut dan ditampilkan ke layout
acitivity_player. Berikut listing code lengkap dari PlayActivity.java.
package com.studio.cinta09.jmnstream_fix;
import android.app.Activity;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.widget.MediaController;import android.widget.VideoView;import com.studio.cinta09.jmnstream_fix.entities.stream;import com.studio.cinta09.jmnstream_fix.server.ServerRequest;
public class PlayerActivity extends Activity {
private stream stream;private ServerRequest serverRequest;public Object newString;private String alamat;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
//Log.v("passed",getIntent().getExtras().getString("id"));
super.onCreate(savedInstanceState);setContentView(R.layout.activity_player);stream = new stream();
30
serverRequest = new ServerRequest();if (savedInstanceState == null) {//respon dari list video
yang diklik//Log.v("alamat",
getIntent().getExtras().getString("alamat"));Bundle extras = getIntent().getExtras();alamat = extras.getString("alamat");//mengambil data
pada kolom alamat dalam tabelLog.v("alamat", alamat);if(extras == null) {
newString= null;} else {
newString= extras.getString("alamat");}
} else {newString= (String)
savedInstanceState.getSerializable("alamat");}
final VideoView vid = (VideoView)findViewById(R.id.videoView);
Uri video = Uri.parse(alamat);//data pada kolom alamat akandiparse
vid.setVideoURI(video);//videoURI yang diparse dari kolomalamat pada tabel diakses
MediaController hhh = new MediaController(this);vid.setMediaController(hhh);vid.requestFocus();vid.start();
}}
AboutActivity (AboutActivity.java) ini merupakan activity untuk
menampilkan layout activity_about. Berikut listing code dari AboutActivity.java.
package com.studio.cinta09.jmnstream_fix;
import android.os.Bundle;import android.support.v7.app.ActionBarActivity;
public class AboutActivity extends ActionBarActivity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_about);
}}
31
Permission adalah suatu pembatasan untuk membatasi akses ke bagian dari
kode atau data pada perangkat. Pembatasan diberlakukan untuk melindungi data
penting dan kode yang dapat disalahgunakan untuk mendistorsi atau merusak
pengalaman pengguna.[14] Dalam aplikasi client-server live video streaming ini
membutuhkan akses ke internet, sehingga harus menyatakan bahwa hal itu
mewajibkan permission dengan elemen <uses-permission
android:name="android.permission.INTERNET" /> dalam AndroidManifet.xml
seperti yang terlihat pada gambar 4.17.
Gambar 4.17 Listing code permission dalam AndroidManifest.xml
34
BAB V
PENUTUP
5.1 Kesimpulan
1. Dengan adanya aplikasi client-server live video streaming untuk channel tv
ini dapat mempermudah para pelanggan dari PT SIMS Jogja Medianet dalam
menonton siaran-siaran televisi dimanapun dan kapanpun menggunakan
smartphone android yang mereka miliki.
2. Pembuatan aplikasi ini menggunakan Android Studio yang merupakan
sebuah perangkat lunak baru untuk pengembangan aplikasi berbasis Android
yang berbasis IntelliJ IDEA dan menyediakan banyak fitur serta akan menjadi
Android IDE yang resmi.
3. Dalam pembuatan aplikasi ini menggunakan bahasa pemrograman Java yang
merupakan bahasa pemrograman yang dapat dijalankan di berbagai platform
termasuk platform android.
4. Dalam pembuatan aplikasi client-server berbasis android membutuhkan
JSON (JavaScript Object Notation) yang merupakan format pertukaran data
yang ringan serta mudah diterjemahkan dan dipakai untuk mengirim data dari
webservice ke android.
5. Dalam pembuatan aplikasi client-server tentunya membutuhkan sebuah
database. Database yang digunakan adalah MySQL.
5.2 Saran
1. Aplikasi client-server live video streaming untuk channel tv pada PT SIMS
Jogja Medianet berbasis platform android ini dapat dikembangkan lagi,
dengan menambahkan fitur-fitur yang dapat membantu pelanggan.
2. Jika akan membuat aplikasi client-server berbasis android yang dapat diakses
oleh siapa saja, kapan saja dan dimana saja gunakan database MySQL.
3. Selama melaksanakan kerja praktik, mahasiswa harus mampu mengamati
kebutuhan sistem. Sehingga apa yang dikerjakan bisa bermanfaat.
35
DAFTAR PUSTAKA
[1] H. Xhtml, PHP Programming. .
[2] B. I. Wikipedia, “Notepad++.” [Online]. Available:http://id.wikipedia.org/wiki/Notepad%2B%2B. [Accessed: 15-Feb-2015].
[3] B. I. Wikipedia, “JAVA.” [Online]. Available:http://id.wikipedia.org/wiki/Java. [Accessed: 15-Feb-2015].
[4] J. Gosling, “Java : an Overview,” no. February, pp. 1–10, 1995.
[5] JSON.org, “Pengenalan JSON.” [Online]. Available: http://json.org/json-id.html. [Accessed: 15-Feb-2015].
[6] B. I. Wikipedia, “Android (sistem operasi).” [Online]. Available:http://id.wikipedia.org/wiki/Android_(sistem_operasi)#cite_note-16.[Accessed: 15-Feb-2015].
[7] P. M. Kilgo, “Android OS : A robust , free , open-source operating systemfor mobile devices,” pp. 1–6.
[8] Developer.android.com, “Android Studio Overview.” [Online]. Available:https://developer.android.com/tools/studio/index.html. [Accessed: 15-Feb-2015].
[9] L. Vogel, “Android Development - Tutorial,” pp. 1–63, 2014.
[10] B. I. Wikipedia, “MySQL.” [Online]. Available:http://id.wikipedia.org/wiki/MySQL#Sistem_manajemen_basis_data_relasional. [Accessed: 16-Feb-2015].
[11] P. Guide, “MySQL Enterprise Edition Product Guide,” 2013.
[12] P. Al-Banjari, “Membuat Aplikasi Client-Server.” [Online]. Available:https://pizaini.wordpress.com/2013/06/17/membuat-aplikasi-client-server-menggunakan-android-php-dan-mysql/. [Accessed: 15-Feb-2015].
[13] A. Lipitsäinen, “ORM – Object Relational Mapping,” pp. 1–30.
[14] F. Conventions, F. Features, and I. Filters, “The AndroidManifest . xmlFile,” pp. 6–11, 2012.
Recommended