Sesi#3 Pemrograman Perangkat Mobile I โ€“ Navigasi Antar Halaman di Aplikasi Mobile (Expo)

๐Ÿ‘‹ 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:

  1. Membuat lebih dari satu halaman (screen) di React Native.
  2. Menggunakan React Navigation untuk berpindah antar halaman.
  3. Menambahkan tombol navigasi seperti โ€œNextโ€ dan โ€œBackโ€.
  4. 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 navigation otomatis 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:

  • NavigationContainer adalah โ€œpembungkus utamaโ€ navigasi.
  • createNativeStackNavigator() digunakan untuk membuat sistem stack navigation (seperti tumpukan halaman).
  • Stack.Screen digunakan 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:

  1. Buat 3 halaman:
    • HomeScreen
    • AboutScreen
    • ContactScreen
  2. Gunakan navigasi antarhalaman.
  3. Tambahkan tombol di setiap halaman untuk berpindah ke halaman lain.
  4. 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! ๐Ÿš€

Categories:

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *