Aplikasi android dapat menampilkan dan menyimpan data ke database. Adanya database membuat aplikasi android yang kita bangun menjadi lebih kaya akan informasi. Pada tutorial kali ini kita akan membuat aplikasi android yang dapat menampilkan dan menyimpan data pada penyimpanan internal (Internal Storage). Data disimpan pada file TXT yang terdapat di penyimpanan internal. Berikut adalah langkah-langkah pembuatan aplikasi android dengan memanfaatkan fitur penyimpanan internal.
Langkah pertama yang harus kita lakukan adalah membuat sebuah project android baru, dengan cara buka Android Studio, klik File –> New –> New Project. Setelah itu kan muncul halaman New Project, pilih Empty Activity seperti yang ditunjukan oleh Gambar 1.
Kemudian masuk ke halaman pengaturan Empty Activity, isikan nama project dengan nama “Latihan Storage“. Nama package akan muncul secara otomatis, untuk bahasa / language kita pilih “Java“. Lalu untuk Minimum SDK kita pilih API 21: Android 5.0 (Lollipop) yang sudah kompatibel terhadap 98% perangkat android. Setelah itu klik tombol “Finish“.
Setelah itu akan muncul 2 file yaitu MainActivity.java dan activity_main.xml. Pertama-tama kita buka file activity_main.xml untuk mendesain tampilan antarmuka dari Latihan Storage. Berikut adalah kode lengkap yang kita masukan ke dalam file activity_main.xml.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" android:orientation="vertical" tools:context=".MainActivity"> <Button android:id="@+id/btnBuatFile" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/buat_file"/> <Button android:id="@+id/btnUbahFile" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ubah_file"/> <Button android:id="@+id/btnBacaFile" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/baca_file"/> <Button android:id="@+id/btnHapusFile" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hapus_file"/> <EditText android:id="@+id/textBaca" android:layout_width="match_parent" android:layout_height="210dp" android:inputType="textMultiLine" android:background="@android:color/darker_gray" android:ems="10" android:gravity="left|top" android:padding="5dp" android:layout_marginTop="10dp" android:hint="@string/hasil_baca_file"/> </LinearLayout>
Apabila terjadi error, itu karena kita belum menambahkan String Name pada file String.xml. Tambahkan String Name tersebut pada file String.xml dengan kode berikut.
<resources> <string name="app_name">Latihan Storage</string> <string name="buat_file">Buat File</string> <string name="ubah_file">Ubah File</string> <string name="baca_file">Baca File</string> <string name="hapus_file">Hapus File</string> </resources>
Sehingga tampilan antarmuka dari Latihan Storage yang kita bangun menjadi seperti pada Gambar 3.
Sekarang kita tambahkan kode pada file MainActivity.java untuk memberikan fungsi pada tiap-tiap tombol. Adapun kode lengkap dari MainActivity adalah sebagai berikut.
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ public static final String FILENAME = "dts2022.txt"; TextView textBaca; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button buatFile = findViewById(R.id.btnBuatFile); Button ubahFile = findViewById(R.id.btnUbahFile); Button bacaFile = findViewById(R.id.btnBacaFile); Button deleteFile = findViewById(R.id.btnHapusFile); textBaca = findViewById(R.id.textBaca); buatFile.setOnClickListener(this); ubahFile.setOnClickListener(this); bacaFile.setOnClickListener(this); deleteFile.setOnClickListener(this); } void buatFile(){ String isiFile = "Jadilah Jagoan Digital"; File file = new File(getFilesDir(), FILENAME); FileOutputStream outputStream = null; try { file.createNewFile(); outputStream = new FileOutputStream(file, true); outputStream.write(isiFile.getBytes()); outputStream.flush(); outputStream.close(); Toast.makeText(this, getFilesDir().toString(), Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printStackTrace(); } } void ubahFile(){ String ubah = "Semangat Berjuang Peserta DTS"; File file = new File(getFilesDir(), FILENAME); FileOutputStream outputStream = null; try { file.createNewFile(); outputStream = new FileOutputStream(file, false); outputStream.write(ubah.getBytes()); outputStream.flush(); outputStream.close(); Toast.makeText(this, "file berhasil diubah", Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printStackTrace(); } } void bacaFile(){ File sdcard = getFilesDir(); File file = new File(sdcard, FILENAME); if(file.exists()){ StringBuilder text = new StringBuilder(); try { BufferedReader br = new BufferedReader(new FileReader(file)); String line = br.readLine(); while (line != null){ text.append(line); line = br.readLine(); } br.close(); Toast.makeText(this, "Membaca File", Toast.LENGTH_SHORT).show(); } catch (IOException e){ System.out.println("Error "+e.getMessage()); } textBaca.setText(text.toString()); } } void hapusFile(){ File file = new File(getFilesDir(), FILENAME); if(file.exists()){ file.delete(); Toast.makeText(this, "File Sudah Terhapus", Toast.LENGTH_SHORT).show(); } } public void jalanPerintah(int id){ switch (id){ case R.id.btnBuatFile: buatFile(); break; case R.id.btnUbahFile: ubahFile(); break; case R.id.btnBacaFile: bacaFile(); break; case R.id.btnHapusFile: hapusFile(); break; } } @Override public void onClick(View v) { jalanPerintah(v.getId()); } }
Keterangan Kode :
- Baris 1 : Menjelaskan class MainActivity yang mewarisi fungsionalitas dari class AppCompatActivity, kemudian juga mewarisi method-method yang terdapat pada Interface View.OnClickListener
- Baris 3 : Membuat sebuah variabel final dengan nama FILENAME. Variabel ini berisi file string bernama “dts2022.txt” yang akan digunakan sebagai nama database kita
- Baris 4 : Membuat objek dari TextView
- Baris 13 : Menunjukan layout yang kita pakai adalah activity_main.xml
- Baris 11 s/d 15 : Membuat objek yang menyimpan id yang terdapat pada layout activity_main.xml
- Baris 23 s/d 41 : Membuat fungsi untuk membuat file baru dengan nama dts2022.txt, secara otomatis file tersebut akan berisi kalimat “Jadilah Jagoan Digital”
- Baris 43 s/d 61 : Membuat fungsi untuk mengedit file, secara otomatis jika kita tekan tombol ubah file makan isi dari file dts2022.txt akan berubah menjadi kalimat “Semangat Berjuang Peserta DTS”
- Baris 63 s/d 85 : Membuat fungsi untuk membaca data yang ada didalam file dts2022.txt
- Baris 88 s/d 95 : Membuat fungsi untuk menghapus file dts2022.txt
- Baris 96 s/d 111 : Membuat kondisi dengan switch case statement agar setiap fungsi dapat dipanggil sesuai dengan tombol yang ditekan oleh user
- Baris 114 s/d 116 : Fungsi onClick berfungsi akan tombol yang ditekan dapat memberikan aksi
Jika tidak terdapat error maka tampilan dari aplikasi latihan storage yang kita bangun akan tampak seperti pada Gambar 4.
Untuk melihat file dts2022.txt, kita dapat membuka “Device File Explorer” yang terdapat di pojok kanan bawah android studio.
Kemudian pilih data –> data –> pilih nama aplikasi yang dibuat (misal : com.example.latihanstorage) –> files –> dts2022.txt. Lebih jelasnya dapat dilihat pada Gambar 6.
Demikian tutorial penggunaan internal storage pada android, semoga dapat bermanfaat. Sampai jumpa lagi di tutorial berikutnya 🙂