Cara Membuat Layout GridView di Android Studio

Cara Membuat Layout GridView di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

GridView adalah salah satu container, yang digunakan untuk menampilkan konten View, konten View dalam GridView akan tersusun bentuk kotak-kotak seperti sebuah rak lemari, , yang dimana kita dapat menyimpan barang-barang. Penulisan coding beserta struktur datanya, hampir sama dengan ListViw, hanya saja data yang ditampilkan secara Grid atau Kotak-kotak.


Pada tutorial ini, kita akan belajar membuat program sederhana dengan menggunakan GridView didalam layout aplikasi kita, pada aplikasi tersebut, kita akan menampilkan gambar, dengan tampilan mirip dengan image gallery, dengan menggunakan GridView.

Materi lainnya yang direkomendasikan:

Cara Membuat Layout GridView di Android Studio

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Buka file activity_main.xml kalian, disini kita akan mengatur layout untuk tampilan GridView pada activity kita.

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/gridview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFF5F5F5"
    android:columnWidth="90dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:verticalSpacing="10dp"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

</GridView>

Penjelasan pada atribut-atribut yang digunakan:
  • android:columnWidth : Menentukan lebar tetap pada masing-masing kolom.
  • android:gravity : Menentukan gravitasi di dalam setiap sel.
  • android:verticalSpacing : Mendefinisikan default jarak vertikal antar baris.
  • android:stretchMode : Mendefinisikan bagaimana kolom harus meregang untuk mengisi tersedia ruang kosong, jika ada.
  • android:horizontalSpacing : Mendefinisikan default jarak horisontal antara kolom.
  • android:numColumns : Menentukan berapa kolom yang akan ditampilkan.

3) Selanjutnya buka file MainActiviy.java, pada layout tersebut kita akan menampilkan gambar/image, jadi saya sarankan kalian sudah menyiapkan gambarnya terlebih dahulu, gambar tersebut kalian simpan didalam dir drawable.

Masukan source code berikut ini:

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    //Deklarasi Variable GridView
    protected GridView TampilanGrid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().setTitle("Image Gallery");
        TampilanGrid = findViewById(R.id.gridview);
        //Mengset/Menerapkan adapter pada GridView
        TampilanGrid.setAdapter(new ImageAdapter(this));

        //Membuat Listener untuk mengangani kejadian saat salah satu item di klik
        TampilanGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v, int position, long id) {
                Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });
    }
}

//Digunakan Untuk Mengatur Konten yang Akan Ditampilkan
class ImageAdapter extends BaseAdapter {

    //List Konten Gambar yang akan ditampilkan pada GridView
    private int[] gambar = {R.drawable.kucing1, R.drawable.kucing2, R.drawable.kucing3,
            R.drawable.kucing4, R.drawable.kucing5, R.drawable.kucing6,
            R.drawable.kucing7, R.drawable.kucing8, R.drawable.kucing9,
            R.drawable.kucing10, R.drawable.kucing11, R.drawable.kucing12,
            R.drawable.kucing13, R.drawable.kucing14, R.drawable.kucing15,
            R.drawable.kucing16, R.drawable.kucing17, R.drawable.kucing18,
            R.drawable.kucing19, R.drawable.kucing20};

    private Context mContext;

    //Membuat Contructor, dengan parameter Context, Untuk menghubungkan Adapter dengan GridView
    ImageAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        //Menghitung Jumlah/Panjang dari Daftar Konten
        return gambar.length;
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    //Membuat ImageView baru untuk setiap item yang direferensikan oleh Adaptor
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        //Jika tidak di daur ulang
        if (convertView == null) {
            //Menginisialisasi beberapa atribut
            imageView = new ImageView(mContext);
            //Mengatur Panjang dan Lebar pada ImageView
            imageView.setLayoutParams(new GridView.LayoutParams(120, 120));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            //Mengatur Padding
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        //Mengset Image dari Resource/Sumber berdasarkan posisinya
        imageView.setImageResource(gambar[position]);
        return imageView;
    }
}

Demo:

Screenshot_GridView Example

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Menggunakan Fungsi apply dan copy di Kotlin

Belajar Menggunakan Fungsi apply dan copy di Kotlin


Assalamualaikum Warahmatullahi Wabarakatuh.

apply() dan copy() adalah salah satu kelebihan, yang dimiliki bahasa pemrograman Kotlin ,yang tidak terdapat di pemrograman Java, fungsi tersebut berguna untuk meringkas suatu code dan mencegah terjadinya pengulangan code (boilerpate), serta agar mudah di pahami oleh para developer.

Belajar Menggunakan Fungsi apply dan copy di Kotlin

Pada tutorial ini kita akan belajar menggunakan fungsi apply dan copy, disini kita akan membuat program sederhana dengan menggunakan kedua fungsi tersebut, untuk lebih jelasnya, silakan kalian baca tutorial berikut ini.

Materi lainnya yang direkomendasikan:

A.Penggunaan Fungsi apply() pada Kotlin

1) Buka Aplikasi IntellliJ IDEA atau sejenisnya, Buat Project Baru.

2) Selanjtunya Buat File/Class Kotlin : Klik kanan pada direktory src > New > Kotlin File/Class,.

3) Pada File/Class Koltin yang kalian buat, berikut ini merupakan source code dari contoh sederhana penggunaan apply pada kolitn.

/**
 Belajar Kotlin Bersama WILDAN TECHNO ART
 */

fun main(args: Array) {

    val programmer = dev.apply {
        nama = "Wildan Muhammad A"
        umur = 19
        jeniskelamin = "Laki-Laki"
    }
    println("Saya Programmer : $programmer")
}

//Model data
data class Programmer (
        var nama :String?,
        var umur :Int?,
        var jeniskelamin :String?
)

val dev = Programmer(null,null,null)

Penjelasan:

Pada pemrograman Kotlin, apply() merupakan salah satu fungsi tambahan, yang berguna untuk mengaplikasikan nilai, berdasarkan atribut atau method, yang telah di definisikan dalam objek. 

Pada contoh program diatas, kita dapat menggunakan fungsi tambahan apply() sebagai alternatif saat kita memanggil atau memodifikasi nilai, dengan menggunakan method Setter dan Getter, atau kalian juga dapat mengisi secara langsung argument di dalam constructor.

Output:

Contoh fungsi apply pada kotlin

B.Penggunaan Fungsi copy() pada Kotlin

/**
 Belajar Kotlin Bersama WILDAN TECHN ART
 */

fun main(args: Array<String>) {

    val programmer = dev.apply {
        nama = "Wildan Muhammad A"
        umur = 19
        jeniskelamin = "Laki-Laki"
    }
    val programmer2 = dev.copy(nama = "Aziz Hapidin", umur = 22)

    println("Android Developer : $programmer \nWeb Developer : $programmer2")
}

//Model data
data class Programmer (
        var nama :String?,
        var umur :Int?,
        var jeniskelamin :String?
)

val dev = Programmer(null,null,null)

Penjelasan:

copy() adalah fungsi tambahan yang hanya terdapat di data class , pada contoh program tersebut, kita menggunakan fungsi copy() untuk menyalin semua data atau nilai, yang telah kita definisikan sebelumnya didalam objek, lalu menerapkanya pada objek baru. Kerena kita sudah mendefinisikan data class, untuk mengaplikasikan nilai, kita dapat menggunakan fungsi apply().

Output:

Contoh fungsi apply dan copy pada kotlin

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Membuat Widget TimePicker di Android Studio

Belajar Membuat Widget TimePicker di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

TimePicker merupakan salah satu komponen User Interface, yang dapat menampilkan waktu, serta mengijinkan user untuk memilih/menset jam dan menit. TimePicker sering kita lihat pada aplikasi bawaan Android, cara penggunaannya hampir sama seperti itu, tapi kalian ingin membuat atau menembahkan TimePicker pada Aplikasi Android kalian.

Belajar Membuat Widget TimePicker di Android Studio

Pada tutorial ini, kita akan belajar membuat program sederhana dengan menggunakan TimePicker, pada program tersebut user diharuskan untuk mengset/menentukan waktu. Lalu hasilnya akan ditampilkan pada TextView.

Materi lainnya yang direkomendasikan:

Belajar Membuat Widget TimePicker di Android Studio

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Selanjutnya bua file activity_main,xml kalian, disini kita akan menambahkan TimePicker, digunakan untuk mengset waktu. Lalu Button, untuk mengeksekusi waktu yang sudah dipilih dari TimePicker, hasilnya akan ditampilkan pada TextView.

<?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:layout_margin="8dp"
    android:background="#FFF5F5F5"
    android:orientation="vertical"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical">

            <TimePicker
                android:id="@+id/get_time"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <Button
                android:id="@+id/set_waktu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="change date" />

            <TextView
                android:id="@+id/output"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="4dp"
                android:gravity="center"
                android:text="Output"
                android:textSize="15sp"
                android:textStyle="bold" />
        </LinearLayout>
    </ScrollView>

</LinearLayout>

View:

Layout View TimePicker Example

3) Buka file MainActivity.java, masukan source code berikut ini:

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private TimePicker timePicker;
    private TextView Output;
    private Button SetChange;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timePicker = findViewById(R.id.get_time);
        Output = findViewById(R.id.output);
        SetChange = findViewById(R.id.set_waktu);
        SetChange.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Mencetak Output
                Output.setText(setTime());
                Toast.makeText(getApplicationContext(), "Berhasil Diubah", Toast.LENGTH_SHORT).show();
            }
        });
    }

    public String setTime() {
        String waktu = "Waktu : " + timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute();
        return waktu;
    }
}

getCurrentHour() digunakan untuk menampilkan jam dari TimePicker dan getCurrentMinute() untuk menampilkan menit.

Demo:

Screenshot_TimePicker Example

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Membuat Widget DatePicker di Android Studio

Belajar Membuat Widget DatePicker di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada Aplikasi Android, DatePicker berfungsi sebagai komponen User Interface (Antar Muka), yang memungkinkan user untuk mengse/memilih tanggal, bulan dan tahun. DatePicker bisa kita sebut sebagai kalender, dengan menggunakan widget ini, kita dapat mengubah tanggla, bulan dan tahun. seperti yang sering kita lihat di perangkat Android.

Belajar Membuat Widget DatePicker di Android Studio

Pada tutorial ini, kita akan belajar membuat program sederhana dengan menggunakan DatePicker, pada program tersebut user diharuskan memilih tanggal, bulan dan tahun. Lalu hasilnya akan ditampilkan menggunakan TextView.

Materi lainnya yang direkomendasikan:


Belajar Membuat Widget DatePicker di Android Studio

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Selanjutnya bua file activity_main,xml kalian, disini kita akan menambahkan DatePicker, digunakan untuk mengset tanggal, bulan dan tahun. Lalu Button, untuk mengeksekusi settingan dari DatePicker, dimana hasil settingan DatePicker tersebut akan ditampilkan pada TextView.

<?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:layout_margin="8dp"
    android:background="#FFF5F5F5"
    android:orientation="vertical"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical">

            <DatePicker
                android:id="@+id/kalender"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <Button
                android:id="@+id/set_kalender"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="change date" />

            <TextView
                android:id="@+id/output"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="4dp"
                android:gravity="center"
                android:text="Output"
                android:textSize="15sp"
                android:textStyle="bold" />
        </LinearLayout>
    </ScrollView>

</LinearLayout>

View:

Layout View DatePicker Example

3) Buka file MainActivity.java, masukan source code berikut ini:

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private DatePicker datePicker;
    private TextView Output;
    private Button SetChange;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        datePicker = findViewById(R.id.kalender);
        Output = findViewById(R.id.output);
        SetChange = findViewById(R.id.set_kalender);
        SetChange.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Mencetak Output
                Output.setText(getDate());
                Toast.makeText(getApplicationContext(), "Berhasil Diubah", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private String getDate(){
        int hari;
        int bulan;
        int tahun;
        StringBuilder date = new StringBuilder();
        hari = datePicker.getDayOfMonth(); //Mendapatkan Input Hari dari DatePicker
        bulan = datePicker.getMonth() + 1; //Mendapatkan Input Bulan dari DatePicker
        tahun = datePicker.getYear(); //Mendapatkan Input Tahun dari DatePicker

        //Meambah Isi/Nilai pada Variable date(StringBuilder)
        date.append("Date : ").append(hari).append("/").append(bulan).append("/").append(tahun);
        return date.toString();//Mengembalikan Nilai date
    }
}

Didalam method getDate(), kita membuat 3 buah variable, yaitu hari, bulan dan tahun, masing-masing variable tersebut digunakan untuk meyimpan data yang didapat dari DatePicker.

Untuk membentuk atau melakukan operasi terhadap objek String, kita dapat menggunakan class StringBuilder, pada class tersebut, kita dapat menambahkan isi pada variable date tersebut, menggunakan fungsi append.

Lalu mengembalikan nilainnya, terakhir kita set pada variable Output, data akan ditampilkan saat user menekan tombol change date.

Demo:

Screenshot_DatePicker Example

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Membuat AutoCompleteTextView di Android Studio

Belajar Membuat AutoCompleteTextView di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

AutoCompleteTextView adalah widget yang data menampilkan rekomendasi hasil pencarian dari Database, AutoCompleteTextView, akan menampilkan rekomendasi hasil pencarian berdasarkan kata kunci yang kita ketikan. Contohnya pada aplikasi penyimpanan barang, kita dapat menggunakan widget ini untuk mencari nama barang yang Spesifik.

Belajar Membuat AutoCompleteTextView di Android Studio

Materi yang akan kita pelajari kali ini adalah cara implementasi AutoCompleteTextView dan juga contoh program dengan menggunakan widget AutoCompleteTextView, Untuk lebih jalasnya mari kita simak tutorial berikut ini.

Materi lainnya yang direkomendasikan:


Belajar Membuat AutoCompleteTextView di Android Studio

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Buka file activity_main.xml kalian, disini kita akan menambahkan widget AutoCompleteTextView dan TextView untuk menampilkan outputnya.

<?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:layout_margin="8dp"
    android:orientation="vertical"
    android:background="#FFF5F5F5"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <AutoCompleteTextView
        android:id="@+id/search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Cari Seusatu ....." />

    <TextView
        android:id="@+id/output"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="4dp"
        android:text="Output Data :"
        android:textSize="15sp"
        android:textStyle="bold" />
</LinearLayout>

View:

Desain layout AutoCompleteTextView Example

3) Selanjutnya buka file MainActivity.java, pada source code berikut ini, kita akan menggunakan sebuah Array untuk menyimpan item, lalu item tersebut akan ditampilakn pada widge AutoCompleteTextView saat user minimal mengetik 2 huruf.

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements TextWatcher {

    private TextView Output;
    private AutoCompleteTextView Pencarian;

    //Daftar Item Menggunakan Array
    private String[] listItem = {"Laptop", "Komputer", "Televisi", "Android", "Pensil", "Tas",
                                 "Helm", "Sendal", "Buku", "Gelas", "Penggaris", "Masker", "Mainan",
                                 "Celana", "Baju", "Topi", "Jaket", "Sepeda", "Mobil", "Sepatu",
                                 "Flashdisk", "Hardisk", "Bantal", "Kasur", "Meja", "Kursi", "Kamera",
                                 "Kulkas", "Foto", "Jas", "Jaket", "Spidol", "Makanan", "Minuman"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Output = findViewById(R.id.output);
        Pencarian = findViewById(R.id.search);

        //Membuat Listener untuk menangani kejadian pada AutoCompleteTextView
        Pencarian.addTextChangedListener(this);
        //Membuat Adapter untuk mengatur bagaimana Item/Konten itu tampil
        Pencarian.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1, listItem));
    }

    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        //Method ini dipanggil sebelum edittext selesai diubah
        Toast.makeText(getApplicationContext(),"Text Belum Diubah", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        //Method ini dipanggil saat text pada edittext sedang diubah
        Output.setText("Data Output : "+Pencarian.getText());
    }

    @Override
    public void afterTextChanged(Editable editable) {
        //Method ini dipanggil setelah edittext selesai diubah
        Toast.makeText(getApplicationContext(),"Text Selesai Diubah", Toast.LENGTH_SHORT).show();
    }
}

Demo:

Screenshot_AutoCompleteTextView  Example

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Cara Menyimpan File Ke Internal dan External Storage Android

Cara Menyimpan File Ke Internal dan External Storage Android


Assalamualaikum Warahmatullahi Wabarakatuh.

Pada tutorial ini kita akan belajar, Cara Menyimpan File Di Internal dan External Storage Android, pembahasan yang akan saya ajarkan adalah langkah-langkah penggunaan Internal dan External Storage, Contoh pemakaian Internal dan External Storage dan juga kapan memilih Internal atau External Storage pada Aplikasi Android.

Cara Menyimpan File Di Internal dan External Storage Android

Ada beberapa kondisi dimana kita harus memilih antara penyimpanan Internal dan External pada Apliaksi Android yang akan kita buat, kalian juga dapat menggunakan keduanya pada aplikasi tersebur. Berikut merupakan kondisi dimana kita harus memilih Penyimpanan Internal atau External Storage.

Internal Storage:
  • Ini selalu tersedia.
  • File yang disimpan di sini hanya bisa diakses oleh aplikasi itu sendiri.
  • Bila pengguna mencopot/uninstall pemasangan aplikasi, sistem akan membuang semua file aplikasi tersebut dari penyimpanan internal.
  • Penyimpanan internal digunakan juga kita ingin memastikan bahwa pengguna maupun aplikasi lain tidak bisa mengakses file tersebut.

External Storage:
  • Penyimpanan ini tidak selalu tersedia, karena pengguna bisa memasang penyimpanan eksternal sebagai penyimpanan USB dan dalam beberapa kasus melepasnya dari perangkat.
  • Penyimpanan ini bisa dibaca di seluruh dunia, sehingga file yang disimpan di sini bisa dibaca di luar kontrol kita.
  • Bila pengguna mencopot pemasangan aplikasi kita, sistem akan membuang file aplikasi kita dari sini hanya jika kita menyimpannya dalam direktori dari getExternalFilesDir().
  • Penyimpanan eksternal digunakan untuk file yang tidak memerlukan pembatasan akses dan untuk file yang ingin kita gunakan bersama aplikasi lain atau memperbolehkan pengguna mengaksesnya dengan komputer.

Itulah beberapa fungsi dan juga peranan dari Internal dan External Storage didalam Aplikasi Android. Untuk penjelasan lebih lanjut, mari kita simak tutorial berikut ini.

Materi lainnya yang direkomendasikan:

A.Internal Storage

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Disini kita akan mendesain layout pada activiy_main.xml, pada layout tersebut kita akan menambahkan sebuah widget atau view seperti EditText dan Button.

<?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:layout_margin="8dp"
    android:orientation="vertical"
    android:background="#FFF5F5F5"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <EditText
        android:id="@+id/input_data"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Masukan Data"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/save_internal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Simpan ke Internal" />

    <Button
        android:id="@+id/save_external"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Simpan ke External" />

</LinearLayout>

View:

Layout Design Internal - External Storage Example

3) Selanjutnya buka file MainActivity.java pada project kalian, pertama kita akan memasukan source code untuk Internal Storage.

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity{

    private Button Internal, External;
    private EditText InputData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        InputData = findViewById(R.id.input_data);
        Internal = findViewById(R.id.save_internal);
        External = findViewById(R.id.save_external);

        Internal.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String setData = InputData.getText().toString();
                //Digunakan untuk membuat dan menulis File/Data pada Penyimpanan
                FileOutputStream fileOutputStream;
                try {
                    //Membuat Berkas Baru dengan mode Private
                    fileOutputStream = openFileOutput("DataSaya", Context.MODE_PRIVATE);

                    //Menulis Data Baru dan Mengkonversinya kedalam bentuk byte
                    fileOutputStream.write(setData.getBytes());

                    //Menutup FileOutputStream
                    fileOutputStream.close();

                    Toast.makeText(getApplicationContext(), "Data Disimpan di Internal", Toast.LENGTH_SHORT).show();
                }catch (Exception ex){
                    ex.printStackTrace();
                }
            }
        });
    }
}

Penjelasan:

FileOutStream digunakan untuk membuat dan menulis File atau Data baru pada penyimpanan, dengan menggunakan fungsi openFileOutput, pada fungsi tersebut kita membuat berkas baru dengan nama "DataSaya" yang mempunyai akses Private, yang artinya file tersebut hanya bisa diakses oleh aplikasi itu sendiri.

Untuk menambahkan data/nilai pada berkas "DataSaya", kita dapat menggunakan fungsi write(), lalu kita harus mengkonversinya kedalam bentuk Byte, menggunakan fungsi getByte().

Terakhir, kita menutup FileOutStream menggunakan fungsi close().

Untuk melihat datanya, caranya jalankan project tersebut menggunakan Emulator, lalu buka Android Device Emulator, seperti berikut ini:


Jangan lupa untuk mencentang Enable ADB Interation. Selanjutnya buka direktori data > data > (Nama Package pada Aplikasi Kita) > files.

B.External Storage

1) Masukan kedua permission berikut ini, digunakan untuk memperoleh izin, agar aplikasi dapat menulis dan membaca file External Storage. Buka file androidManifest (pada direktori main).

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2) Buka MainActivity.java kalian, tambahkan source code berikut ini pada method onCreate().

External.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              //Digunakan Untuk Mengecek Apakah Tersebut Peyimpanan External atau Tidak
              String state = Environment.getExternalStorageState();
              if (Environment.MEDIA_MOUNTED.equals(state)){
                  //Digunakan Untuk Mengecek Lokasi Penyimpanan Direktori di Memory External
                  File dirExternal = Environment.getExternalStorageDirectory();

                  //Membuat Direktori Baru dengan Nama "ContohDirektori"
                  File createDir = new File(dirExternal.getAbsolutePath()+"/ContohDirektori");

                  //Jika Direktori "ContohDirektori" Tidak Ada, Maka akan Membuatnya
                  if (!createDir.exists()){
                      createDir.mkdir();
                      //Membuat File Baru didalam Direktori "ContohDirektori"
                      File file = new File(createDir, "ContohFile.txt");

                      String setData = InputData.getText().toString();
                      //Digunakan untuk membuat dan menulis File/Data di Internal
                      FileOutputStream fileOutputStream;
                      try {
                          //Membuat Berkas Baru dengan mode Private
                          fileOutputStream = new FileOutputStream(file);

                          fileOutputStream.write(setData.getBytes());

                          fileOutputStream.close();

                          Toast.makeText(getApplicationContext(), "Data Disimpan di External", Toast.LENGTH_SHORT).show();
                      }catch (IOException ex){
                          ex.printStackTrace();
                      }
                  }
              }else {
                  Toast.makeText(getApplicationContext(), "Penyimpanan External Tidak Tersedia", Toast.LENGTH_SHORT).show();
              }
          }
      });

3) Jalankan project tersebut, coba kalian inputkan nilai/data pada aplikasi tersebut, lalu simpan pada penyimpanan External, maka akan terlihat Direktori Baru pada Penyimpanan External kalian, seperti berikut ini.

Screenshot_External Storage Example 1 Screenshot_External Storage Example 2

Untuk membuat file .txt tersebut kalian memerlukan aplikasi editor.

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Cara Menyimpan Data Menggunakan SharedPreferences

Cara Menyimpan Data Menggunakan SharedPreferences


Assalamualaikum Warahmatullahi Wabarakatuh.

SharedPreference adalah sebuah class yang berfungsi sebagai media penyimpanan data primitif pada file internal pada aplikasi dalam bentuk key-value. SharedPreference  menyediakan method sederhana untuk membaca dan menulis, kita dapat meggunakan class ini untuk menyimpan nilai-kunci yang relatif kecil.

Terdapat beberapa media penyimpanan yang bisa kalian gunakan pada Aplikasi Android, seperti SharedPreferences, SQLite, File Storage, Content Providers, dan Cloud Storage. Kelima media penyimpanan tersebut mempunyai fungsi yang sama, tetapi dengan penggunaan yang berbeda.

Contohnya SQLite digunakan sebagai media penyimpanan atau Database yang digunakan untuk meyimpan data-data yang relatif banyak, SQLite terdiri dari kolom dan baris, didalam SQLite kita bisa mengkategorikan data-data yang disimpan, berdasarkan nama kolomnya.

Contoh kedua misalnya CloudStorage, CloudStorage merupakan penyimpanan online, yang memerlukan koneksi internet untuk mengaksesnya, contohnya seperti sosial media, semua konten yang kita upload akan disimpan di server mereka.

Cara Menyimpan Data Menggunakan SharedPreferences

Itulah beberapa jenis penyimpanan yang bisa kalian gunakan pada Android, Tapi pada materi kali ini saya hanya akan membahas mengenai penggunakan SharedPreferences.

Salah satu kebutuhan menggunakan SharedPreferences adalah saat user melakukan login pada aplikasi, username dan password bisa kita simpan menggunakan SharedPreferences, jadi saat user keliar aplikasi, user tidak perlu menginputkan kembali username & password untuk bisa mengakses aplikasinya lagi.

Bisa kita gambarkan cara kerja SharedPreferences seperti berikut ini:
shared-preference-di-android
Sumber Gambar : https://wirasetiawan29.files.wordpress.com/2016/03/shared-preference-di-android.png

Gambar tersebut menjelaskan, pertama program akan meyimpan nilai beserta keynya, setiap nilai mempunyai keynya masing masing, untuk mencari atau mengaakses atau mencari nilai yang terseimpan didalam SharedPreferences, kita tinggal memanggil keynya saja.

Materi lainnya yang direkomandasikan:

Shared Preferences pada umumnya digunakan untuk pemyimpanan data yang berukuran kecil, seperti pengaturan aplikasi, usr token, theme, dll. Data tersebut akan tersimpan dalam bentuk file XML di penyimpanan Internal aplikasi Android.

Cara Menyimpan Data Menggunakan SharedPreferences

Pada tutorial ini, kita akan membuat contoh sederhana dengan menggunakan SharedPreferences

1) Buka aplikasi Android Studio kalian, Buat Project Baru.

2) Buka layout activity_main.xml kalian, disini kita akan menambahkan Edittext (Untuk Input), TextView (Untuk Output Data) dan Button (Untuk mengeksekusi program).

<?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:layout_margin="8dp"
    android:orientation="vertical"
    android:background="#FFF5F5F5"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">


    <EditText
        android:id="@+id/input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Masukan Data"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/save"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Simpan" />

    <TextView
        android:id="@+id/output"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:gravity="center"
        android:text="Output Data :"
        android:textStyle="bold" />
</LinearLayout>

View:

Layout Design SharedPreferences Example

3) Selanjutnya buka file MainActivity.java, pada source code berikut ini kita akan menambahkan SharedPreferences, serta beberapa fungsi/methodnya.

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity{

    //Deklarasi Variable Pendukung
    private TextView Hasil;
    private EditText Masukan;
    private Button Eksekusi;

    //Deklarasi dan Inisialisasi SharedPreferences
    private SharedPreferences preferences;

    //Digunakan Untuk Konfigurasi SharedPreferences
    private SharedPreferences.Editor editor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Masukan = findViewById(R.id.input);
        Hasil = findViewById(R.id.output);
        Eksekusi = findViewById(R.id.save);

        //Membuat File Baru Beserta Modifiernya
        preferences = getSharedPreferences("Belajar_SharedPreferences", Context.MODE_PRIVATE);

        Eksekusi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getData();
                Toast.makeText(getApplicationContext(),"Data Tersimpan", Toast.LENGTH_SHORT).show();
            }
        });
    }

    private void getData(){
        //Mendapatkan Input dari user
        String getKonten = Masukan.getText().toString();

        //Digunakan Untuk Pengaturan Konfigurasi SharedPreferences
        editor = preferences.edit();

        //Memasukan Data Pada Editor SharedPreferences dengan key (data_saya)
        editor.putString("data_saya", getKonten);

        //Menjalankan Operasi
        editor.apply();

        //Menampilkan Output
        Hasil.setText("Output Data : "+preferences.getString("data_saya", null));
    }
}

Penjelasan:

Pertama kita mendeklarasikan beberapa variable pendukung, seperti TextView, Edittext dan Button, lalu kita juga Menginisialisasi SharedPreferences dan juga SharedPreferences,Editor, yang digunakan konfigurasi data pada SharedPreferences.

Fungsi getSharedPreferences() gunakan jika kita ingin membuat file Shared Preference yang baru dengan parameter yang spesifik dan juga nama filenya sepesifik dan gunakan Context untuk mengakses file pada aplikasi.

Didalam method getSharedPreferences() file yang akan kita buat mempunyai mode private, yang artinya, data pada file tersebut hanya untuk aplikasi itu saja.

Untuk memasukan data, kita dapat menggunakan fungsi putString(); dengan parameter key dan nilai.

Dan untuk menampilkan output, kita dapat menggunakan fungsi getString(), kita dapat menampilkan data tersebut dengan memanggil keynya saya.

Demo:

Screenshot_SharedPreferences Example


Untuk melihat hasil dari SharedPreferences, caranya jalankan project tersebut menggunakan Emulator, lalu buka Android Device Emulator, seperti berikut ini:


Jangan lupa untuk mencentang Enable ADB Interation. Selanjutnya buka direktori data > data > (Nama Package pada Aplikasi Kita) > shared_prefs.

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.

Belajar Menggunakan Layout Inflater di Android Studio

Belajar Menggunakan Layout Inflater di Android Studio


Assalamualaikum Warahmatullahi Wabarakatuh.

Di kesempatan kali ini, saya akan mengajarkan pada kalian Cara Menggunakan Layout Inflater di Android Studio, Layout inflanter adalah sebuah class yang bisa kita gunakan untuk membuat java object view dari layout yang kita buat di xml. Layout Inflater digunakan jika kita ingin membuat sebuah sub activity, jika kita gambarkan, fungsinya hampir sama seperti fragment, yaitu bagian kecil dari Activity.

Belajar Menggunakan Layout Inflater di Android Studio

Pada tutorial ini kita akan belajar untuk memahami penggunaan dari layout inflater dan juga contoh penerapannya pada Aplikasi Android.

Materi lainnya yang direkomendasikan:

Sudah saya jelaskan tadi, Layout Inflater digunakan untuk menghubungkan MainActivity (Activity Utama) dengan Sub Actuvuty, yaitu bagian kecil dari Activity. Jika kita gambarkan, kalian bisa melihatnya seperti berikut ini.
Gambaran Dari Konsep Layout Inflater

Layout Inflater digunakan jika kita ingin menambahkan layout tambahan pada ActivityMain kita, pada gambar diatas, kita menambahkan 2 buah layout tambahan pada MainActivity. Untuk penjelasan lebih lanjutnya, mari kita simak tutorial berikut ini.

Belajar Menggunakan Layout Inflater di Android Studio

1) Buka aplikasi Android Studio kalian, Buat Project Baru. Disini kita akan membuat 3 buah layout activity, yaitu 1 buah MainActivity (Activity Utama) dan 2 buah SubActivity (Activity Tambahan).

2) Kita akan membuat SubActivitynya terlebih dahulu, pada SubActivity yang pertama ini, kita akan menambahkan ImageView didalamnya, kalian dapat menyiapkan Gambarnya sendiri.

Buat Activity baru, klik kalan pada direktori layout > New Layout resource file, berinama "sub1_activity", masukan kode xmlnya seperti berikut ini:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:gravity="center"
        android:text="Ini Sub Activiy 1"
        android:textColor="#FF001BAF"
        android:textSize="16sp"
        android:textStyle="bold" />

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="215dp"
        app:srcCompat="@drawable/gambar_saya" />
</LinearLayout>

View:

Screenshot_sub1Activity layout

3) Selanjutnya buat SubAcivity yang ke dua, berinama "sub2_activity", didialamnya akan kita tambahkan Beberapa TextView, sebagai komponen pendukung.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:gravity="center"
        android:text="Ini Sub Activiy 2"
        android:textColor="#FFD30000"
        android:textSize="16sp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Nama : WIldan Muhammad A" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Jurusan : Teknik Informatika" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Job : Android Developer" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Universitas : UNPI Cianjur" />

</LinearLayout>

View:

Screenshot_sub2Activity layout

4) Selanjutnya, buka activity_main.xml kalian, disini kita akan menambahkan 1 buah Container, yaitu LinearLayout. LinerLayout tersebut digunakan sebagai wadah untuk menampilkan activity tambahan yang sudah kita buat tadi.

<?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:layout_margin="8dp"
    android:orientation="vertical"
    android:background="#FFF5F5F5"
    tools:context="android.cianjur.developer.net.basicandroid.MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:gravity="center"
        android:text="Activity Utama"
        android:textColor="#000000"
        android:textSize="16sp"
        android:textStyle="bold" />

    <LinearLayout
        android:id="@+id/konten_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:orientation="vertical">
        
    </LinearLayout>

</LinearLayout>

5) Berikutnya buka MainActivity, pada source code berikut ini, kita akan menggunakan class Layout Inflater, untuk membuat objek view dari layou yang sudah kita buat, lalu menampilkannya pada LinearLayout.

package android.cianjur.developer.net.basicandroid;

/*
 Dibuat Oleh WILDAN M ATHOILLAH
 */

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity{

    //Mendefinisikan Variable LinearLayout, Digunakan sebagai Container/Penampung
    private LinearLayout KontenView;

    //Mendefinisikan View, digunakan untuk SubActivity
    private View Sub1Activity,Sub2Activity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        KontenView = findViewById(R.id.konten_view);

        //Menentukan Layout Resource dan ViewGroup yang akan kita gunakan
        Sub1Activity = getLayoutInflater().inflate(R.layout.sub1_activity, KontenView, false);
        Sub2Activity = getLayoutInflater().inflate(R.layout.sub2_activity, KontenView, false);
        
        //Menampilkan View pada LinearLayout
        KontenView.addView(Sub1Activity);
        KontenView.addView(Sub2Activity);
    }
}

Demo:

Screenshot_Layout Inflater Example

Terimakasih atas kunjungannya, semoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.