Jadi ceritanya saya pengen belajar pemrograman android dengan Kotlin, tapi laptop saya itu speknya pas-pasan. RAM 4GB, Celeron N4120, dan OS Debian. Kalau pakai Android Studio? Bisa-bisa laptop saya ngos-ngosan sebelum project-nya jalan.
Setelah nyoba konsultasi dengan asisten pribadi hehe, ternyata saya menemukan alternatif yaitu pakai VSCode + Android SDK CLI Tools tanpa Android Studio sama sekali. Dan alhamdulillah, berhasil! Di artikel ini saya rangkum seluruh prosesnya dari nol sampai app pertama jalan di HP.
Catatan:
Tutorial ini mencakup dua OS sekaligus — Linux (Debian/Ubuntu) dan Windows 10/11. Saya tandai dengan label
[Linux]dan[Windows]di setiap langkah yang berbeda.
Sebelum Mulai
Walaupun pada judul saya bilang low-end tapi setidaknya ada batas minimum untuk spek laptop yang kalian punya. coba liat tabel berikut:
| Komponen | Minimum | Catatan |
|---|---|---|
| RAM | 3GB | Pastikan tutup semua app saat build |
| Storage | 10GB kosong | Untuk SDK + cache Gradle |
| OS | Linux/Windows 10/11 | Linux lebih ringan |
| Koneksi | Stabil | Download sekitar 300-500MB |
Berikutnya juga perlu menyiapkan beberapa hal berikut:
- HP Android (untuk testing, kalo pakai emulator langsung terlalu berat!)
- Kabel USB
- VSCode (download disini dan install kalo belum)
- Koneksi internet
Tampilan awal VS Code:

Langkah 1 — Install JDK 17
Kita pakai JDK 17 LTS karena lebih stabil dan ringan dibanding versi terbaru.
[Linux]
sudo apt install openjdk-17-jdk-headless[Windows]
Download JDK 17 dari https://adoptium.net, pilih JDK 17 LTS → Windows x64 → .msi, lalu install.
Setelah install, set environment variable:
JAVA_HOME = C:\Program Files\Eclipse Adoptium\jdk-17...PATH += %JAVA_HOME%\binVerifikasi
java -versionOutput yang diharapkan:
openjdk version "17.0.x" ...Langkah 2 — Install Android SDK CLI Tools
Ini yang bikin setup kita beda dari tutorial biasa. Kita tidak install Android Studio, tapi hanya Command Line Tools-nya saja, jauh lebih ringan.
Download di: https://developer.android.com/studio#command-line-tools-only
Pilih versi sesuai OS kamu (Linux atau Windows).

[Linux] Ekstrak & Pindahkan
Struktur folder yang benar wajib seperti ini:
~/Android/└── cmdline-tools/ └── latest/ ← folder ini wajib ada! ├── bin/ ├── lib/ ├── NOTICE.txt └── source.propertiesJalankan perintah berikut:
mkdir -p ~/Android/cmdline-tools/latestmv ~/Downloads/commandlinetools-linux-*/cmdline-tools/* ~/Android/cmdline-tools/latest/Tambahkan ke ~/.bashrc:
echo 'export ANDROID_HOME=$HOME/Android' >> ~/.bashrcecho 'export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin' >> ~/.bashrcecho 'export PATH=$PATH:$ANDROID_HOME/platform-tools' >> ~/.bashrc
source ~/.bashrc[Windows] Ekstrak & Set Path
Ekstrak zip ke C:\Android\cmdline-tools\latest\
Tambahkan di System Environment Variables:
ANDROID_HOME = C:\AndroidPATH += %ANDROID_HOME%\cmdline-tools\latest\binPATH += %ANDROID_HOME%\platform-toolsInstall SDK Packages
Setelah path di-set, install package yang diperlukan:
sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"Ketik y saat diminta accept license.
Verifikasi
sdkmanager --version # harusnya muncul versiadb --version # harusnya muncul versi ADBContoh output sdkmanager --version dan adb --version:

Langkah 3 — Setup VSCode Extensions
Buka VSCode dan install beberapa extension berikut:
| Extension | Publisher | Fungsi |
|---|---|---|
| Kotlin | fwcd | Syntax highlighting & code completion |
| Extension Pack for Java | Microsoft | Tools Java lengkap |
| Gradle for Java | Microsoft | Menjalankan Gradle tasks |
| Debugger for Java | Microsoft | Debug aplikasi |
| Language Support for Java | Red Hat | IntelliSense & linting |
Kalau kamu install Extension Pack for Java, ada beberapa yang ikut terbawa tapi tidak diperlukan untuk Android dev:
code --uninstall-extension vscjava.vscode-mavencode --uninstall-extension formulahendry.code-runnerDaftar extension yang sudah terinstall:

Langkah 4 — Buat Struktur Project
Buat folder project baru:
# Linuxmkdir -p ~/projects/MyAppcd ~/projects/MyApp
# Windows (PowerShell)mkdir C:\projects\MyAppcd C:\projects\MyAppBuat struktur folder:
mkdir -p app/src/main/java/com/example/myappmkdir -p app/src/main/res/layoutmkdir -p app/src/main/res/valuesStruktur akhir yang terbentuk:
MyApp/├── app/│ ├── build.gradle.kts│ └── src/main/│ ├── AndroidManifest.xml│ ├── java/com/example/myapp/│ │ └── MainActivity.kt│ └── res/│ ├── layout/activity_main.xml│ └── values/strings.xml├── build.gradle.kts├── settings.gradle.kts└── gradle.propertiesLalu buka di VSCode:
code .Langkah 5 — Buat File Konfigurasi
Ini bagian yang paling banyak filenya. Kalau pakai Android Studio, semua ini dibuat otomatis. Karena kita pakai VSCode manual, kita buat sendiri — tapi jadi lebih paham fungsinya.
settings.gradle.kts
“Peta” project — memberitahu Gradle nama project dan module apa saja yang ada.
pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() }}dependencyResolutionManagement { repositories { google() mavenCentral() }}rootProject.name = "MyApp"include(":app")build.gradle.kts (root)
Deklarasi plugin yang tersedia untuk seluruh project.
plugins { id("com.android.application") version "8.2.0" apply false id("org.jetbrains.kotlin.android") version "1.9.22" apply false}gradle.properties
File paling penting untuk low-end PC. Di sinilah kita batasi penggunaan RAM Gradle.
org.gradle.jvmargs=-Xmx768m -XX:MaxMetaspaceSize=256morg.gradle.daemon=falseorg.gradle.parallel=falseandroid.useAndroidX=trueorg.gradle.daemon.performance.disable-logging=trueKenapa
daemon=false? Secara default Gradle jalan sebagai background process yang tetap hidup di memory. Untuk low-end PC, lebih baik dimatikan agar RAM dilepas setelah build selesai.
app/build.gradle.kts
Konfigurasi spesifik aplikasi — SDK version, dependencies, dll.
plugins { id("com.android.application") id("org.jetbrains.kotlin.android")}
android { namespace = "com.example.myapp" compileSdk = 34
defaultConfig { applicationId = "com.example.myapp" minSdk = 24 targetSdk = 34 versionCode = 1 versionName = "1.0" }
buildTypes { release { isMinifyEnabled = false } }
compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }
kotlinOptions { jvmTarget = "17" }}
dependencies { implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.11.0")}⚠️ Penting soal package name:
Nama package seperti
com.example.myapphanya boleh berisi huruf, angka, dan titik. Jangan pakai tanda strip-karena akan menyebabkan build error. Contoh yang salah:com.example.my-app
app/src/main/AndroidManifest.xml
“KTP” aplikasi — memberitahu Android cara menjalankan app kamu.
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="MyApp" android:theme="@style/Theme.AppCompat.Light">
<activity android:name=".MainActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
</application>
</manifest>Note:
android:labelbebas pakai karakter apapun — ini cuma teks yang tampil di title bar dan app drawer. Yang harus mengikuti aturan Java naming hanya package name dan class name.
app/src/main/res/values/strings.xml
Tempat menyimpan semua teks aplikasi. Best practice Android agar mudah ganti bahasa nantinya.
<resources> <string name="app_name">MyApp</string> <string name="hello">Hello, Android!</string></resources>app/src/main/res/layout/activity_main.xml
Desain tampilan UI — apa yang dilihat user di layar.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical">
<TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" android:textSize="24sp"/>
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="Klik Saya"/>
</LinearLayout>app/src/main/java/com/example/myapp/MainActivity.kt
Logika aplikasi — apa yang terjadi saat user berinteraksi.
package com.example.myapp
import android.os.Bundleimport android.widget.Buttonimport android.widget.TextViewimport androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.textView) val button = findViewById<Button>(R.id.button)
button.setOnClickListener { textView.text = "Salam alaykum, Dunya!" } }}Struktur file di VSCode Explorer:

Langkah 6 — Setup Gradle Wrapper & Build
Generate Gradle Wrapper
gradle wrapper --gradle-version 8.2Perintah ini membuat file gradlew (Linux) dan gradlew.bat (Windows) yang memastikan semua developer pakai versi Gradle yang sama.
Build Pertama
Sebelum build: tutup semua aplikasi lain (browser, file manager, dll) untuk membebaskan RAM sebanyak mungkin.
# Linux./gradlew assembleDebug
# Windowsgradlew.bat assembleDebugBuild pertama akan download Gradle 8.2 (~100MB) dan semua dependencies. Proses ini hanya terjadi sekali — build berikutnya jauh lebih cepat karena sudah ter-cache.
| Kondisi | Estimasi Waktu (Low-End PC) |
|---|---|
| Build pertama | 15–30 menit |
| Build setelah perubahan kecil | 2–5 menit |
Build setelah ./gradlew clean | 5–10 menit |
Kalau berhasil, output akhirnya:
BUILD SUCCESSFUL in XsTerminal menampilkan BUILD SUCCESSFUL:

Langkah 7 — Install ke HP Android
Aktifkan USB Debugging di HP
- Buka Settings → About Phone
- Tap Build Number sebanyak 7 kali sampai muncul notif “You are now a developer”
- Kembali ke Settings → Developer Options
- Aktifkan USB Debugging
Colok HP & Verifikasi
adb devicesOutput yang diharapkan:
List of devices attachedXXXXXXXX deviceKalau muncul unauthorized, akan ada popup di HP kamu — tap Allow.
Popup Allow USB Debugging di HP (izinkan saja):
Pilih jenis koneksi kabel Transfer File:
Install APK
# Linuxadb install app/build/outputs/apk/debug/app-debug.apk
# Windowsadb install app\build\outputs\apk\debug\app-debug.apkAtau gunakan perintah ini yang langsung build + install sekaligus:
# Linux./gradlew installDebug
# Windowsgradlew.bat installDebugBuka app drawer di HP kamu, cari app “MyApp” dan buka! 🎉
Nanti, akan muncul aplikasi baru dengan logo default:
Hasil run aplikasi:
Workflow Sehari-hari
Setelah setup selesai, alur kerja hariannya simpel:
Edit kode di VSCode → Simpan → ./gradlew installDebug → Cek di HPReferensi perintah yang sering dipakai:
| Perintah | Fungsi |
|---|---|
./gradlew installDebug | Build + install ke HP (perintah utama) |
./gradlew assembleDebug | Build saja, tanpa install |
./gradlew clean | Hapus hasil build |
./gradlew clean installDebug | Clean build dari awal |
adb logcat | grep "com.example.myapp" | Lihat log debug dari HP |
Setup untuk Project Baru
Setelah project pertama berhasil, jadikan sebagai template untuk project berikutnya:
cp -r ~/projects/MyApp ~/projects/ProjectBarucd ~/projects/ProjectBaruGanti 3 hal berikut di project baru:
| File | Yang Diganti |
|---|---|
settings.gradle.kts | rootProject.name = "ProjectBaru" |
app/build.gradle.kts | namespace dan applicationId |
AndroidManifest.xml | android:label |
Build kedua dan seterusnya jauh lebih cepat karena Gradle dan dependencies sudah ter-cache di ~/.gradle/.
Upload ke GitHub
Buat file .gitignore di root project:
# Gradle.gradle/build/app/build/
# Local configlocal.properties*.iml
# IDE.idea/
# Keystore — JANGAN PERNAH UPLOAD INI!*.jks*.keystore
# OS.DS_StoreThumbs.db
# Tambahan dari VS Code.vscode/Lalu push ke GitHub:
git initgit add .git commit -m "first android app with kotlin"git remote add origin https://github.com/username/repo.gitgit push -u origin mainJadi intinya, buat Android development di VSCode dengan spek pas-pasan itu bisa, tapi ya tetep kurang enak dan lumayan ribet wkwk. Keimpulan caranya kurang lebih gini:
- Pakai Android SDK CLI Tools saja, bukan Android Studio penuh
- Batasi RAM Gradle di
gradle.properties - Pakai physical device, bukan emulator
- Tutup semua aplikasi lain saat build
Memang setup manualnya lumayan banyak langkahnya dibanding Android Studio yang otomatis, tapi hasilnya kamu jadi paham betul fungsi tiap file di project Android. Dan yang penting laptop tetap bisa napas wkwk. 😄
Kalau ada error atau hal yang kurang jelas, feel free tinggalkan komentar di bawah!