Sesi#1 Pemrograman Perangkat Mobile I – Materi Instalasi Expo (React Native)

1. Tujuan

Mahasiswa mampu:

  • Menginstal Expo CLI & menyiapkan environment pengembangan mobile cross-platform.
  • Menjalankan aplikasi mobile sederhana di emulator atau smartphone dengan Expo Go.
  • Memahami struktur dasar project Expo/React Native.

2. Persyaratan Sistem

  • Laptop/PC dengan:
    • Windows, macOS, atau Linux
    • RAM minimal 4GB (disarankan 8GB)
    • Node.js (versi LTS terbaru, contoh: 18.x atau 20.x)
    • NPM (sudah ada saat install Node.js)
  • Smartphone Android/iOS (opsional emulator)
    • Install aplikasi Expo Go dari Google Play Store / App Store.
  • Koneksi internet stabil.

3. Langkah Instalasi

A. Instal Node.js

  1. Kunjungi: https://nodejs.org
  2. Download versi LTS (recommended for most users).
  3. Jalankan installer → ikuti langkah → centang Add to PATH.
  4. Verifikasi instalasi:
node -v npm -v

B. Instal Expo CLI

  1. Buka terminal / Command Prompt.
  2. Jalankan:
npm install expo
  1. Verifikasi:
expo --version

4. Membuat Project Pertama

  1. Buat project baru:
npx create-expo-app@latest myproject
  1. Jalankan project: npm start atau expo start
<code>npm start
  1. Akan muncul halaman Metro Bundler di browser → tampilkan QR Code.

5. Menjalankan di Smartphone

  1. Install aplikasi Expo Go di smartphone (Play Store / App Store).
  2. Scan QR Code dari Metro Bundler.
  3. Aplikasi “Hello Expo” akan langsung berjalan di smartphone.

6. Menjalankan di Emulator (opsional)

  • Android Emulator: install Android Studio → AVD Manager → buat virtual device.
  • iOS Simulator: (khusus macOS) bisa jalankan via Xcode.
  • Jalankan dari Metro Bundler: klik tombol Run on Android device/emulator.

7. Struktur Project Expo

  • App.json → file utama aplikasi.
  • package.json → daftar dependency project.
  • node_modules/ → library yang dipakai.
  • assets/ → gambar, font, dll.

8. Uji Coba (Hello World)

Edit file : app\tabs\index.tsx:

// Import library dan komponen yang dibutuhkan
import { ThemedText } from '@/components/themed-text'; // Komponen teks yang mendukung tema (dark/light mode)
import { ThemedView } from '@/components/themed-view'; // Komponen view yang mendukung tema (dark/light mode)
import { StyleSheet } from 'react-native'; // StyleSheet untuk membuat styling CSS-like

// Fungsi komponen utama untuk halaman Home
export default function HomeScreen() {
  // Return JSX - struktur tampilan yang akan ditampilkan
  return (
    // ThemedView = container utama yang mendukung tema
    // style={styles.container} = menerapkan styling dari StyleSheet di bawah
    &lt;ThemedView style={styles.container}>
      {/* ThemedView kedua = container untuk konten di tengah */}
      &lt;ThemedView style={styles.content}>
        {/* ThemedText untuk judul utama */}
        {/* type="title" = memberikan styling default untuk judul */}
        {/* style={styles.title} = menambahkan styling custom */}
        &lt;ThemedText type="title" style={styles.title}>
          Hello World!
        &lt;/ThemedText>
        
        {/* ThemedText untuk subtitle */}
        &lt;ThemedText style={styles.subtitle}>
          Selamat datang di aplikasi Expo pertama Anda! 🎉
        &lt;/ThemedText>
        
        {/* ThemedText untuk deskripsi */}
        &lt;ThemedText style={styles.description}>
          Ini adalah halaman pertama yang Anda buat. Mari belajar lebih lanjut tentang React Native dan Expo!
        &lt;/ThemedText>
      &lt;/ThemedView>
    &lt;/ThemedView>
  );
}

// StyleSheet untuk styling komponen (seperti CSS tapi untuk React Native)
const styles = StyleSheet.create({
  // Style untuk container utama
  container: {
    flex: 1, // Menggunakan seluruh ruang yang tersedia
    justifyContent: 'center', // Menempatkan konten di tengah secara vertikal
    alignItems: 'center', // Menempatkan konten di tengah secara horizontal
    padding: 20, // Jarak dari tepi layar
  },
  // Style untuk container konten
  content: {
    alignItems: 'center', // Menempatkan semua item di tengah
    maxWidth: 300, // Lebar maksimal konten
  },
  // Style untuk judul utama
  title: {
    fontSize: 32, // Ukuran font besar
    fontWeight: 'bold', // Font tebal
    marginBottom: 16, // Jarak bawah dari elemen berikutnya
    textAlign: 'center', // Teks di tengah
  },
  // Style untuk subtitle
  subtitle: {
    fontSize: 18, // Ukuran font sedang
    marginBottom: 12, // Jarak bawah
    textAlign: 'center', // Teks di tengah
    opacity: 0.8, // Transparansi 80%
  },
  // Style untuk deskripsi
  description: {
    fontSize: 16, // Ukuran font normal
    textAlign: 'center', // Teks di tengah
    lineHeight: 24, // Jarak antar baris
    opacity: 0.7, // Transparansi 70%
  },
});

Simpan → aplikasi otomatis reload → muncul tulisan “Hello, Expo! 🎉”.


9. Troubleshooting Umum

  • Error “expo not recognized” → pastikan Node.js & npm sudah terinstal & PATH benar.
  • QR Code tidak bisa discan → pastikan laptop & HP dalam satu Wi-Fi/LAN.
  • Aplikasi tidak reload otomatis → tekan r di terminal (restart bundler).
  • Port error → ganti port dengan: expo start --port 19001

10. Tugas Mahasiswa

  1. Install Node.js + Expo CLI di laptop.
  2. Buat project hello-expo.
  3. Jalankan di smartphone via Expo Go.
  4. Edit App.js → ganti teks menjadi:
<code>Nama Anda - NIM - Hello Expo
  1. Upload screenshot ke LMS.

📌 Indikator OBE:

  • Knowledge: Memahami kebutuhan environment mobile.
  • Skill: Menginstal & menjalankan Expo project.
  • Attitude: Mampu troubleshooting mandiri.
Categories:

Tinggalkan Balasan

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