Langsung ke konten utama

semuanya tentang android mobile applications!

 Langkah Mudah Memahami Mobile

 Android & iOS

( institut sains dan teknologi nasional )

    Belajar Mobile Programming itu seru banget karena kamu bisa membuat aplikasi yang bisa dijalankan langsung di smartphone (Android/iOS). halo teman-teman pada materi sebelumnya kita sudah membahas hal yang mungkin lebih singkat dan mudah dipahami. pembahasan pada kali ini mungkin penjelasannya jauh lebih panjang dan mungkin lebih butuh kesabaran, tetapi yang namanya belajar tidak mungkin apa yang kita pelajari menjadi sia-sia begitu saja maka dari itu jangan mudah patah semangat..dan jangan mudah menyerah ya.

apa itu Mobile Programming  

( mobile proggramming )

Mobile Programming adalah proses membuat, mengembangkan, dan memelihara aplikasi yang berjalan di perangkat mobile seperti smartphone dan tablet (Android maupun iOS).

Aplikasi mobile bisa berupa:

  • ๐Ÿ“– Aplikasi edukasi (e-learning, e-library).

  • ๐Ÿ›’ Aplikasi e-commerce (Shopee, Tokopedia).

  • ๐ŸŽฎ Game mobile (Mobile Legends, PUBG).

  • ๐Ÿ’ฌ Sosial media (Instagram, WhatsApp).


 Tujuan Mobile Programming

  • Membuat aplikasi yang bisa digunakan di perangkat mobile.

  • Memberikan kemudahan akses bagi pengguna.

  • Menciptakan solusi digital → bisnis, hiburan, pendidikan, kesehatan, dll.


 Jenis Mobile Programming

  1. Native App Development

    • Menggunakan bahasa khusus platform.

    • Android → Java/Kotlin.

    • iOS → Swift/Objective-C.

    • ➕ Lebih cepat & optimal.

  2. Cross-Platform Development

    • Satu kode bisa jalan di Android & iOS.

    • Framework: Flutter (Dart), React Native (JS/TS).

    • ➕ Lebih hemat waktu & biaya.

  3. Hybrid App Development

    • Gabungan web & mobile.

    • Contoh: Ionic, Cordova.


 Komponen Penting dalam Mobile Programming

( komponen mobile proggramming )

  • Bahasa Pemrograman: Java, Kotlin, Swift, Dart, JavaScript.

  • Framework/SDK: Android Studio, Flutter, React Native, Xcode.

  • Database: SQLite, Room, Firebase, Hive.

  • API/Networking: REST API, JSON, GraphQL.

  • UI/UX Design: Layout, widget, navigasi, responsif.


 Manfaat Belajar Mobile Programming

  • Bisa bikin aplikasi sendiri dan publish ke Play Store/App Store.

  • Banyak peluang kerja sebagai Mobile Developer.

  • Membuka kesempatan bisnis lewat aplikasi buatan sendiri.

Jadi singkatnya:
Mobile Programming adalah keterampilan membuat aplikasi yang bisa digunakan langsung di smartphone (Android/iOS) dengan bahasa pemrograman dan framework tertentu.
 

1. Dasar yang Perlu Dikuasai



Sebelum masuk ke mobile programming, sebaiknya kamu kuasai dulu:

  • Bahasa Pemrograman Dasar → Java, Kotlin, atau Dart (untuk Flutter).

  • Dasar OOP (Object Oriented Programming) → class, object, inheritance, polymorphism.

  • Dasar Web & API → cara aplikasi terhubung dengan backend (REST API, JSON).


2. Pilihan Teknologi Mobile



Kamu bisa pilih jalur sesuai minat:

๐Ÿ“ฑ Native Development

  • Android → Kotlin / Java dengan Android Studio.

  • iOS → Swift dengan Xcode.
     Lebih optimal, tapi harus belajar masing-masing platform.

๐ŸŒ Cross-Platform Development

  • Flutter (Dart) → 1 codebase untuk Android & iOS.

  • React Native (JavaScript/TypeScript) → bisa bikin aplikasi cepat dengan dukungan komunitas besar.
     Cocok kalau mau sekali coding, bisa jalan di banyak platform.


3. Materi yang Perlu Dipelajari

  1. UI/UX Design Basics → layout, widget, responsif.

  2. State Management (misalnya Provider/Bloc di Flutter).

  3. Database:

    • Lokal → SQLite, Hive, Room.

    • Online → Firebase, Supabase, atau API custom.

  4. Networking → HTTP request, fetch data dari API.

  5. Authentication → Login, Register, OAuth, Firebase Auth.

  6. Push Notification → Firebase Cloud Messaging.

  7. Deployment → upload ke Google Play Store / App Store.

Roadmap Belajar

( roadmap belajar )

  1. Pelajari bahasa pemrograman (Kotlin/Swift/Dart/JS).

  2. Buat project sederhana → kalkulator, todo-list, catatan.

  3. Integrasi database lokal (SQLite/Hive).

  4. Coba API publik → tampilkan data cuaca/berita.

  5. Implementasi autentikasi login.

  6. Buat aplikasi real-project (misal e-commerce mini).

  7. Publikasikan ke Play Store / App Store.


berbagai bahasa pemograman yang digunakan   dalam membuat aplikasi 

Java Programming (Fondasi Android)



Java adalah bahasa pemrograman yang dulu jadi standar utama Android. Meski sekarang Kotlin lebih populer, Java tetap penting untuk memahami banyak library lama.

Materi Dasar Java:

  1. Dasar Pemrograman

    • Variabel, Tipe Data, Operator.

    • Control Flow (if, switch, loop).

  2. OOP (Object Oriented Programming)

    • Class, Object, Inheritance, Polymorphism.

    • Interface & Abstract.

  3. Collection & Generics

    • ArrayList, HashMap, Set.

  4. Exception Handling

    • try-catch, throws.

  5. Java + Android

    • Membuat Activity.

    • UI sederhana dengan XML.


Kotlin Programming (Bahasa Resmi Android)


Kotlin lebih modern, ringkas, dan aman dibanding Java. Sekarang bahasa resmi Android.

Materi Kotlin:

  1. Dasar Kotlin

    • Variabel, Tipe Data, Null Safety.

    • Control Flow → if, when, loop.

  2. Fungsi & OOP

    • Function, Lambda.

    • Class, Data Class, Object.

  3. Collection

    • List, Set, Map → filtering & mapping.

  4. Asynchronous

    • Coroutines → launch, async, suspend.

    • Flow untuk data stream.

  5. Kotlin + Android

    • Membuat UI dengan XML.

    • Konsumsi API dengan Retrofit.

    • Database dengan Room.

 Android Development (Native)


Platform utama untuk membangun aplikasi mobile dengan Android Studio.

Materi Android:

  1. Struktur Project Android

    • Manifest, Gradle, Folder Java/Kotlin, res.

  2. UI/UX

    • XML Layout: Button, TextView, ImageView.

    • RecyclerView untuk list data.

    • Material Design & ConstraintLayout.

  3. Activity & Fragment

    • Lifecycle (onCreate, onPause, onDestroy).

    • Navigasi antar Activity.

  4. Data & Storage

    • SharedPreferences.

    • SQLite & Room.

  5. Networking

    • Retrofit/Volley untuk API.

    • JSON Parsing.

  6. Fitur Penting

    • Permission (lokasi, kamera).

    • Firebase: Push Notification, Authentication.

  7. Deploy

    • Build APK/AAB.

    • Publish ke Play Store.


Flutter (Cross-Platform)



Framework modern dari Google untuk membuat aplikasi Android & iOS sekaligus dengan 1 codebase (bahasa Dart).

Materi Flutter:

  1. Pengenalan Flutter & Dart

    • Instalasi Flutter SDK & VS Code.

    • Variabel, fungsi, async/await di Dart.

  2. Membangun UI

    • Widget dasar (Text, Image, Button).

    • Layout (Row, Column, Stack).

    • Navigasi antar halaman.

  3. State Management

    • setState().

    • Provider, Riverpod, Bloc.

  4. Database & API

    • SQLite/Hive.

    • HTTP request & tampilkan data dari API.

  5. Authentication

    • Firebase Auth (Google/Facebook login).

  6. Integrasi Fitur

    • Push Notification.

    • Maps, Kamera.

  7. Deployment

    • Build APK.

    • Upload ke Play Store/App Store.

oke..sudah mulai pusing?selanjutnya kita akan mempelajari satu-persatu materi yang sudah dijelaskan diatas..

Materi Dasar Java


1. Dasar Pemrograman

Java adalah bahasa pemrograman berorientasi objek (OOP) yang banyak digunakan untuk aplikasi desktop, web, hingga Android.
Ciri khas Java:

  • Write Once, Run Anywhere (WORA) → program dapat dijalankan di berbagai platform dengan JVM.

  • Sintaks mirip C/C++, sehingga mudah dipelajari bagi yang sudah familiar.

Variabel, Tipe Data, Operator

Variabel → wadah untuk menyimpan data.

int umur = 20; String nama = "Andi"; boolean status = true;

Tipe Data Primitif:

  • int → bilangan bulat (32-bit).

  • double → bilangan desimal.

  • char → 1 karakter.

  • boolean → true/false.

Tipe Data Referensi:

  • String, Array, Object.

Operator:

  • Aritmatika: +, -, *, /, %.

  • Perbandingan: ==, !=, >, <.

  • Logika: &&, ||, !.

2. Control Flow

Mengatur alur program berdasarkan kondisi.

if-else

int nilai = 75; if (nilai >= 70) { System.out.println("Lulus"); } else { System.out.println("Tidak Lulus"); }

switch-case

int hari = 3; switch(hari) { case 1: System.out.println("Senin"); break; case 2: System.out.println("Selasa"); break; default: System.out.println("Hari lain"); }

Looping (perulangan)

for (int i = 0; i < 5; i++) { System.out.println("Perulangan ke-" + i); } int j = 0; while (j < 5) { System.out.println("While ke-" + j); j++; }

3. OOP (Object Oriented Programming)

Konsep utama OOP:

  • Class → cetakan/blueprint.

  • Object → hasil dari class.

  • Inheritance → pewarisan sifat.

  • Polymorphism → banyak bentuk, satu nama method bisa berbeda implementasi.

Contoh Class & Object

class Mahasiswa { String nama; int umur; void belajar() { System.out.println(nama + " sedang belajar."); } } public class Main { public static void main(String[] args) { Mahasiswa m1 = new Mahasiswa(); m1.nama = "Andi"; m1.umur = 20; m1.belajar(); } }

Inheritance

class Hewan { void makan() { System.out.println("Hewan makan"); } } class Kucing extends Hewan { void suara() { System.out.println("Meong"); } }

Polymorphism

Hewan h = new Kucing(); h.makan(); // tetap bisa dipanggil

4. Interface & Abstract

  • Abstract Class → class tidak lengkap, harus diturunkan.

  • Interface → kontrak, hanya deklarasi method.

abstract class Kendaraan { abstract void jalan(); } class Mobil extends Kendaraan { void jalan() { System.out.println("Mobil berjalan"); } }
interface Hewan { void suara(); } class Anjing implements Hewan { public void suara() { System.out.println("Guk guk"); } }

5. Collection & Generics

Java menyediakan Collection Framework untuk menyimpan banyak data.

ArrayList

import java.util.ArrayList; ArrayList<String> list = new ArrayList<>(); list.add("Java"); list.add("Kotlin"); System.out.println(list.get(0));

HashMap

import java.util.HashMap; HashMap<String, String> map = new HashMap<>(); map.put("ID", "Indonesia"); map.put("US", "United States"); System.out.println(map.get("ID"));

Set

import java.util.HashSet; HashSet<Integer> set = new HashSet<>(); set.add(1); set.add(2); set.add(2); // tidak akan ditambahkan lagi System.out.println(set);

6. Exception Handling

Menangani error agar program tidak berhenti tiba-tiba.

try { int hasil = 10 / 0; // error } catch (Exception e) { System.out.println("Terjadi error: " + e.getMessage()); }

throws

void bacaFile() throws IOException { FileReader fr = new FileReader("data.txt"); }

Materi Kotlin Programming

Kotlin adalah bahasa pemrograman modern, ringkas, dan aman yang dikembangkan oleh JetBrains.
Sejak 2017, Kotlin ditetapkan sebagai bahasa resmi Android oleh Google.

1. Dasar Kotlin

๐Ÿ”น Variabel & Tipe Data

  • val → immutable (tidak bisa diubah).

  • var → mutable (bisa diubah).

val nama: String = "Andi" // tidak bisa diubah var umur: Int = 20 // bisa diubah

Tipe Data:
Int, Double, Boolean, Char, String, Array.

๐Ÿ”น Null Safety

Kotlin memiliki sistem null safety untuk menghindari NullPointerException.

var nama: String? = null println(nama?.length) // aman

2. Control Flow

๐Ÿ”น if-else

val nilai = 75 if (nilai >= 70) { println("Lulus") } else { println("Tidak Lulus") }

๐Ÿ”น when

Pengganti switch di Java.

val hari = 3 when (hari) { 1 -> println("Senin") 2 -> println("Selasa") else -> println("Hari lain") }

๐Ÿ”น Loop

for (i in 1..5) { println("Loop ke-$i") } var j = 0 while (j < 5) { println("While ke-$j") j++ }

3. Fungsi & OOP

๐Ÿ”น Function

fun tambah(a: Int, b: Int): Int { return a + b }

๐Ÿ”น Lambda Expression

val kali: (Int, Int) -> Int = { x, y -> x * y } println(kali(3, 4))

๐Ÿ”น Class & Object

class Mahasiswa(val nama: String, var umur: Int) { fun belajar() { println("$nama sedang belajar") } } val mhs = Mahasiswa("Budi", 21) mhs.belajar()

๐Ÿ”น Data Class

Digunakan untuk menyimpan data dengan ringkas.

data class User(val nama: String, val umur: Int) val user = User("Andi", 20) println(user)

4. Collection

๐Ÿ”น List

val list = listOf("Java", "Kotlin", "Flutter") val mutableList = mutableListOf("A", "B", "C")

๐Ÿ”น Set

val set = setOf(1, 2, 2, 3) println(set) // hanya {1,2,3}

๐Ÿ”น Map

val map = mapOf("ID" to "Indonesia", "US" to "USA") println(map["ID"])

๐Ÿ”น Filtering & Mapping

val angka = listOf(1, 2, 3, 4, 5) val genap = angka.filter { it % 2 == 0 } val kuadrat = angka.map { it * it }

5. Asynchronous Programming

๐Ÿ”น Coroutines

Kotlin menggunakan coroutines untuk asynchronous.

import kotlinx.coroutines.* fun main() = runBlocking { launch { delay(1000L) println("Coroutine selesai") } println("Main thread") }

๐Ÿ”น async & await

val hasil1 = async { hitungCepat() } val hasil2 = async { hitungLambat() } println(hasil1.await() + hasil2.await())

๐Ÿ”น suspend function

suspend fun fetchData(): String { delay(2000L) return "Data berhasil diambil" }

๐Ÿ”น Flow untuk Data Stream

import kotlinx.coroutines.flow.* fun angkaFlow(): Flow<Int> = flow { for (i in 1..5) { emit(i) delay(500L) } }

6. Kotlin + Android

๐Ÿ”น Membuat UI dengan XML

File: activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Hello Kotlin Android!" android:textSize="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/btnKlik" android:text="Klik Saya" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout>

File: MainActivity.kt

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val btn = findViewById<Button>(R.id.btnKlik) btn.setOnClickListener { Toast.makeText(this,
"Tombol ditekan!", Toast.LENGTH_SHORT).show() } } }

๐Ÿ”น Konsumsi API dengan Retrofit

interface ApiService { @GET("posts") suspend fun getPosts(): List<Post> }

Menggunakan Retrofit + Coroutine untuk mengambil data dari REST API.

๐Ÿ”น Database dengan Room

Room adalah ORM (Object Relational Mapping) untuk SQLite di Android.

@Entity data class User( @PrimaryKey val id: Int, val nama: String ) @Dao interface UserDao { @Query("SELECT * FROM User") suspend fun getAll(): List<User> }


Materi Android Development (Native)



Android Development Native adalah pengembangan aplikasi

mobile dengan menggunakan bahasa resmi

Android (Java/Kotlin) di Android Studio.
Native berarti aplikasi dibuat langsung dengan bahasa/platform bawaan Android,

sehingga lebih optimal.

1. Struktur Project Android

๐Ÿ”ธ Manifest

  • File: AndroidManifest.xml

  • Menyimpan informasi penting aplikasi:

    • Nama package

    • Permission (akses kamera, internet, dll)

    • Activity utama (launcher)

๐Ÿ”ธ Gradle

  • Script build otomatis.

  • build.gradle (Module: app) → dependency, minSdkVersion, compileSdkVersion.

  • build.gradle (Project) → konfigurasi global project.

๐Ÿ”ธ Folder Java/Kotlin

  • Berisi source code aplikasi (Activity, Fragment, ViewModel, Repository, dll).

๐Ÿ”ธ res (resources)

  • layout/ → file XML untuk tampilan UI.

  • drawable/ → gambar/icon.

  • values/ → warna, string, style, dimens.

2. UI/UX

๐Ÿ”ธ XML Layout

UI didefinisikan dengan XML.

<TextView android:text="Hello Android" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:text="Klik Saya" android:layout_width="wrap_content" android:layout_height="wrap_content"/>

๐Ÿ”ธ ImageView

<ImageView android:src="@drawable/logo" android:layout_width="100dp" android:layout_height="100dp"/>

๐Ÿ”ธ RecyclerView

Digunakan untuk menampilkan data list.

  • Lebih fleksibel & efisien dibanding ListView.

๐Ÿ”ธ Material Design & ConstraintLayout

  • Material Design → guideline resmi Google untuk tampilan modern.

  • ConstraintLayout → layout fleksibel untuk UI kompleks dengan drag-drop.

3. Activity & Fragment

๐Ÿ”ธ Activity Lifecycle

Metode penting:

  • onCreate() → saat Activity dibuat.

  • onStart() → saat mulai tampil.

  • onPause() → saat aplikasi terhenti sementara.

  • onDestroy() → saat aplikasi ditutup.

๐Ÿ”ธ Navigasi antar Activity

val intent = Intent(this, SecondActivity::class.java) startActivity(intent)

๐Ÿ”ธ Fragment

  • Bagian modular dari UI, bisa digunakan ulang.

  • Biasanya dipakai bersama BottomNavigation atau ViewPager.

4. Data & Storage

๐Ÿ”ธ SharedPreferences

Menyimpan data sederhana (login session, setting).

val pref = getSharedPreferences("MyPref", MODE_PRIVATE) val editor = pref.edit() editor.putString("username", "Andi") editor.apply()

๐Ÿ”ธ SQLite

Database bawaan Android (relasional, mirip MySQL).

๐Ÿ”ธ Room (ORM untuk SQLite)

Membuat database lebih mudah dengan anotasi.

@Entity data class User(@PrimaryKey val id: Int, val nama: String)

5. Networking

๐Ÿ”ธ Retrofit

Library populer untuk API RESTful.

interface ApiService { @GET("users") suspend fun getUsers(): List<User> }

๐Ÿ”ธ Volley

Alternatif library untuk networking (lebih ringan).

๐Ÿ”ธ JSON Parsing

Digunakan untuk membaca data dari API.

  • Bisa manual dengan JSONObject.

  • Lebih mudah pakai Gson / Moshi.

6. Fitur Penting

๐Ÿ”ธ Permission

  • Android 6.0+ → permission harus runtime.

ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), 100)

๐Ÿ”ธ Firebase

  • Push Notification (Firebase Cloud Messaging).

  • Authentication (login dengan email/Google/Facebook).

  • Realtime Database & Firestore untuk data cloud.

7. Deploy Aplikasi

๐Ÿ”ธ Build APK / AAB

  • APK → format aplikasi untuk testing.

  • AAB (Android App Bundle) → format resmi untuk Play Store.

๐Ÿ”ธ Publish ke Play Store

  1. Buat akun developer di Google Play Console.

  2. Upload AAB:

  3. Isi detail aplikasi (icon, deskripsi, kategori).

  4. Rilis ke publik.








Komentar

Postingan populer dari blog ini

Penggunaan Tools AI Emergent.sh dalam Pembuatan Situs Web

 Penggunaan Tools AI Emergent.sh dalam Pembuatan Situs Web ( institut sains dan teknologi nasional )      Perkembangan teknologi kecerdasan buatan (Artificial Intelligence/AI) telah membawa perubahan signifikan dalam berbagai bidang, termasuk dalam pengembangan situs web. Salah satu inovasi yang menarik perhatian dalam beberapa tahun terakhir adalah hadirnya platform Emergent.sh , sebuah layanan berbasis AI yang memungkinkan pengguna membuat situs web atau aplikasi secara otomatis hanya dengan memberikan instruksi dalam bentuk teks. Platform ini menjadi contoh nyata bagaimana teknologi AI dapat berfungsi sebagai asisten digital yang menggantikan sebagian besar proses teknis yang sebelumnya harus dilakukan secara manual oleh seorang pengembang web. Secara konseptual, Emergent.sh bekerja berdasarkan pendekatan multi-agent system , yaitu sistem yang terdiri dari beberapa agen kecerdasan buatan yang memiliki peran dan tanggung jawab berbeda. Setiap agen berfungsi sepert...

Hari Pertama PKL di ISTN: Awal Perjalanan Seru!

         cerita hari pertama pkl di (ISTN)  institut sains dan teknologi nasional  Cerita Hari Pertama PKL      Hari pertama PKL akhirnya tiba. Sejak malam sebelumnya, perasaan gugup dan antusias bercampur jadi satu. saya bangun lebih awal dari biasanya, mempersiapkan pakaian rapi dan segala perlengkapan yang diperlukan. Tepat pukul 07.00, saya sudah berangkat menuju tempat PKL: (ISTN) institut sains dan teknologi nasional , sebuah kampus universitas yang bergerak di bidang pengajaran berbasis sains dan teknologi.      Sesampainya di sana, suasana kampus masih cukup tenang. saya disambut oleh satpam dengan ramah dan kami langsung diarahkan ke ruang administrasi. Tak lama kemudian, pembimbing lapangan kami, Pak Ariadi , datang dan mengajak kami ke lab komputer. Ia memperkenalkan saya pada tempat saya akan melakukan pkl  serta  beliau memberikan kesempatan untuk memperkenalkan diri kami masing-masing. Kegiatan dila...

Level Up! Keseruan Hari Kedua PKL di ISTN

  cerita aktifitas pkl di hari kedua ISTN  (institut sains dan teknologi nasional) cerita di hari kedua pkl dan aktivitasnya Cerita Hari Kedua PKL Hari kedua PKL terasa lebih sibuk dibandingkan hari pertama, tapi tetap penuh pengalaman baru. Pagi-pagi, saya sudah datang lebih awal untuk memastikan tidak ada yang terlewat. Begitu sampai, saya langsung bertegur sapa dan bertemu dengan rekan-rekan teman saya dan pembimbing. Kegiatan dimulai dengan melanjutkan pekerjaan yang sudah diberikan, tetapi kali ini saya mulai lebih paham alurnya. Pembimbing kami PAK ARIADI   memberikan arahan tambahan dan tips agar pekerjaan lebih cepat selesai tanpa mengurangi kualitas. Saya juga diberi kesempatan mencoba tugas baru yang diberikan, sehingga bisa menambah keterampilan. Di sela-sela pekerjaan, saya sempat berbincang dengan teman-teman PKL lainnya. Kami saling bertukar cerita tentang tugas masing-masing yang sudah diberikan, dan ternyata cukup banyak hal yang bisa dipelajari dari penge...