0% menganggap dokumen ini bermanfaat (0 suara)
15 tayangan7 halaman

Mobile Programming Pertemuan 9 Modul

Dokumen ini membahas implementasi ListView dan RecyclerView dalam aplikasi Android, menjelaskan perbedaan antara keduanya serta cara penggunaan Adapter. ListView cocok untuk daftar data sederhana, sedangkan RecyclerView lebih efisien dan fleksibel, mendukung berbagai layout dan animasi. Selain itu, dokumen ini juga memberikan panduan langkah demi langkah untuk membuat aplikasi daftar kontak menggunakan kedua komponen tersebut.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
15 tayangan7 halaman

Mobile Programming Pertemuan 9 Modul

Dokumen ini membahas implementasi ListView dan RecyclerView dalam aplikasi Android, menjelaskan perbedaan antara keduanya serta cara penggunaan Adapter. ListView cocok untuk daftar data sederhana, sedangkan RecyclerView lebih efisien dan fleksibel, mendukung berbagai layout dan animasi. Selain itu, dokumen ini juga memberikan panduan langkah demi langkah untuk membuat aplikasi daftar kontak menggunakan kedua komponen tersebut.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Septa, S.Kom., M.

Kom

PERTEMUAN 9:
IMPLEMENTASI RECYCLERVIEW DAN LISTVIEW DALAM
APLIKASI ANDROID

9.1 ListView dan RecyclerView


ListView adalah komponen UI Android yang digunakan untuk menampilkan daftar data
dalam bentuk vertikal. Biasanya, ListView digunakan untuk menampilkan daftar data
yang sederhana. Namun, ListView memiliki beberapa keterbatasan, seperti kinerja yang
buruk saat menampilkan daftar data yang sangat banyak. ListView menggunakan Adapter
untuk menghubungkan data dengan tampilan. Sedagkan RecyclerView adalah pengganti
ListView yang lebih efisien dan fleksibel. RecyclerView memiliki kemampuan untuk
menampilkan data dalam bentuk daftar atau grid, serta mendukung animasi saat item
ditambahkan atau dihapus. RecyclerView jauh lebih efisien daripada ListView, karena
menggunakan konsep ViewHolder untuk meminimalkan pengelolaan ulang tampilan UI.
RecyclerView membutuhkan Adapter dan ViewHolder untuk menghubungkan data dan
tampilan. RecyclerView memiliki berbagai kelebihan dibandingkan ListView, seperti
fleksibilitas dalam layout (LinearLayout, GridLayout, StaggeredGridLayout) dan kinerja
yang lebih baik.

9.2 Adapter dalam ListView dan RecyclerView


a. Adapter untuk ListView
Adapter untuk ListView bertanggung jawab untuk menghubungkan data dengan
tampilan item dalam daftar. ArrayAdapter adalah salah satu contoh Adapter yang
digunakan untuk menghubungkan ListView dengan data dalam bentuk array atau daftar.
String[] data = {"Item 1", "Item 2", "Item 3"};
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, data);
ListView listView = findViewById(R.id.listView);
listView.setAdapter(adapter);

b. Adapter untuk RecyclerView


Adapter pada RecyclerView juga bertanggung jawab untuk menghubungkan data
dengan tampilan, tetapi dalam hal ini, RecyclerView.Adapter bekerja bersama dengan
1
Septa, S.Kom., M.Kom

ViewHolder. RecyclerView.Adapter mengelola tampilan ViewHolder untuk


mengurangi overhead pemrosesan tampilan setiap kali item digulir.
public class MyAdapter extends
RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<String> dataList;

public MyAdapter(List<String> dataList) {


this.dataList = dataList;
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent,
int viewType) {
View itemView =
LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple
_list_item_1, parent, false);
return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int
position) {
holder.textView.setText(dataList.get(position));
}

@Override
public int getItemCount() {
return dataList.size();
}

public static class MyViewHolder extends RecyclerView.ViewHolder {


TextView textView;

public MyViewHolder(View itemView) {


super(itemView);
textView = itemView.findViewById(android.R.id.text1);
}
}
}

9.3 Implementasi Aplikasi Daftar Kontak dengan ListView dan RecyclerView


a. Persiapan Proyek
1. Buka Android Studio.

2
Septa, S.Kom., M.Kom

2. Pilih New Project pada halaman awal Android Studio.

3. Pilih template Empty Views Activity.

4. Beri nama proyek Aplikasi Latihan 9.

3
Septa, S.Kom., M.Kom

5. Language pilih Java


6. Klik Finish.

b. Membuat Layout
1. Edit layout untuk Aplikasi Latihan 9 di res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- SearchView untuk pencarian kontak -->


<androidx.appcompat.widget.SearchView
android:id="@+id/searchView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:queryHint="Cari kontak..." />

<!-- ListView untuk menampilkan daftar kontak -->


<ListView
android:id="@+id/contactListView"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_below="@id/searchView"
android:layout_marginTop="20dp" />

<!-- RecyclerView untuk menampilkan daftar kontak -->


<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contactRecyclerView"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_below="@id/contactListView"
android:layout_marginTop="20dp" />

4
Septa, S.Kom., M.Kom

</RelativeLayout>

c. Membuat Activity java


1. Edit file MainActivity.java di src → main → java→ (nama package).
MainActivity.java
package id.septa.latihan9;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private ListView contactListView;


private RecyclerView contactRecyclerView;
private SearchView searchView;
private List<String> contactList;
private List<String> filteredContactList;
private ArrayAdapter<String> listViewAdapter;
private ContactAdapter recyclerViewAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Inisialisasi komponen UI
contactListView = findViewById(R.id.contactListView);
contactRecyclerView =
findViewById(R.id.contactRecyclerView);
searchView = findViewById(R.id.searchView);

// Inisialisasi daftar kontak


contactList = new ArrayList<>();
contactList.add("Ayu");
contactList.add("Kamal");
contactList.add("Bejo");
contactList.add("Anita");
contactList.add("Surya");

filteredContactList = new ArrayList<>(contactList);

// Set up ListView dengan ArrayAdapter


listViewAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, filteredContactList);
contactListView.setAdapter(listViewAdapter);

5
Septa, S.Kom., M.Kom

// Set up RecyclerView dengan Adapter Kustom


contactRecyclerView.setLayoutManager(new
LinearLayoutManager(this));
recyclerViewAdapter = new
ContactAdapter(filteredContactList);
contactRecyclerView.setAdapter(recyclerViewAdapter);

// Filter kontak berdasarkan pencarian di SearchView


searchView.setOnQueryTextListener(new
SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}

@Override
public boolean onQueryTextChange(String newText) {
filteredContactList.clear();
for (String contact : contactList) {
if
(contact.toLowerCase().contains(newText.toLowerCase())) {
filteredContactList.add(contact);
}
}
listViewAdapter.notifyDataSetChanged();
recyclerViewAdapter.notifyDataSetChanged();
return false;
}
});
}

// Adapter untuk RecyclerView


private static class ContactAdapter extends
RecyclerView.Adapter<ContactAdapter.ContactViewHolder> {
private final List<String> contactList;

public ContactAdapter(List<String> contactList) {


this.contactList = contactList;
}

@Override
public ContactViewHolder onCreateViewHolder(ViewGroup
parent, int viewType) {
View view =
LayoutInflater.from(parent.getContext()).inflate(android.R.layout
.simple_list_item_1, parent, false);
return new ContactViewHolder(view);
}

@Override
public void onBindViewHolder(ContactViewHolder holder,
int position) {
holder.textView.setText(contactList.get(position));
}

@Override
public int getItemCount() {
return contactList.size();
}

public static class ContactViewHolder extends

6
Septa, S.Kom., M.Kom

RecyclerView.ViewHolder {
TextView textView;

public ContactViewHolder(View itemView) {


super(itemView);
textView =
itemView.findViewById(android.R.id.text1);
}
}
}
}

d. Jalankan Aplikasi
Jalankan Aplikasi klik tombol play atau shift + f10 hasilnya seperti berikut:

A. SOAL LATIHAN DAN TUGAS


1. Buatlah sebuah aplikasi Daftar Belanja menggunakan ListView dan RecyclerView yang
memungkinkan pengguna untuk menambahkan barang ke dalam daftar belanja.
Aplikasi tersebut harus dilengkapi dengan SearchView untuk mencari barang dalam
daftar belanja, dan hasil pencarian harus diperbarui secara otomatis di kedua ListView
dan RecyclerView. Gunakan ArrayAdapter untuk ListView dan RecyclerView.Adapter
dengan ViewHolder untuk RecyclerView.

Anda mungkin juga menyukai