Showing posts with label Sistem Informasi. Show all posts
Showing posts with label Sistem Informasi. Show all posts

Wednesday, October 22, 2025

Perbedaan React Native & React.js — Mana yang Tepat untuk Proyekmu?

Perbedaan React Native & React.js — Mana yang Tepat untuk Proyekmu? + Contoh Aplikasinya


Di dunia pengembangan aplikasi modern, dua nama yang sering muncul adalah React.js dan React Native. Keduanya berasal dari ekosistem yang sama, dibuat oleh tim Facebook/Meta, tetapi dibuat untuk tujuan berbeda. Artikel ini membahas perbedaan fundamental, kelebihan & kekurangan, kapan memilih masing-masing, serta contoh aplikasi dan potongan kode nyata.

Ringkasan Singkat

  • React.js (sering disebut React) adalah library JavaScript untuk membangun antarmuka web (UI), komponen berbasis DOM, cocok untuk aplikasi web SPA (Single Page Application).
  • React Native adalah framework untuk membangun aplikasi mobile native (iOS & Android) menggunakan JavaScript dan sintaks mirip React, namun render target-nya adalah native UI components, bukan HTML DOM.

Perbedaan Utama (Side-by-Side)

Aspek React.js React Native
Target Platform Web browser, HTML / CSS / DOM iOS & Android, Native UI components
UI Layer HTML (div, button, input) View, Text, TouchableOpacity, ScrollView
Styling CSS / CSS-in-JS StyleSheet (JS object), mirip inline style
Akses fitur device Terbatas, perlu Web APIs (geolocation, media) Mudah via Native Modules & APIs (camera, sensors, storage)
Deployment Host ke server / CDN (Netlify, Vercel) Build ke APK / AAB (Android) & IPA (iOS), publish di Play Store / App Store

Kelebihan & Kekurangan

React.js — Kelebihan

  • Mature ecosystem untuk web (React Router, Next.js, Redux).
  • SEO-friendly (dengan SSR / Next.js).
  • Performa rendering DOM yang optimal untuk web.
  • Mudah integrasi dengan layanan web dan CMS.

React.js — Kekurangan

  • Tidak memberi akses langsung ke fitur native perangkat (kecuali Web APIs).
  • Pengalaman mobile web kadang kalah dibanding native.

React Native — Kelebihan

  • Satu basis kode JavaScript untuk iOS & Android (kembali ke native components).
  • Akses lebih mudah ke fitur perangkat (kamera, GPS, filesystem).
  • UI lebih native dibanding webview-based hybrid apps.

React Native — Kekurangan

  • Perlu effort untuk styling & perbedaan platform (iOS vs Android).
  • Jika butuh modul native khusus, mungkin harus menulis kode Java/Kotlin atau Swift/Obj-C.
  • Bundle & proses release lebih kompleks dibanding web.

Kapan Memilih React.js (Web)?

  • Kamu membuat website atau web app (dashboard admin, e-commerce, blog, landing page).
  • Perlu dukungan SEO dan indexing mesin pencari.
  • Mau iterasi cepat, deploy ke CDN, dan jangkauan luas tanpa instalasi.

Kapan Memilih React Native (Mobile)?

  • Kamu butuh fitur perangkat (kamera, push notification, sensor).
  • Mengutamakan pengalaman mobile yang responsif dan terasa native.
  • Ingin satu basis kode JavaScript untuk dua platform mobile utama.

Contoh Aplikasi, Ide & Potongan Kode

1) Contoh Aplikasi Web dengan React.js, Todo App sederhana

Fitur: tambah tugas, tandai selesai, filter.


// App.jsx (React.js)
import React, { useState } from 'react';

export default function App() {
  const [todos, setTodos] = useState([]);
  const [text, setText] = useState('');

  function addTodo() {
    if (!text.trim()) return;
    setTodos([...todos, { id: Date.now(), text, done: false }]);
    setText('');
  }

  function toggleDone(id) {
    setTodos(todos.map(t => t.id === id ? { ...t, done: !t.done } : t));
  }

  return (
    <div style={{maxWidth:600, margin:'40px auto'}}>
      <h1>Todo App (React.js)</h1>
      <input value={text} onChange={e => setText(e.target.value)} />
      <button onClick={addTodo}>Add</button>
      <ul>
        {todos.map(t => (
          <li key={t.id}>
            <input type="checkbox" checked={t.done} onChange={() => toggleDone(t.id)} />
            <span style={{textDecoration: t.done ? 'line-through' : 'none'}}>{t.text}</span>
          </li>
        ))}
      </ul>
    </div>
  );
}

  

2) Contoh Aplikasi Mobile dengan React Native, Todo App sederhana

Fitur serupa, tapi menggunakan komponen native.


// App.js (React Native)
import React, { useState } from 'react';
import { SafeAreaView, View, Text, TextInput, Button, FlatList, TouchableOpacity } from 'react-native';

export default function App() {
  const [todos, setTodos] = useState([]);
  const [text, setText] = useState('');

  function addTodo() {
    if (!text.trim()) return;
    setTodos([...todos, { id: Date.now().toString(), text, done: false }]);
    setText('');
  }

  function toggleDone(id) {
    setTodos(todos.map(t => t.id === id ? { ...t, done: !t.done } : t));
  }

  return (
    <SafeAreaView style={{flex:1, padding:20}}>
      <Text style={{fontSize:24, marginBottom:12}}>Todo App (React Native)</Text>
      <View style={{flexDirection:'row', marginBottom:12}}>
        <TextInput value={text} onChangeText={setText} style={{flex:1, borderWidth:1, padding:8}} />
        <Button title="Add" onPress={addTodo} />
      </View>
      <FlatList
        data={todos}
        keyExtractor={item => item.id}
        renderItem={({item}) => (
          <TouchableOpacity onPress={() => toggleDone(item.id)} style={{padding:10}}>
            <Text style={{textDecorationLine: item.done ? 'line-through' : 'none'}}>{item.text}</Text>
          </TouchableOpacity>
        )}
      />
    </SafeAreaView>
  );
}

  

Catatan Teknis & Tips Praktis

  1. Komponen UI: Jangan menganggap komponen React.js otomatis bekerja di React Native, elemen dan styling berbeda.
  2. State Management: Gunakan Redux, Zustand, atau Context API sesuai kompleksitas, berlaku di kedua platform.
  3. Code Sharing: Logika bisnis (utilities, hooks, state) bisa di-share; UI layer biasanya terpisah.
  4. Performa: React Native mendekati native, tapi heavy animations harus dioptimasi (Reanimated / native-driver).
  5. Testing & Deployment: Web: Lighthouse, browser testing; Mobile: emulator & device testing, CI/CD untuk build mobile (Fastlane, EAS).

Kesimpulan

Pilihan antara React.js dan React Native bergantung pada tujuan produk. Jika targetmu adalah pengalaman web, SEO, dan distribusi cepat, pilih React.js. Jika targetmu adalah pengalaman mobile yang mendalam dan akses fitur perangkat, React Native lebih cocok. Banyak tim menggunakan keduanya: React.js untuk web, React Native untuk aplikasi mobile, dan berbagi logika bisnis sebanyak mungkin untuk efisiensi.

Sunday, October 5, 2025

Tutorial Lengkap Git & GitHub untuk Pemula: Mengelola Kode dengan Mudah

Di dunia pemrograman modern, Git dan GitHub telah menjadi alat wajib yang digunakan oleh developer untuk mengelola dan berbagi kode. Namun, bagi yang baru memulai, kedua tools ini mungkin terlihat menakutkan. Tenang saja! Artikel ini akan membahas tutorial lengkap Git dan GitHub dari dasar hingga siap digunakan untuk proyek nyata.

Apa Itu Git dan GitHub?

Git: Sistem Version Control yang Cerdas

Git adalah sistem version control yang berfungsi untuk mencatat setiap perubahan pada kode program. Bayangkan Git seperti mesin waktu untuk kode Anda - Anda bisa melihat sejarah perubahan, kembali ke versi sebelumnya, atau bekerja pada beberapa fitur sekaligus tanpa takut merusak kode utama.

Analogi sederhana: Git seperti fitur "history" di Google Docs, tetapi jauh lebih powerful dan dirancang khusus untuk kode program.

GitHub: Platform Sosial untuk Programmer

GitHub adalah platform berbasis cloud yang menyimpan kode yang dikelola dengan Git. Jika Git adalah mesinnya, maka GitHub adalah garasinya - tempat menyimpan, berbagi, dan berkolaborasi dengan developer lain.

Perbedaan Mendasar Git vs GitHub

GitGitHub
Sistem version control lokal di komputerPlatform hosting online
Diinstall di komputer pribadiDiakses melalui website
Mengelola perubahan kodeMenyimpan dan berbagi kode
Gratis dan open-sourceGratis untuk proyek publik

Langkah Awal Memulai Git & GitHub

1. Install Git di Komputer

  • Download Git dari git-scm.com

  • Install dengan setting default (sesuai sistem operasi Anda)

  • Verifikasi instalasi dengan membuka terminal/CMD dan ketik: git --version

2. Buat Akun GitHub

  • Kunjungi github.com

  • Daftar dengan email, username, dan password

  • Verifikasi email Anda

3. Konfigurasi Awal Git

Setelah install, lakukan konfigurasi dasar:

bash
git config --global user.name "nama-anda"
git config --global user.email "email-anda@gmail.com"

Panduan Praktis Menggunakan Git & GitHub

Cara Membuat Repository di GitHub

  1. Login ke akun GitHub

  2. Klik tombol "New" atau "+" di pojok kanan atas

  3. Isi nama repository (misal: project-pertama-saya)

  4. Tambahkan deskripsi (opsional)

  5. Pilih Public (gratis) atau Private

  6. Centang "Add a README file"

  7. Klik "Create repository"

Upload Project Pertama ke GitHub

bash
# Masuk ke folder project
cd path/ke/folder/project

# Inisialisasi repository Git
git init

# Tambahkan semua file ke staging area
git add .

# Buat commit pertama
git commit -m "Initial commit - project pertama"

# Hubungkan dengan repository GitHub
git remote add origin https://github.com/username/repository-name.git

# Upload ke GitHub
git push -u origin main

Clone Repository yang Sudah Ada

bash
# Salin URL repository dari GitHub
git clone https://github.com/username/repository-name.git

Konsep Penting dalam Git

1. Branch: Cabang Kode untuk Eksperimen

Branch memungkinkan Anda bekerja pada fitur baru tanpa mengganggu kode utama.

bash
# Buat branch baru
git branch fitur-baru

# Pindah ke branch tersebut
git checkout fitur-baru

# Atau buat dan pindah sekaligus
git checkout -b fitur-baru

2. Commit: Titik Penyimpanan Perubahan

Setiap commit adalah snapshot perubahan kode Anda.

bash
# Lihat status perubahan
git status

# Tambahkan file tertentu
git add nama-file.html

# Atau tambahkan semua file
git add .

# Buat commit dengan pesan deskriptif
git commit -m "Menambah fitur login user"

3. Push & Pull: Sinkronisasi dengan GitHub

bash
# Upload perubahan ke GitHub
git push origin nama-branch

# Download perubahan terbaru dari GitHub
git pull origin nama-branch

Workflow Development dengan Git

Alur Kerja Standar

  1. Pull perubahan terbaru dari main branch

  2. Buat branch baru untuk fitur yang dikerjakan

  3. Commit perubahan secara teratur

  4. Push branch ke GitHub

  5. Buat Pull Request untuk menggabungkan ke main branch

  6. Review code dan merge

Contoh Workflow Sehari-hari

bash
# Mulai hari dengan update kode terbaru
git pull origin main

# Buat branch untuk fitur hari ini
git checkout -b fitur-pembayaran

# Bekerja dan commit secara berkala
git add .
git commit -m "Implementasi metode pembayaran transfer bank"

# Simpan sementara kerjaan (jika perlu switch context)
git stash

# Upload ke GitHub
git push origin fitur-pembayaran

Manfaat Menggunakan GitHub dalam Karir Programming

1. Portofolio Digital yang Hidup

GitHub menjadi CV digital yang menunjukkan skill dan kontribusi Anda.

2. Kolaborasi Tim yang Efisien

  • Multiple developer bisa kerja pada project sama

  • Track changes dan who did what

  • Code review terintegrasi

3. Backup dan Keamanan

Kode aman tersimpan di cloud, tidak takut kehilangan jika komputer rusak.

4. Continuous Integration/Deployment

Dengan GitHub Actions, Anda bisa otomatiskan testing dan deployment.

Best Practices Git & GitHub

Pesan Commit yang Baik

❌ Burukfix bug
✅ BaikPerbaikan validasi input email pada form registrasi

Branch Naming Convention

  • feature/login-authentication

  • bugfix/fix-null-pointer-exception

  • hotfix/critical-security-patch

Commit Secara Teratur

Jangan menumpuk perubahan besar dalam satu commit. Commit kecil dan sering lebih mudah di-track.

Kesimpulan

Menguasai Git dan GitHub bukan lagi pilihan, tapi kebutuhan bagi setiap developer modern. Dengan tutorial ini, Anda sudah memiliki pondasi yang kuat untuk:

  • ✅ Mengelola versi kode dengan rapi

  • ✅ Berkolaborasi dengan tim developer

  • ✅ Membangun portofolio programming

  • ✅ Menjadi programmer yang lebih terorganisir

Action Step Sekarang:

  1. Install Git di komputer

  2. Buat akun GitHub

  3. Coba buat repository pertama

  4. Practice dengan project kecil

Jangan takut untuk bereksperimen dan membuat kesalahan - itu bagian dari proses belajar! GitHub memiliki community yang sangat supportive untuk developer pemula.

Selamat mencoba dan happy coding! 🚀 



Sunday, September 24, 2023

Bahasa Pemrograman Java - Belajar 3

 Bahasa pemrograman Java mendefinisikan delapan tipe data primitif. Mereka diantaranya adalah boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double and float (floating point).

Variabel adalah item yang digunakan data untuk menyimpan pernyataan objek. Variabel memiliki tipe data dan nama. Tipe data menandakan tipe nilai yang dapat dibentuk oleh variabel itu sendiri. Nama variabel harus mengikuti aturan untuk identifier.

Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga kompilernya akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan. Tipe operator antara lain Operator Aritmatika, Operator Increment dan Decrement, Operator Relasi, Operator logika, Operator Kondisi(?:), Operator Precedence.

Komentar adalah catatan yang ditulis pada kode dengan tujuan sebagai bahan dokumentasi. Teks tersebut bukan bagian dari program dan tidak mempengaruhi jalannya program. Java mendukung tiga jenis komentar: C++ style komentar satu baris, C style beberapa baris, dan komentar javadoc khusus.

Pernyataan adalah satu atau lebih baris kode yang diakhiri dengan semicolon. Sebagai contoh untuk pernyataan tunggal adalah
System.out.println(“Hello world”);

Blok adalah satu atau lebih pernyataan yang terbentang antara kurung kurawal buka dan kurung kurawal tutup yaitu sekumpulan pernyataan sebagai satu unit kesatuan. Blok pernyataan dapat dikumpulkan akan tetapi tidak secara pasti mempunyai keterkaitan fungsi. Beberapa jumlah spasi kosong diijinkan terdapat di dalamnya, sebagai contoh dari suatu blok adalah:
public static void main( String[] args ){
    System.out.println("Hello ");
    System.out.println("world");
}

Java Identifier adalah suatu tanda yang mewakili nama-nama variabel, method, class, dsb. Contoh dari Identifier adalah: Hello, main, System, out.

Kata kunci (keyword) adalah identifier yang telah dipesan untuk didefinisikan sebelumnya oleh Java untuk tujuan tertentu. Anda tidak dapat menggunakan keyword sebagai nama variabel, class, method Anda, dsb.

Source code:
public class truthtable {  
  public static void main(String[] args) {  
    boolean a, b;
   
    System.out.println( "a\tb\tNOT a\ta AND b\ta OR b\ta XOR b" );
    a = true; b = true;
    System.out.print(a + "\t" + b + "\t");
    System.out.println((!a) + "\t" + (a&b) + "\t" + (a|b) + "\t" + (a^b));
   
    a = true; b = false;
    System.out.print(a + "\t" + b + "\t");
    System.out.println((!a) + "\t" + (a&b) + "\t" + (a|b) + "\t" + (a^b));
   
    a = false; b = true;
    System.out.print(a + "\t" + b + "\t");
    System.out.println((!a) + "\t" + (a&b) + "\t" + (a|b) + "\t" + (a^b));
   
    a = false; b = false;
    System.out.print(a + "\t" + b + "\t");
    System.out.println((!a) + "\t" + (a&b) + "\t" + (a|b) + "\t" + (a^b));
  }  
}

Monday, September 11, 2023

Bahasa Pemrograman Java - Belajar 2

Apache NetBeans merupakan Integrated Development Environment atau IDE. Suatu IDE adalah lingkup pemrograman yang diintegrasikan ke dalam suatu aplikasi perangkat lunak yang menyediakan pembangun GUI, suatu text atau kode editor, suatu compiler atau interpreter dan suatu debugger. Ada 3 java builder tools yang sering digunakan saat ini dan sudah ada di dalam Apache Netbeans. Build tools adalah program yang mengotomatiskan proses eksekusi aplikasi dari suatu source code.




Ant adalah java builder legendaris bawaan hampir semua IDE java seperti netbeans dan eclipse. Namun ketika butuh library seperti pengolahan data berbasis tabular (table saw) yang menggunakan Maven dan Gradle untuk repository, ini jadi kesulitan di Ant.

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
 */
package javaapplication1;

/**
 *
 * @author dell
 */
public class JavaApplication1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Hello, World!");
    }
   
}


Maven menggunakan XML untuk melakukan pengaturan dependencies-nya tidak sepraktis gradle. Namun ketika kita akan buat package *.jar memang agak susah, tidak seperti di Ant dengan klik Build saja. 

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 */

package com.webiotid.mavenproject1;

/**
 *
 * @author dell
 */
public class Mavenproject1 {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}


Gradle juga digunakan pada android bila kalian buat aplikasi berbasis android, maka tools builder ini yang digunakan. Gradle adalah build tools yang tidak spesifik terhadap satu bahasa pemrograman tertentu, sedangkan Maven spesifik untuk membantu membuat project yang kita buat menggunakan Java. Gradle sering disebut sebagai build-tool, secara umum menggunakan bahasa pemrograman Groovy.

/*
 * This Java source file was generated by the Gradle 'init' task.
 */
package gradleproject1;

public class App {
    public String getGreeting() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        System.out.println(new App().getGreeting());
    }
}