๐ Halo, teman-teman!
Kalian udah bisa bikin tampilan dasar dan layout UI di Expo kan? Nah, sekarang kita naik level dikit nih ๐
Kali ini, kita bakal belajar cara membuat beberapa halaman (screen) dan menghubungkannya satu sama lain dengan sistem navigasi.
Bayangin aja kayak aplikasi nyata:
- Dari halaman โHomeโ โ pindah ke โProfilโ
- Dari โProfilโ โ balik lagi ke โHomeโ
- Semua itu butuh navigasi agar user bisa berpindah dengan mudah.
๐ฏ Tujuan Pembelajaran
Setelah kamu belajar materi ini, kamu akan bisa:
- Membuat lebih dari satu halaman (screen) di React Native.
- Menggunakan React Navigation untuk berpindah antar halaman.
- Menambahkan tombol navigasi seperti โNextโ dan โBackโ.
- Memahami struktur folder dan sinkronisasi antar komponen di Expo.
โ๏ธ 1. Persiapan Awal
Pastikan kamu sudah punya Expo CLI dan proyek yang aktif (misalnya folder project-ui dari pertemuan sebelumnya).
Selanjutnya, install <strong>React Navigation</strong> menggunakan perintah berikut di terminal proyek:
npx expo install @react-navigation/native
npx expo install react-native-screens react-native-safe-area-context
npx expo install @react-navigation/native-stack
๐ก React Navigation adalah library resmi yang dipakai banyak developer untuk navigasi di Expo dan React Native.
๐ 2. Membuat Struktur Folder
Biar rapi, kita buat folder screens untuk menampung halaman.
project-ui/
โโโ App.js
โโโ screens/
โ โโโ HomeScreen.js
โ โโโ ProfileScreen.js
๐ 3. Buat Halaman Pertama (HomeScreen.js)
import React from ‘react’;
import { View, Text, Button, StyleSheet } from ‘react-native’;
import React from 'react';
import { View, Text, Button, StyleSheet } from 'react-native';
export default function HomeScreen({ navigation }) {
return (
<View style={styles.container}>
<Text style={styles.text}>Selamat datang di Halaman Utama!</Text>
<Button
title="Ke Halaman Profil"
onPress={() => navigation.navigate('Profile')}
/>
</View>
);
}
const styles = StyleSheet.create({
container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
text: { fontSize: 20, marginBottom: 20 },
});
๐ง Penjelasan:
navigation.navigate('Profile')โ fungsi untuk pindah ke halaman lain.- Properti
navigationotomatis disediakan oleh React Navigation.
๐ค 4. Buat Halaman Kedua (ProfileScreen.js)
import React from 'react';
import { View, Text, Button, StyleSheet } from 'react-native';
import React from 'react';
import { View, Text, Button, StyleSheet } from 'react-native';
export default function ProfileScreen({ navigation }) {
return (
<View style={styles.container}>
<Text style={styles.text}>Ini Halaman Profil!</Text>
<Button
title="Kembali ke Home"
onPress={() => navigation.goBack()}
/>
</View>
);
}
const styles = StyleSheet.create({
container: { flex: 1, justifyContent: 'center', alignItems: 'center' },
text: { fontSize: 20, marginBottom: 20 },
});
๐ง Penjelasan:
navigation.goBack()digunakan untuk kembali ke halaman sebelumnya.- Kamu juga bisa pakai
navigation.navigate('Home')untuk pindah langsung ke halaman Home.
๐ 5. Mengatur Navigasi di App.js
Sekarang kita atur agar kedua halaman tadi bisa saling terhubung.
import * as React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import HomeScreen from './screens/HomeScreen';
import ProfileScreen from './screens/ProfileScreen';
const Stack = createNativeStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Profile" component={ProfileScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
๐งญ Penjelasan:
NavigationContaineradalah โpembungkus utamaโ navigasi.createNativeStackNavigator()digunakan untuk membuat sistem stack navigation (seperti tumpukan halaman).Stack.Screendigunakan untuk mendefinisikan halaman yang bisa diakses.
๐งฉ 6. Hasil Akhir
Kalau semua sudah benar, maka hasilnya:
โ
Di halaman Home, muncul teks dan tombol โKe Halaman Profilโ.
โ
Saat tombol ditekan, kamu akan berpindah ke halaman Profil.
โ
Di Profil, kamu bisa klik tombol โKembali ke Homeโ.
โ
Semua peralihan halaman terlihat halus dan responsif.
๐ Selamat! Sekarang aplikasimu sudah punya dua halaman yang saling terhubung.
๐ก 7. Menambahkan Desain Header dan Judul
Kamu bisa kustomisasi tampilan judul di atas halaman.
<Stack.Screen
name="Profile"
component={ProfileScreen}
options={{ title: 'Halaman Profil Pengguna', headerStyle: { backgroundColor: '#00796b' }, headerTintColor: '#fff' }}
/>
๐ Warna header bisa disesuaikan agar tampilan lebih menarik.
๐ง 8. Latihan Praktek Mahasiswa
Tugas Praktek:
- Buat 3 halaman:
HomeScreenAboutScreenContactScreen
- Gunakan navigasi antarhalaman.
- Tambahkan tombol di setiap halaman untuk berpindah ke halaman lain.
- Ganti warna header agar tampilannya lebih menarik.
Bonus:
Tambahkan ikon di header menggunakan library @expo/vector-icons.
๐ Kesimpulan
Dari materi ini kamu sudah belajar:
- Cara membuat beberapa halaman dalam aplikasi.
- Menghubungkan antarhalaman menggunakan React Navigation.
- Mengatur tampilan header dan tombol navigasi.
Navigasi adalah jantung dari pengalaman pengguna. Dengan paham cara kerja navigasi, kamu sudah selangkah lebih dekat ke pembuatan aplikasi mobile yang โbeneranโ fungsional! ๐





Tinggalkan Balasan