Google Apps Script: Dari Otomatisasi Sederhana hingga Menjadi Aplikasi Web yang Luar Biasa
Google Apps Script sering kali hanya dikenal sebagai alat untuk membuat otomatisasi sederhana di Google Sheets. Padahal, jika dipelajari lebih jauh, teknologi ini mampu digunakan untuk membangun berbagai macam aplikasi, mulai dari sistem administrasi sederhana, dashboard, aplikasi inventaris, absensi, peminjaman barang, hingga aplikasi web yang terhubung dengan berbagai layanan dan API.
Menariknya, semua itu dapat dilakukan tanpa harus membangun server sendiri.
Bagi guru, siswa, operator sekolah, staf administrasi, maupun programmer pemula, Google Apps Script merupakan salah satu teknologi yang sangat menarik untuk dipelajari.
Artikel ini akan mengajak kita melihat Google Apps Script dari sisi yang lebih luas:
Bagaimana sebuah Google Spreadsheet yang awalnya hanya berupa tabel dapat berkembang menjadi sebuah aplikasi yang benar-benar dapat digunakan oleh banyak orang.
Apa Itu Google Apps Script?
Google Apps Script (GAS) adalah platform scripting berbasis JavaScript yang disediakan Google untuk melakukan otomatisasi dan pengembangan aplikasi yang terintegrasi dengan berbagai layanan Google.
Dengan Apps Script, kita dapat berinteraksi dengan:
Google Sheets
Google Drive
Google Docs
Google Forms
Gmail
Google Calendar
Google Slides
Google Maps
dan berbagai layanan Google lainnya.
Karena menggunakan sintaks JavaScript, orang yang sudah mengenal JavaScript akan relatif mudah beradaptasi.
Contoh kode paling sederhana:
function haloDunia() {
Logger.log("Halo, dunia!");
}
Terlihat sederhana.
Namun, kekuatan sebenarnya Google Apps Script bukan terletak pada kode tersebut.
Kekuatan utamanya terdapat pada kemampuan menghubungkan berbagai layanan menjadi sebuah sistem yang saling terintegrasi.
Dari Spreadsheet Menjadi Aplikasi
Mari kita bayangkan sebuah sekolah memiliki data inventaris.
Awalnya mungkin hanya terdapat Google Spreadsheet:
| Kode | Nama Barang | Jumlah | Kondisi |
|---|---|---|---|
| BRG001 | Laptop | 20 | Baik |
| BRG002 | Proyektor | 5 | Baik |
| BRG003 | Printer | 8 | Rusak |
Pada tahap ini, kita hanya memiliki database sederhana berbentuk spreadsheet.
Tetapi kemudian muncul kebutuhan:
Bagaimana jika guru ingin mencari barang?
Bagaimana jika ingin meminjam barang?
Bagaimana mengetahui barang yang sedang dipinjam?
Bagaimana mencatat pengembalian?
Bagaimana membuat laporan?
Bagaimana membuat dashboard?
Bagaimana membatasi akses pengguna?
Di sinilah Google Apps Script mulai menunjukkan kemampuannya.
Spreadsheet dapat menjadi penyimpanan data, sedangkan Apps Script menjadi logika aplikasi.
Kemudian HTML, CSS, dan JavaScript digunakan sebagai antarmuka pengguna.
Hasil akhirnya?
Sebuah aplikasi web.
Level 1 — Google Apps Script untuk Otomatisasi
Mari mulai dari sesuatu yang sederhana.
Misalnya kita mempunyai data siswa di Google Sheets dan ingin memberikan timestamp ketika sebuah data dimasukkan.
Contoh:
function catatWaktu() {
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName("Data");
sheet.getRange("B2").setValue(new Date());
}
Ketika fungsi dijalankan, tanggal dan waktu akan dimasukkan ke sel B2.
Kelihatannya sederhana.
Tetapi konsep seperti ini dapat dikembangkan menjadi sistem yang jauh lebih besar.
Contoh otomatisasi lainnya:
membuat nomor surat otomatis
membuat laporan otomatis
mengirim email
membuat dokumen dari template
mengirim notifikasi
membuat folder otomatis
mengarsipkan file
membuat rekap bulanan
mengolah data Google Forms
membuat laporan PDF
Inilah level pertama.
Apps Script sebagai alat otomatisasi pekerjaan.
Level 2 — Google Sheet sebagai Database
Tahap berikutnya adalah menjadikan Google Sheets sebagai penyimpanan data aplikasi.
Misalnya kita memiliki sheet:
Barang
Kategori
Peminjaman
Pengembalian
User
Log
Struktur seperti ini sudah menyerupai database pada aplikasi pada umumnya.
Contohnya sheet Barang:
| id | kode | nama | kategori | jumlah | kondisi |
|---|---|---|---|---|---|
| 1 | BRG001 | Laptop | Elektronik | 20 | Baik |
| 2 | BRG002 | Proyektor | Elektronik | 5 | Baik |
Apps Script dapat digunakan untuk melakukan operasi CRUD.
CRUD merupakan singkatan dari:
Create — menambahkan data
Read — membaca data
Update — mengubah data
Delete — menghapus data
Contoh menambahkan data:
function tambahBarang(data) {
const sheet = SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName("Barang");
sheet.appendRow([
data.kode,
data.nama,
data.kategori,
data.jumlah,
data.kondisi
]);
}
Dengan konsep tersebut, Google Sheet mulai berfungsi seperti database sederhana.
Level 3 — Membuat Aplikasi Web
Di sinilah Google Apps Script menjadi jauh lebih menarik.
Apps Script menyediakan HTML Service yang memungkinkan kita membuat halaman web.
Contoh sederhana:
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
Kemudian kita membuat file:
index.html
Contohnya:
<!DOCTYPE html>
<html>
<head>
<title>Aplikasi Saya</title>
</head>
<body>
<h1>Selamat Datang</h1>
<p>
Ini adalah aplikasi web menggunakan Google Apps Script.
</p>
</body>
</html>
Ketika Apps Script dipublikasikan sebagai Web App, halaman tersebut dapat diakses melalui browser.
Sekarang kita sudah memiliki:
Browser
↓
HTML + CSS + JavaScript
↓
Google Apps Script
↓
Google Spreadsheet
Dan ini merupakan konsep penting yang harus dipahami.
Apps Script Sebagai Backend
Jika kita terbiasa dengan pengembangan web, kita mengenal istilah:
Frontend
Backend
Database
Dalam aplikasi Apps Script, pembagiannya dapat dibuat seperti ini:
┌─────────────────────────┐
│ FRONTEND │
│ HTML + CSS + JavaScript │
└────────────┬────────────┘
│
↓
┌─────────────────────────┐
│ BACKEND │
│ Google Apps Script │
└────────────┬────────────┘
│
↓
┌─────────────────────────┐
│ DATABASE │
│ Google Sheets │
└─────────────────────────┘
Konsep tersebut sangat bagus untuk pembelajaran pemrograman.
Siswa dapat memahami bagaimana sebuah aplikasi bekerja tanpa harus langsung berhadapan dengan server yang kompleks.
Level 4 — Membuat CRUD Application
Setelah mampu membuat halaman web, kita dapat membuat aplikasi CRUD.
Misalnya aplikasi:
Sistem Inventaris Sekolah
Menu:
Dashboard
Barang
Kategori
Peminjaman
Pengembalian
Laporan
Pengguna
Pengguna dapat melihat data barang.
Kemudian terdapat tombol:
+ Tambah Barang
Form:
Kode Barang
Nama Barang
Kategori
Jumlah
Kondisi
[ SIMPAN ]
Ketika tombol Simpan ditekan:
HTML
↓
JavaScript
↓
Apps Script
↓
Google Sheet
Data kemudian tersimpan.
Ketika halaman dibuka kembali:
Google Sheet
↓
Apps Script
↓
JavaScript
↓
HTML
↓
Data tampil di browser
Inilah konsep dasar sebuah aplikasi web.
Level 5 — Membuat Dashboard
Setelah CRUD berjalan, kita dapat meningkatkan aplikasi menjadi dashboard.
Misalnya:
┌──────────────────────────────────────────┐
│ SISTEM INVENTARIS SEKOLAH │
├──────────────┬──────────────┬────────────┤
│ TOTAL BARANG │ DIPINJAM │ TERSEDIA │
│ 125 │ 28 │ 97 │
└──────────────┴──────────────┴────────────┘
Kemudian ditambahkan grafik:
jumlah barang berdasarkan kategori
barang paling sering dipinjam
jumlah peminjaman per bulan
kondisi barang
statistik pengembalian
Dengan HTML, CSS dan JavaScript, tampilan dashboard dapat dibuat jauh lebih modern.
Bahkan kita dapat menggunakan framework atau library frontend seperti Bootstrap dan berbagai library grafik.
Level 6 — Sistem Login dan Hak Akses
Aplikasi yang lebih serius tentu membutuhkan pengguna.
Misalnya terdapat tiga role:
Administrator
Memiliki akses:
Dashboard
Barang
Kategori
Peminjaman
Pengembalian
User
Laporan
Operator
Misalnya hanya dapat:
Dashboard
Barang
Peminjaman
Pengembalian
User
Hanya dapat:
Dashboard
Peminjaman
Riwayat
Konsepnya:
LOGIN
↓
Validasi User
↓
Cek Role
↓
Tentukan Hak Akses
↓
Tampilkan Menu
Di tahap ini, aplikasi sudah mulai terasa seperti sistem informasi sungguhan.
Namun perlu diperhatikan bahwa sistem autentikasi berbasis Apps Script harus dirancang dengan hati-hati, terutama jika aplikasi menangani data sensitif.
Jangan menganggap Google Sheet otomatis menjadi database yang aman hanya karena berada di ekosistem Google.
Level 7 — Integrasi dengan Google Forms
Google Apps Script juga sangat cocok dipadukan dengan Google Forms.
Contohnya:
Google Forms
↓
Google Sheets
↓
Apps Script
↓
Pengolahan Data
↓
Email / Dokumen / Dashboard
Misalnya sekolah membuat formulir:
Formulir Peminjaman Barang
Setelah siswa atau guru mengisi form:
data masuk ke Spreadsheet
Apps Script membaca data
sistem memberikan nomor transaksi
stok barang diperbarui
data peminjaman dicatat
notifikasi dapat dikirim
laporan dapat dibuat
Semuanya dapat berjalan secara otomatis.
Level 8 — Integrasi Google Drive
Google Drive juga dapat dikendalikan menggunakan Apps Script.
Misalnya aplikasi surat menyurat.
Pengguna mengisi:
Nama
NIP
Jabatan
Jenis Surat
Tanggal
Keperluan
Kemudian sistem:
Form
↓
Apps Script
↓
Template Google Docs
↓
Merge Data
↓
PDF
↓
Google Drive
Dengan demikian, kita dapat membangun sistem pembuatan dokumen otomatis.
Contohnya:
surat tugas
surat keterangan
sertifikat
kartu peserta
laporan
berita acara
dokumen administrasi
Level 9 — Integrasi Gmail
Apps Script juga dapat mengirim email secara otomatis.
Contoh sederhana:
function kirimEmail() {
GmailApp.sendEmail(
"tujuan@email.com",
"Notifikasi Sistem",
"Data berhasil diproses."
);
}
Bayangkan jika fungsi tersebut digabungkan dengan sistem aplikasi.
Misalnya:
Pengguna mengisi formulir
↓
Data diproses
↓
Sistem menyimpan data
↓
Sistem mengirim email
↓
Pengguna menerima notifikasi
Maka aplikasi mulai memiliki kemampuan otomatisasi yang jauh lebih tinggi.
Level 10 — Integrasi API
Di sinilah Apps Script dapat menjadi semakin menarik.
Apps Script dapat berkomunikasi dengan layanan eksternal menggunakan HTTP request.
Contohnya:
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());
Dengan API, aplikasi dapat berkomunikasi dengan sistem lain.
Misalnya:
Aplikasi Apps Script
↓
REST API
↓
Sistem Eksternal
Potensinya sangat luas.
Contoh:
mengambil data dari API
mengirim data ke API
integrasi sistem sekolah
integrasi layanan pembayaran
integrasi layanan notifikasi
mengambil data cuaca
integrasi sistem internal
komunikasi dengan backend lain
Dengan kata lain:
Apps Script tidak harus hidup sendirian. Ia dapat menjadi bagian dari ekosistem aplikasi yang lebih besar.
Dari Biasa Menjadi Luar Biasa
Sekarang mari kita lihat perjalanan sebuah aplikasi.
Tahap 1
Google Sheet:
Data Barang
Tahap 2
Apps Script:
Tambah
Edit
Hapus
Cari
Tahap 3
HTML:
Form
Tabel
Dashboard
Tahap 4
Sistem:
Login
Role
Laporan
Tahap 5
Integrasi:
Google Drive
Gmail
Google Forms
API
Tahap 6
Optimasi:
Responsive
Modern UI
Dashboard
Chart
Filter
Export
Notifikasi
Akhirnya:
SPREADSHEET
↓
AUTOMATION
↓
CRUD
↓
WEB APP
↓
SYSTEM
↓
INTEGRATED APPLICATION
Itulah yang saya maksud dengan:
Dari yang biasa sampai luar biasa.
Contoh Ide Aplikasi dengan Google Apps Script
Bagi pembaca yang ingin belajar, berikut beberapa ide project yang dapat dikembangkan.
| Level | Project |
|---|---|
| Pemula | Kalkulator sederhana |
| Pemula | Konversi nilai |
| Pemula | Generator nomor |
| Pemula | Absensi sederhana |
| Dasar | Buku tamu |
| Dasar | Data siswa |
| Dasar | Inventaris |
| Menengah | Sistem peminjaman |
| Menengah | Sistem pengaduan |
| Menengah | Dashboard sekolah |
| Menengah | Sistem surat |
| Lanjut | Sistem absensi |
| Lanjut | Sistem keuangan |
| Lanjut | Sistem perpustakaan |
| Lanjut | Sistem informasi sekolah |
| Advanced | Aplikasi terintegrasi API |
Contoh Arsitektur Aplikasi Sekolah
Misalnya kita ingin membuat Sistem Inventaris SMK.
Struktur sederhananya:
USER
│
▼
┌───────────────┐
│ WEB APP │
│ HTML/CSS/JS │
└───────┬───────┘
│
▼
┌───────────────┐
│ APPS SCRIPT │
│ BACKEND │
└───────┬───────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
Sheets Drive Gmail
│
▼
DATABASE
Struktur tersebut sudah cukup untuk membangun aplikasi administrasi sekolah dalam skala tertentu.
Contoh Struktur Project
Project Apps Script dapat dibuat lebih terorganisasi.
Contohnya:
SistemInventaris/
│
├── Code.gs
├── Config.gs
├── Auth.gs
├── Barang.gs
├── Peminjaman.gs
├── Pengembalian.gs
├── Dashboard.gs
│
├── index.html
├── login.html
├── dashboard.html
├── barang.html
├── peminjaman.html
│
├── css.html
└── javascript.html
Walaupun Apps Script terlihat sederhana, struktur project tetap perlu diperhatikan.
Semakin besar aplikasi, semakin penting kita menerapkan prinsip:
modular
reusable
readable
maintainable
secure
Kelebihan Google Apps Script
Mengapa teknologi ini menarik?
1. Mudah dimulai
Tidak perlu menyiapkan server Linux terlebih dahulu.
2. Terintegrasi dengan Google
Kita dapat langsung menggunakan:
Sheets
Drive
Gmail
Forms
Docs
3. Cocok untuk prototyping
Ingin membuat prototype aplikasi dengan cepat?
Apps Script sangat menarik.
4. Cocok untuk pendidikan
Siswa dapat belajar:
JavaScript
database
CRUD
API
frontend
backend
deployment
dalam satu ekosistem.
5. Biaya awal relatif rendah
Untuk banyak kebutuhan internal dan skala kecil, kita tidak perlu langsung membeli hosting dan database server terpisah.
Tetapi Google Apps Script Bukan Solusi untuk Semua Hal
Ini bagian yang sangat penting.
Jangan sampai setelah membaca artikel ini kita berpikir:
"Kalau Apps Script bisa membuat aplikasi, berarti semua aplikasi harus dibuat menggunakan Apps Script."
Tidak.
Google Apps Script memiliki keterbatasan.
Misalnya:
quota penggunaan
batas waktu eksekusi
ketergantungan terhadap ekosistem Google
tidak ideal untuk aplikasi dengan trafik sangat besar
pengelolaan database kompleks memiliki keterbatasan
kebutuhan backend yang sangat berat lebih cocok menggunakan teknologi khusus
Untuk aplikasi dengan kebutuhan besar, kita dapat mempertimbangkan:
Node.js
Laravel
Django
Spring Boot
Firebase
PostgreSQL
MySQL
Cloud Run
dan teknologi backend lainnya.
Jadi pertanyaannya bukan:
"Mana teknologi yang paling hebat?"
Tetapi:
"Teknologi mana yang paling tepat untuk masalah yang ingin kita selesaikan?"
Google Apps Script vs Backend Konvensional
| Aspek | Google Apps Script | Backend Konvensional |
|---|---|---|
| Setup | Sangat mudah | Lebih kompleks |
| Server | Dikelola Google | Perlu dikelola |
| Database | Google Sheets / layanan Google | MySQL/PostgreSQL/dll |
| Belajar | Relatif mudah | Lebih banyak konsep |
| Prototyping | Sangat cepat | Relatif lebih lama |
| Aplikasi kecil | Sangat cocok | Cocok |
| Aplikasi besar | Terbatas | Lebih cocok |
| Integrasi Google | Sangat baik | Perlu API |
| Skalabilitas | Terbatas | Lebih fleksibel |
Google Apps Script untuk Pembelajaran Pemrograman
Menurut saya, salah satu potensi terbesar Apps Script justru berada di dunia pendidikan.
Bayangkan seorang siswa belajar:
JavaScript
↓
Function
↓
Variable
↓
Array
↓
Object
↓
CRUD
↓
Database
↓
API
↓
Web Application
Siswa tidak hanya belajar teori.
Mereka dapat langsung melihat hasilnya.
Misalnya:
"Saya membuat sebuah form."
Kemudian:
"Data form masuk ke database."
Kemudian:
"Saya bisa menampilkan data."
Kemudian:
"Saya bisa mengedit dan menghapus data."
Kemudian:
"Saya membuat dashboard."
Dan akhirnya:
"Saya berhasil membuat aplikasi."
Pengalaman seperti ini sangat berharga bagi siswa yang sedang belajar pemrograman.
Roadmap Belajar Google Apps Script
Jika ingin belajar secara bertahap, saya menyarankan roadmap berikut:
LEVEL 1
JavaScript Dasar
↓
LEVEL 2
Google Sheets
↓
LEVEL 3
Apps Script
↓
LEVEL 4
CRUD
↓
LEVEL 5
HTML + CSS + JavaScript
↓
LEVEL 6
Web App
↓
LEVEL 7
Dashboard
↓
LEVEL 8
Authentication & Authorization
↓
LEVEL 9
Google API & REST API
↓
LEVEL 10
Membangun Sistem Nyata
Jangan langsung membuat aplikasi besar.
Mulailah dari:
Satu masalah → satu solusi → satu aplikasi kecil.
Setelah berhasil, tingkatkan secara bertahap.
Kesalahan yang Sering Dilakukan Pemula
Ada beberapa kesalahan yang sering terjadi ketika membuat aplikasi menggunakan Apps Script.
1. Semua kode diletakkan dalam satu file
Awalnya memang mudah.
Tetapi ketika aplikasi menjadi besar, kode akan sulit dipelihara.
2. Tidak merancang struktur data
Google Sheet bukan berarti kita boleh membuat kolom sembarangan.
Tetap diperlukan perancangan database.
3. Tidak melakukan validasi
Data dari pengguna harus divalidasi.
4. Mengabaikan keamanan
Jangan menyimpan password secara sembarangan.
Jangan membuka data sensitif ke publik.
5. Tidak memperhatikan quota
Apps Script memiliki batas penggunaan tertentu.
6. Terlalu cepat membuat aplikasi besar
Lebih baik membuat:
Versi 1
↓
Versi 2
↓
Versi 3
daripada langsung membangun sistem besar yang akhirnya sulit diselesaikan.
Prinsip Penting: Mulai dari Masalah, Bukan Teknologi
Ini mungkin bagian terpenting dari artikel ini.
Ketika belajar teknologi baru, kita sering bertanya:
"Apa yang bisa dibuat dengan Google Apps Script?"
Cobalah mengubah pertanyaannya menjadi:
"Masalah apa yang dapat saya selesaikan menggunakan Google Apps Script?"
Contohnya:
Masalah:
Data peminjaman barang masih dicatat di buku.
Solusi:
Sistem peminjaman digital.
Masalah:
Laporan dibuat manual setiap bulan.
Solusi:
Laporan otomatis.
Masalah:
Surat dibuat berulang-ulang.
Solusi:
Generator surat otomatis.
Masalah:
Data tersebar di banyak file.
Solusi:
Dashboard terintegrasi.
Dengan cara berpikir seperti ini, kita tidak hanya menjadi programmer, tetapi mulai belajar menjadi problem solver.
Kesimpulan
Google Apps Script adalah salah satu teknologi yang menarik karena memiliki titik masuk yang sangat rendah tetapi memiliki potensi pengembangan yang cukup luas.
Kita dapat memulainya dari sebuah script sederhana:
function halo() {
Logger.log("Halo");
}
Kemudian berkembang menjadi:
Otomatisasi
↓
Google Sheet
↓
CRUD
↓
HTML
↓
Web App
↓
Dashboard
↓
Login
↓
API
↓
Sistem Informasi
Yang awalnya hanya sebuah spreadsheet sederhana dapat berubah menjadi aplikasi yang benar-benar membantu pekerjaan.
Namun, kemampuan teknologi bukan hanya ditentukan oleh alat yang digunakan.
Yang jauh lebih penting adalah:
cara kita merancang solusi, memahami kebutuhan pengguna, membuat struktur data yang baik, menulis kode yang terorganisasi, serta memperhatikan keamanan dan skalabilitas.
Google Apps Script mungkin bukan pengganti semua teknologi backend.
Tetapi untuk otomatisasi, aplikasi internal, prototype, sistem administrasi, aplikasi sekolah, integrasi Google Workspace, dan pembelajaran pemrograman, Google Apps Script merupakan teknologi yang sangat layak untuk dipelajari.
Dan mungkin, project besar berikutnya tidak selalu harus dimulai dari server yang mahal.
Kadang-kadang...
Sebuah aplikasi luar biasa justru bisa dimulai dari sebuah Google Spreadsheet sederhana.
FAQ
Apakah Google Apps Script gratis?
Google Apps Script tersedia sebagai bagian dari ekosistem Google dan dapat digunakan untuk berbagai kebutuhan. Namun, terdapat batas penggunaan atau quota tertentu yang perlu diperhatikan.
Apakah Google Apps Script menggunakan JavaScript?
Ya. Apps Script menggunakan JavaScript sebagai bahasa pemrograman utamanya dengan berbagai layanan khusus untuk berinteraksi dengan ekosistem Google.
Apakah Google Apps Script bisa membuat website?
Bisa. Dengan HTML Service dan Web App, Apps Script dapat digunakan untuk membuat aplikasi web.
Apakah Google Sheet bisa menjadi database?
Untuk aplikasi kecil hingga menengah dan kebutuhan tertentu, Google Sheets dapat digunakan sebagai penyimpanan data. Namun, untuk sistem dengan kebutuhan database yang kompleks dan trafik tinggi, database khusus biasanya lebih tepat.
Apakah Apps Script cocok untuk siswa SMK?
Sangat cocok sebagai media pembelajaran karena siswa dapat mempelajari JavaScript, CRUD, database, frontend, backend, API, dan deployment melalui project nyata.
Apakah Google Apps Script bisa digunakan untuk aplikasi sekolah?
Bisa. Contohnya:
sistem inventaris
peminjaman barang
absensi
buku tamu
dashboard
sistem surat
pendataan
laporan
perpustakaan
pengaduan
Penutup
Teknologi yang baik bukan selalu teknologi yang paling kompleks.
Teknologi yang baik adalah teknologi yang tepat guna untuk menyelesaikan masalah.
Jika sebuah pekerjaan dapat diselesaikan dengan sederhana menggunakan Google Apps Script, tidak selalu diperlukan backend yang kompleks.
Namun ketika kebutuhan sudah berkembang, kita juga harus berani naik kelas menggunakan teknologi yang lebih sesuai.
Karena pada akhirnya, tujuan seorang programmer bukan sekadar:
"Saya bisa coding."
Tetapi:
"Saya bisa membuat teknologi yang memberikan solusi."







Tidak ada komentar:
Posting Komentar