Laporan Kerja Praktek Akhmad Junaedi

41

Click here to load reader

description

Laporan

Transcript of Laporan Kerja Praktek Akhmad Junaedi

Page 1: Laporan Kerja Praktek Akhmad Junaedi

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

Page 2: Laporan Kerja Praktek Akhmad Junaedi

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

Page 3: Laporan Kerja Praktek Akhmad Junaedi

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

Page 4: Laporan Kerja Praktek Akhmad Junaedi

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

Page 5: Laporan Kerja Praktek Akhmad Junaedi

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

Page 6: Laporan Kerja Praktek Akhmad Junaedi

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

Page 7: Laporan Kerja Praktek Akhmad Junaedi

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

Page 8: Laporan Kerja Praktek Akhmad Junaedi

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

Page 9: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 10: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 11: Laporan Kerja Praktek Akhmad Junaedi

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

Page 12: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 13: Laporan Kerja Praktek Akhmad Junaedi

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

Page 14: Laporan Kerja Praktek Akhmad Junaedi

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

Page 15: Laporan Kerja Praktek Akhmad Junaedi

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

Page 16: Laporan Kerja Praktek Akhmad Junaedi

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

Page 17: Laporan Kerja Praktek Akhmad Junaedi

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

Page 18: Laporan Kerja Praktek Akhmad Junaedi

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]

Page 19: Laporan Kerja Praktek Akhmad Junaedi

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

Page 20: Laporan Kerja Praktek Akhmad Junaedi

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]

Page 21: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 22: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 23: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 24: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 25: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 26: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 27: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 28: Laporan Kerja Praktek Akhmad Junaedi

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

Page 29: Laporan Kerja Praktek Akhmad Junaedi

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();

Page 30: Laporan Kerja Praktek Akhmad Junaedi

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

Page 31: Laporan Kerja Praktek Akhmad Junaedi

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);

Page 32: Laporan Kerja Praktek Akhmad Junaedi

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

Page 33: Laporan Kerja Praktek Akhmad Junaedi

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 {

Page 34: Laporan Kerja Praktek Akhmad Junaedi

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()));

Page 35: Laporan Kerja Praktek Akhmad Junaedi

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) {

Page 36: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 37: Laporan Kerja Praktek Akhmad Junaedi

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();

Page 38: Laporan Kerja Praktek Akhmad Junaedi

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);

}}

Page 39: Laporan Kerja Praktek Akhmad Junaedi

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

Page 40: Laporan Kerja Praktek Akhmad Junaedi

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.

Page 41: Laporan Kerja Praktek Akhmad Junaedi

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.