Pengenalan Fungsi Dasar Interaksi & Struktur Antarmuka di React Native
Pada materi kali ini, kita akan belajar cara membuat antarmuka dan interaksi dasar di React Native, meliputi:
- Fungsi dasar interaksi React Native (
TextInput,ScrollView,ListView) - Struktur pembangun antarmuka React Native
- Membuat layout antarmuka sederhana
1. Fungsi Dasar Interaksi React Native
React Native menyediakan berbagai komponen bawaan untuk berinteraksi dengan pengguna.
Tiga komponen dasar yang paling sering digunakan adalah:
a. TextInput
Digunakan untuk menerima input teks dari pengguna, seperti form login, komentar, atau pencarian.
Contoh:
import React, { useState } from "react"; import { View, Text, TextInput } from "react-native"; export default function TextInputExample() { const [nama, setNama] = useState(""); return ( <View style={{ padding: 20 }}> <Text>Masukkan Nama Anda:</Text> <TextInput style={{ borderWidth: 1, borderColor: "#ccc", borderRadius: 5, padding: 10, marginTop: 10, }} placeholder="Ketik di sini..." onChangeText={(text) => setNama(text)} /> <Text style={{ marginTop: 10 }}>Halo, {nama}!</Text> </View> ); } Penjelasan:
-
TextInputmenerima teks dari pengguna. -
onChangeTextdigunakan untuk menangkap nilai input. -
useStatemenyimpan teks yang dimasukkan.
b. ScrollView
Digunakan untuk menggulung (scroll) tampilan secara vertikal atau horizontal.
Sangat berguna jika konten di layar cukup panjang.
Contoh:
import React from "react"; import { ScrollView, Text } from "react-native"; export default function ScrollViewExample() { return ( <ScrollView style={{ padding: 20 }}> {[...Array(20)].map((_, i) => ( <Text key={i} style={{ marginVertical: 10 }}> Ini item ke-{i + 1} </Text> ))} </ScrollView> ); } Penjelasan:
-
ScrollViewmenampung elemen yang panjang. - Gunakan
map()untuk menampilkan banyak teks dalam satu tampilan.
c. ListView (FlatList)
FlatList digunakan untuk menampilkan daftar data (list) secara efisien.
Ini adalah versi modern dari ListView.
Contoh:
import React from "react"; import { View, Text, FlatList } from "react-native"; const dataMahasiswa = [ { id: "1", nama: "Dita" }, { id: "2", nama: "Andi" }, { id: "3", nama: "Rina" }, ]; export default function FlatListExample() { return ( <FlatList data={dataMahasiswa} keyExtractor={(item) => item.id} renderItem={({ item }) => ( <View style={{ padding: 15, borderBottomWidth: 1, borderBottomColor: "#ddd", }} > <Text>{item.nama}</Text> </View> )} /> ); } Penjelasan:
-
databerisi array daftar data. -
renderItemdigunakan untuk menampilkan setiap item dalam daftar. -
keyExtractormemberikan ID unik untuk setiap elemen.
2. Struktur Pembangun Antarmuka di React Native
Aplikasi React Native disusun menggunakan komponen.
Komponen-komponen ini bisa dibayangkan seperti “kepingan Lego” yang disusun menjadi satu tampilan.
Struktur dasarnya terdiri dari:
| Komponen | Fungsi | Contoh |
|---|---|---|
| View | Wadah utama atau kontainer | <View>...</View> |
| Text | Menampilkan teks | <Text>Halo Dunia</Text> |
| Image | Menampilkan gambar | <Image source={...} /> |
| Button | Tombol interaksi | <Button title="Klik" /> |
| TextInput | Input teks dari pengguna | <TextInput /> |
Contoh struktur dasar:
import React from "react"; import { View, Text, Button } from "react-native"; export default function StrukturDasar() { return ( <View style={{ padding: 20 }}> <Text>Halo, ini struktur antarmuka dasar React Native!</Text> <Button title="Klik Saya" onPress={() => alert("Tombol diklik!")} /> </View> ); } 3. Membuat Layout Antarmuka Sederhana
Untuk mengatur tata letak antarmuka, React Native menggunakan sistem Flexbox — sama seperti di CSS.
Dengan Flexbox, kita bisa mengatur arah, posisi, dan ukuran elemen dengan mudah.
Contoh Layout Sederhana:
import React from "react"; import { View, Text, StyleSheet } from "react-native"; export default function LayoutSederhana() { return ( <View style={styles.container}> <View style={styles.box1}> <Text>Header</Text> </View> <View style={styles.box2}> <Text>Konten Utama</Text> </View> <View style={styles.box3}> <Text>Footer</Text> </View> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, padding: 10, }, box1: { flex: 1, backgroundColor: "#FFD700", justifyContent: "center", alignItems: "center", }, box2: { flex: 3, backgroundColor: "#ADD8E6", justifyContent: "center", alignItems: "center", }, box3: { flex: 1, backgroundColor: "#90EE90", justifyContent: "center", alignItems: "center", }, }); Penjelasan:
-
flex: 1artinya ruang dibagi proporsional berdasarkan nilaiflex. -
justifyContentdanalignItemsdigunakan untuk mengatur posisi elemen. -
StyleSheet.create()digunakan untuk membuat style terpisah agar kode rapi.
Kesimpulan
| Konsep | Fungsi | Komponen |
|---|---|---|
| TextInput | Menerima input teks dari pengguna | TextInput |
| ScrollView | Menampilkan konten panjang yang bisa digulung | ScrollView |
| ListView / FlatList | Menampilkan daftar data secara efisien | FlatList |
| View, Text, Image | Penyusun utama antarmuka | - |
| Flexbox | Mengatur layout dan posisi elemen | flex, justifyContent, alignItems |
Top comments (0)