Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer
BAB 9 – File I/O
Pemrograman Perangkat Mobile Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer Universitas Brawijaya
Pemrograman Perangkat Mobile
Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom
1 Pendahuluan
Pada Bab ini akan dibahas bagaimana pemrosesan File. dalam aplikasi berbasis android ataupun java pada umumnya, dikenal istilah STREAM. Pada nan ini akan banyak dibahas mengenai apa itu stream, bagaimana penggunaan stream pada java dan pada aplikasi android khususnya.
Tujuan Instruksional Khusus
Penguasaan materi dalam modul ini, akan dapat
1. Menguasai pengelolaan file dalam aplikasi Android
Daftar Materi
1. PENDAHULUAN 1.1 Definisi Stream File
2. FILE STREAM 1.2 Stream
1.3 Persiapan pembuatan aplikasi 1.4 File Teks
1.5 Objek Stream
3. LATIHAN / SOAL / KUIS / PROJEK
1.1 Definisi Stream File
Yang dimaksud dengan stream adalah aliran data. Jika dianalogikan, stream digambrkan sebagai sungai yang mengalirkan air. Seperti sungai yang mengalirkan air, stream mengalirkan byte-byte data.
Pemrosesan input dan output di Java pada prinsipnya menggunakan konsep stream ini
2 File Stream
File dapat disimpan baik di dalam device maupun di media penyimpanan (SD card). Secara default, aplikasi tidak dapat mengakses file milik aplikasi lain. Penggunaan stream ini sebenarnya sama persis dengan penggunaan class stream yang ada pada Java. Tersedia Class template yang yang terdapat pada java development kit yang dapat digunakan untuk mengoperasikan file. Class yang mensupport operasi file disediakan di package java.io.*
2.1.1 Stream
Pemrosesan file dalam jumlah besar, yang membutuhkan kinerja yang tinggi masih dibutuhkan berbagai bidang. Misalnya aplikasi backend yang mengelola dokumen di perusahaan, aplikasi pengolahan teks, aplikasi pemroses XML, HTML, aplikasi simulasi-simulasi dan sebagainya. Penguasaan stream dan file akan membantu anda untuk memecahkan berbagai masalah
Terdapat 2 jenis sub class stream yang dapat digunakan untuk melakukan pemrosesan file, yaitu InputStream dan OutputStream.
1. InputStream
InputStream merupakan subclass dari stream yang memiliki fungsi-fungsi untuk membaca byte- byte dari sebuah file untuk kemudian disimpan dalam aplikasi untuk diolah. Aliran data pada class InputStream ini adalah dari data source (File) menuju Aplikasi, seperti yang ditunjukkan pada gambar berikut. Class ini biasanya digunakan untuk pembacaan isi sebuah file target dalam bentuk byte-byte. Contoh pengaplikasiannya adalah pada saat kita membuat program untuk membaca isi dari sebuah file teks dalam perangkat mobile.
Gambar 1: Input Stream (diambil dari http://download.oracle.com/javase/tutorial)
2. OutputStream
Sebaliknya, OutputStream merupakan subclass yang menyimpan fungsi-fungsi untuk mengalirkan aliran data dari aplikasi menuju data source yang berupa file dalam bentuk byte-byte seperti yang
Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer
digambarkan pada gambar dibawah. Class ini biasanya digunakan untuk menuliskan data pada source file dari aplikasi. Contohnya adalah penyimpanan teks pada sebuah file teks.
Gambar 1: Output Stream (diambil dari http://download.oracle.com/javase/tutorial)
2.1.2 Persiapan pembuatan aplikasi
Untuk latihan membuat aplikasi File I/O dapat dilakukan pada emulator atau langsung pada device yang digunakan. Pada contoh berikut, aplikasi akan dibuat menggunakan emulator. Emulator android yang disedikan oleh eclipse telah memiliki fasilitas emulator SDCard yang dapat disetting besaran dan lokasi penyimpanannya. Sebelum memulai, pastikan emulator sudah memiliki SD-Card, cara mensettingnya adalah pada halaman konfigurasi android SDK Tools: (Start All Program Android SDK Tools)
Lalu untuk setiap project yang akan mengakses ke SD Card, tambahkan ijin untuk menulis ke media penyimpanan external di AndroidManifest.xml
2.1.3 File Teks
Sebelum mulai, pastikan virtual device telah diset SD-Card dan AndroidManifest telah ditambahkan ijin untuk menulis (baca bagian persiapan)
File teks penting untuk menulis data, XML, HTML dan sebagainya. File teks dianggap sebagai stream dari karakter. Untuk menulis ke file teks, cara yang paling mudah adalah dengan menggunakan class PrintWriter. Berikut adalah contoh program yang menulis dua baris ke file teks.
Sedangkan untuk membaca, dapat digunakan class Scanner yang dapat membaca baris demi baris.
Berikut contoh codenya, letakkan di bawah code atas.
Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer
2.1.4 Objek Stream
Java telah menyediakan fasilitas agar objek dapat disimpan ke dalam stream secara otomatis dengan mudah. Class yang digunakan adalah ObjectOutputStream dan ObjectInputStream.
Setelah membuat project baru (pastikan AndroidManifest.xml-nya telah ditambahkan ijin menulis ke external!) Sekarang coba kita buat class Mahasiswa sebagai berikut.
Tambah class baru (Filenewclass). Perhatikan penggunaan interface java.io.Serializable yang menandakan bahwa class ini dalam disimpan ke dalam stream
Codenya sebagai berikut. Perhatikan variabel serialVersionUID untuk menyatakan versi class. Class Mahasiswa ini mengimplementas interface Serializable.
Selanjutnya, buat program untuk menulis dua objek mahasiswa ke dalam class. Penulisan objek ke stream sangat mudah, hanya dengan class ObjectOutputStream dan method writeObject. Buatlah code ini di activity Main.
Sekarang kita lanjutkan ke pembacaan objek yang telah dituliskan. Untuk membaca file berisi objek digunakan class FileInputStream dan ObjectInputStream;
Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer
4. PROJECT
PROJECT
Buat aplikasi yang menggunakan Android untuk menyimpan data biodata mahasiswa
Tambahkan fungsi insert data mahasiswa dan simpan hasilnya ke file teks dalam bentuk JSON
REFERENSI
Yudhi , Wibisono .2011. Pengantar Mobile Programming dengan Android, UPI.
Safaat, H. Nazruddin. 2011. ANDROID Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android, Penerbit Informatika.
Eriq Muhammad A. J., ST., M.Kom., Widhy Hayuhardhika, S.Kom - Teknik Informatika-Program Teknologi Informasi dan Ilmu Komputer