Website Competition Agustusan 2026 — .ID Community Medan × PANDI
Marketplace yang bisa dipakai tanpa membuka websitenya
Jual Beli USU Polmed itu tempat jual beli online untuk
mahasiswa USU dan Polmed. Bisa dibuka lewat website, bisa juga lewat WhatsApp — dan dua-duanya
menyimpan ke database yang sama. Penjual yang malas buka website tinggal kirim foto barangnya
ke chat bot; iklannya tetap tayang di website.
Dan sejak minggu terakhir Agustus 2026 ia tidak
berhenti di jual beli: mading menfess, obrolan langsung di dalam
situs, dan cari teman tumbuh dari pasar yang sama. Halamannya
sendiri menyebut dirinya Kampus Hub sekarang.
jualbeliusupolmed.web.idRidho Robbi PasiTeknik Informatika USUKodenya hidup sejak 11 Juni 2026Angka di halaman ini dihitung ulang 25 Agustus 2026
jualbeliusupolmed.web.id
🔍 Cari barang di sekitar kampus…
📱
iPhone XR 128 GB
Rp2.500.000
🃏
Pokemon TCG Archaludon ex
Rp200.000
🛏️
BARANG KOS (nego)
Rp899.000
👟
Sepatu Crocs Classic
Rp750.000
🎒
Tas MLB original
Rp600.000
📄
Jasa Turnitin & AI
Rp8.000
JBBot Jual Beli online
.JUAL09.41
Kirim foto barangnya ya 📷09.41
👟jual crocs classic biru muda, 750 nego09.42
Judul: Sepatu Crocs Classic Biru Muda Harga: Rp750.000 Kategori: Fashion ✅09.42
Ketik pesan…
01Presentasi
Empat belas slide, langsung bisa dijalankan di sini. Pakai panah kiri/kanan atau geser layar HP.
Ada tombol layar penuh kalau mau dipakai presentasi di depan orang, dan tombol Simpan
PDF kalau butuh berkasnya.
Jual Beli USU Polmed
Website Competition 2026
Jual Beli USU Polmed
Tempat jual beli mahasiswa yang
bisa dipakai tanpa buka websitenya.
Ridho Robbi Pasi · Teknik Informatika, Universitas Sumatera Utara
jualbeliusupolmed.web.id · .ID Community Medan × PANDI
01 · Masalahnya
Mahasiswa jualan di grup WhatsApp, dan itu ribet
Iklan cepat tenggelam. Dikirim pagi, siang sudah ketutup puluhan chat lain.
Susah dicari. Mau cari "meja second" di grup yang seharian ramai? Scroll sampai capek.
Nggak tahu penjualnya siapa. Pernah jual apa saja, pernah bermasalah atau tidak — tidak ada catatannya.
Kalau ada masalah, bingung ke siapa. Admin grup bukan penengah jual beli.
GGrup Jual Beli USU Polmed salah satu grup komunitasnya
Ada yang jual kasur 1 orang?08.02
up08.03
Galon bekas ada?08.05
up08.06
Yang tadi masih ada?11.40
Empat baris chat di atas
bukan karangan: kasur 1 orang, galon bekas, meja second, dan
kipas angin tinggi semuanya permintaan yang benar-benar masuk ke papan
Dicari bulan ini.
02 · Kenapa website biasa gagal
Bikin website lalu nyuruh orang pindah? Nggak ada yang pindah.
Ini yang biasanya terjadi: ada yang bikin marketplace kampus, lalu semua orang diajak
berhenti pakai grup WhatsApp. Sebulan kemudian websitenya sepi, orangnya balik ke grup.
Wajar — pakai aplikasi baru itu repot.
Jadi saya balik pertanyaannya: gimana kalau penjualnya nggak usah pindah?
Tetap di WhatsApp, tetap kirim foto seperti biasa — tapi barangnya yang masuk ke website,
rapi, bisa dicari, dan punya halaman sendiri.
03 · Solusinya
Dua pintu masuk, satu database
Pintu website. Buat yang senang lihat-lihat: katalog, pencarian, halaman produk, profil penjual, tawar harga, bayar, dashboard iklan.
Pintu WhatsApp. Buat yang malas buka apa-apa: kirim foto ke chat, bot yang bikinin iklannya, bayar lewat chat juga.
Datanya satu. Nggak ada salin-menyalin. Yang dikerjakan di chat langsung kelihatan di website, begitu juga sebaliknya.
04 · Cara pakainya
Pasang iklan cuma modal chat
1. Chat .JUAL ke nomor bot. Titik di depan itu tandanya "aku manggil bot".
2. Kirim foto barang plus keterangannya, santai saja seperti chat ke teman.
3. Bot membaca chat itu, lalu menawarkan judul, harga, dan kategori. Tinggal dibenarkan kalau ada yang meleset.
4. Bayar biaya iklan pakai QRIS, foto struknya, kirim ke chat yang sama.
5. Iklan langsung tayang di website, lengkap dengan halaman produknya.
JBBot Jual Beli online
.JUAL09.41
Kirim foto barangnya ya 📷09.41
👟jual crocs classic biru muda, 750 nego09.42
Judul: Sepatu Crocs Classic Biru Muda Harga: Rp750.000 Kategori: Fashion Biaya tayang: Rp7.000 Sudah benar? Ketik OK09.42
ok09.43
Iklanmu sudah tayang ✅ jualbeliusupolmed.web.id/produk/…09.44
05 · Isi websitenya
Yang sudah jalan sekarang, bukan rencana
Cari barang — bisa disaring per kategori, harga, dan area kampus.
Halaman penjual dan toko sendiri — isinya semua dagangannya dan berapa yang laku.
Papan "Dicari" — pembeli pasang barang yang dicari, penjual yang punya menghubungi duluan.
Nawar lewat website, jadi tawarannya tercatat dan tidak hilang di chat.
Bayar pakai QRIS — struknya diperiksa dulu sebelum iklan aktif.
Bisa dipasang seperti aplikasi di HP, lengkap dengan notifikasi.
Dua yang belum
dipakai orang saya sebut juga: kotak penilaian penjual dan pencatat kata pencarian sudah
berdiri, tapi sampai 25 Agustus isinya masih nol baris. Fitur yang ada belum tentu terpakai,
dan itu beda.
06 · Yang tumbuh sesudahnya
23–25 Agustus: pasarnya melahirkan tiga hal yang bukan jual beli
Mading menfess. Papan pesan anonim per fakultas, digabung dengan
info kampus dan artikel blog jadi satu papan. 12 menfess masuk dalam
dua hari pertama — "Salam kenal aku anak FK, iya FK, tapi… FKM 😭".
Obrolan di dalam situs. Pembeli dan penjual tidak lagi wajib
bertukar nomor duluan. 82 ruang obrolan, 248 pesan dalam tiga hari,
dengan penjodohan yang tidak menuntut dua orang online bersamaan.
Cari teman. Geser kartu profil mahasiswa, cocok baru bisa saling
sapa. Ini yang paling baru — dan decknya masih dipancing 10 profil contoh
supaya tidak kosong di hari pertama; yang asli baru 3.
82ruang obrolan dalam situs
248pesan, 23–25 Agustus
12menfess mahasiswa
Kenapa ini masuk
presentasi jual beli? Karena sebabnya sama dengan sebab bot WhatsApp ada: orang
tidak mau pindah tempat. Kalau ngobrolnya harus keluar ke aplikasi lain, tawarannya
hilang di sana juga.
07 · Uangnya dari mana
Satu-satunya yang ditagih sekarang: biaya tayang, dan itu pun kecil
Biaya tayang mengikuti harga barang. Rp2.000 di bawah Rp50rb,
Rp3.000 di bawah Rp100rb, Rp5.000 di bawah Rp500rb, Rp7.000 di bawah Rp1jt, lalu 1%
di atas itu. Sundul Rp1.000, poster Rp10.000, pasang "Dicari" gratis 3× lalu Rp1.000.
Biaya sesudah barang laku sekarang nol. Dulu 10%/5% dipungut ke
admin yang menjembatani; per 25 Agustus daftar tarifnya kosong dan halaman
/daftar-harga menulisnya terus terang: "sedang tidak ada biaya transaksi".
Tarifnya diatur dari basis data, bukan ditanam di kode — jadi mengubahnya tidak perlu
deploy.
Punya halaman toko? Iklannya gratis. Toko itu cara orang berjualan
serius di sini, jadi tidak ditagih per barang.
Semua tarifnya terbuka di /daftar-harga dan
/cara-bergabung, bukan cuma di slide ini.
59×pesan dijawab admin manusia
47×bot memilih diam
9×masuk sesi bot
Angka di atas dihitung
botnya sendiri selama 17–25 Agustus. Itu bukan kegagalan otomatisasi — itu memang
rancangannya: pasar yang dijembatani manusia, dengan bot sebagai alat kerja
adminnya. Perbandingannya pun nyaris tidak bergerak selama seminggu: sembilan hari, tetap
sembilan kali sesi bot.
08 · Teknologinya
Dua program, dua tempat, satu database
Website
Next.js 14.2, React 18, Tailwind CSS
Database PostgreSQL di Supabase — 50 tabel
AI Google Gemini untuk membaca chat jadi iklan
QRIS, foto struk, notifikasi, gambar WebP
Ditaruh di Vercel, otomatis update tiap kode di-push
Uji otomatis (Vitest) dan CI GitHub Actions tiap push
Bot WhatsApp
Node.js + Baileys + Express
Jalan di server sendiri (VPS), dijaga pm2 dan nginx
75 alamat — kirim pesan, grup, status, laporan, panel
Panel kontrolnya di bot.jualbeliusupolmed.web.id
Pesan yang belum terkirim disimpan dulu, tidak dibuang
Dua nomor jalan dari kode yang sama, tanpa cabang kode
09 · Domain .id
Domainnya dipakai kerja, bukan cuma dipajang
jualbeliusupolmed.web.id — seluruh Kampus Hub jalan di sini: 62 halaman, 106 alamat API.
bot.jualbeliusupolmed.web.id — subdomain yang sedang Anda buka ini. Isinya panel kontrol bot, sekaligus halaman presentasi ini.
Dua-duanya punya sertifikat HTTPS sendiri, sitemap, dan data terstruktur supaya rapi di Google.
Produk-produknya juga dikirim ke Google Belanja dari domain ini.
Nama domainnya sendiri sudah menjelaskan pasarnya: USU dan Polmed, dua kampus bertetangga di Medan.
10 · Pernah kena masalah
18–19 Agustus 2026: botnya mati tiga kali, dan dia sendiri yang mengaku
501 menit (18 Agu, 00.22 → 08.43), 907 menit
(18 Agu 17.20 → 19 Agu 08.26), lalu 360 menit (19 Agu, 12.21 → 18.22).
Hampir 30 jam dalam dua hari.
Ketiganya diumumkan botnya sendiri begitu hidup lagi: "Bot sempat
offline 501 menit — pesan yang masuk selama itu tidak dibalas otomatis, cek inbox di
dashboard." Bukan saya yang menghitung, dia yang mencatat.
Sebabnya dua jenis. Yang pertama koneksi putus-nyambung tanpa ada
yang mengawasi. Yang terakhir: nomornya dibatasi WhatsApp sendiri —
tidak ada kode yang bisa membetulkan itu.
Bagian ini biasanya disembunyikan di presentasi lomba. Saya tulis karena di sinilah
ketahuan sistemnya kuat atau tidak.
1.768 menittotal mati, 18–19 Agustus
144×/haripercobaan login yang sia-sia
0 pesanhilang — semua masuk antrean
11 · Yang diperbaiki
Sekarang kalau jatuh, ketahuan dan bangun sendiri
Ada penjaga yang mengecek bot tiap 2 menit. Bot diam sekarang ketahuan dalam hitungan menit, bukan jam.
Login-nya dikunci. Bot dilarang membuang login sendiri lalu minta scan QR berulang — kebiasaan itu justru yang bikin nomor makin dicurigai WhatsApp.
Percobaan login dikurangi dari 144 kali sehari jadi sekali sejam. Begitu blokirnya dibuka, bot nyambung sendiri tanpa perlu ditungguin.
Notifikasi yang gagal disimpan, bukan dibuang. Begitu bot hidup, tinggal dikirim ulang.
Tombol "Hubungi Admin" pindah sendiri ke nomor cadangan selama bot mati.
Bot kedua bisa dijalankan dengan nomor lain dari kode yang sama persis — tanpa menambah satu baris kode pun.
12 · Ukurannya
Segini besar pekerjaannya — dan semuanya bisa dicek sendiri
53.373baris kode website
12.871baris kode bot
459kali simpan perubahan
106alamat API website
75alamat bot
62halaman website
81berkas komponen
50tabel database
Semua angka ini dihitung ulang 25 Agustus 2026 dari klon segar kedua
repo — bukan disalin dari catatan lama. Empat hari sebelumnya angkanya 40.288 / 375 / 78 /
50; selisihnya bukan salah hitung, tapi seminggu terakhir yang memang padat. Kode dua-duanya
terbuka di GitHub dan cara menghitungnya ditulis di halaman ini, jadi kalau ada yang meleset,
tinggal dihitung ulang.
Ridho Robbi Pasi · Teknik Informatika, Universitas Sumatera Utara
Halaman ini dilayani langsung oleh bot WhatsApp-nya sendiri, dari server sendiri.
1 / 14
02Deskripsi website
Teks di bawah ini tinggal disalin ke kolom "Deskripsi Website" di formulir
pendaftaran. Isinya sudah menjawab empat hal yang diminta: tentang apa, buat apa dan manfaatnya,
pakai teknologi apa, dan desainnya seperti apa.
Deskripsi Website
Jual Beli USU Polmed (jualbeliusupolmed.web.id) adalah tempat jual beli online khusus mahasiswa Universitas Sumatera Utara dan Politeknik Negeri Medan.
MASALAH YANG DIPECAHKAN
Selama ini mahasiswa jualan lewat grup WhatsApp, dan itu ribet. Iklan yang dikirim pagi sudah ketutup puluhan chat lain sebelum siang. Mau mencari barang tertentu harus scroll sampai capek. Dan tidak ada catatan apa pun soal penjualnya: pernah jual apa saja, pernah bermasalah atau tidak, tidak ada yang tahu sampai uangnya sudah pindah.
Solusi yang biasa dipakai orang: bikin website baru, lalu ajak semua orang pindah ke sana. Masalahnya, orang malas pindah. Jadi saya balik pertanyaannya: bagaimana kalau penjualnya tidak usah pindah sama sekali, tetap di WhatsApp, tapi barangnya yang masuk ke website?
CARA KERJANYA: DUA PINTU, SATU DATABASE
Ada dua cara memakai layanan ini, dan hasilnya sama.
Lewat website: buka jualbeliusupolmed.web.id, isi judul, harga, kategori, dan area, upload foto, bayar, iklan tayang. Di sini juga tempat pembeli mencari barang, melihat halaman produk, mengecek profil penjual, dan menawar harga.
Lewat WhatsApp: chat ".JUAL" ke nomor bot, lalu kirim foto barang beserta keterangannya seperti chat biasa ke teman. AI membaca chat itu dan langsung membuatkan judul, harga, dan kategori — penjual tinggal membenarkan kalau ada yang meleset. Bayar biaya iklan pakai QRIS, foto struknya, kirim ke chat yang sama. Iklan tayang, dan penjual tidak pernah membuka website sekali pun.
Dua-duanya menyimpan ke database yang sama. Jadi tidak ada data yang perlu disalin: apa yang dikerjakan di chat langsung kelihatan di website, begitu juga sebaliknya.
MODEL LAYANANNYA
Ini bukan marketplace swalayan. Admin manusia yang memposting, mencarikan, dan mendampingi transaksinya; botnya alat kerja admin, bukan pengganti admin. Biayanya terbuka di halaman /daftar-harga: biaya tayang mengikuti harga barang (Rp2.000 di bawah Rp50rb, Rp3.000 di bawah Rp100rb, Rp5.000 di bawah Rp500rb, Rp7.000 di bawah Rp1jt, lalu 1% di atas itu; sundul Rp1.000, poster Rp10.000, featured Rp5.000/hari, perpanjang Rp2.000, iklan aktif 14 hari, pasang "Dicari" gratis 3x). Biaya sesudah barang laku pernah ada (10%/5%) tetapi per 25 Agustus 2026 dimatikan - halaman daftar harga menulisnya apa adanya: "sedang tidak ada biaya transaksi". Tarifnya diatur dari basis data, bukan ditanam di kode, jadi mengubahnya tidak perlu deploy. Penjual yang sudah punya halaman toko memasang iklan gratis.
Bahwa admin masih ikut bekerja itu terlihat di catatan botnya sendiri: selama 17-25 Agustus 2026, 59 pesan dijawab admin manusia, 47 kali bot sengaja diam, dan hanya 9 kali percakapan masuk sesi bot.
TUJUAN DAN MANFAAT
Buat penjual: iklannya tidak tenggelam, ada dashboard berisi jumlah dilihat dan tawaran masuk, punya halaman toko sendiri, dan biayanya kecil serta jelas di depan.
Buat pembeli: bisa mencari barang per kategori, harga, dan area kampus; bisa mengecek rekam jejak penjual sebelum transaksi; bisa memasang permintaan di papan "Dicari" kalau barangnya belum ada; dan COD-nya di sekitar kampus sendiri.
Buat dua-duanya: admin manusia tetap bisa mengambil alih chat kapan saja. Botnya memang sengaja dibuat tidak ikut campur di semua chat. Sejak 23 Agustus 2026 pembeli dan penjual juga bisa mengobrol langsung di dalam situs tanpa bertukar nomor lebih dulu.
YANG TUMBUH SESUDAHNYA: KAMPUS HUB
Pasar yang sudah ramai melahirkan tiga hal yang bukan jual beli, dan sekarang berdiri di beranda yang sama:
- Mading menfess: papan pesan anonim per fakultas, digabung dengan info kampus dan artikel blog jadi satu papan. 12 menfess masuk pada dua hari pertama.
- Obrolan di dalam situs: 82 ruang obrolan dan 248 pesan dalam tiga hari, dengan penjodohan yang tidak menuntut dua orang online bersamaan.
- Cari teman: geser kartu profil mahasiswa, saling suka baru bisa saling sapa. Ini yang paling baru, dan decknya masih dipancing 10 profil contoh supaya tidak kosong di hari pertama - yang asli baru 3.
Alasannya sama dengan alasan bot WhatsApp ada: orang tidak mau pindah tempat. Kalau ngobrolnya harus keluar ke aplikasi lain, tawarannya hilang di sana juga.
TEKNOLOGI
Website: Next.js 14.2 (App Router), React 18, dan Tailwind CSS, di-hosting di Vercel. Database PostgreSQL lewat Supabase, 50 tabel. Pembacaan iklan otomatis memakai Google Gemini. Pembayaran QRIS dengan pengecekan struk. Bisa dipasang di HP seperti aplikasi (PWA) lengkap dengan notifikasi. Semua gambar dilayani dalam format WebP supaya ringan. Ada uji otomatis (Vitest) dan CI GitHub Actions yang jalan tiap kali kode di-push.
Bot WhatsApp: Node.js dengan Baileys dan Express, jalan di VPS sendiri di bawah pm2, di belakang nginx dengan HTTPS Let's Encrypt. Panel kontrolnya memakai subdomain bot.jualbeliusupolmed.web.id.
TEMA DESAIN
Sederhana dan mendahulukan layar HP. Latar bersih, tulisan hitam, satu warna aksen, dan banyak ruang kosong — karena yang harus menonjol itu foto barang jualannya, bukan hiasan tampilannya. Hampir semua penggunanya membuka dari HP, sering sambil jalan di antara gedung kuliah.
YANG SUDAH JALAN DI DALAMNYA
Isinya barang orang sungguhan, bukan data contoh: yang paling banyak dilihat sampai 25 Agustus 2026 iPhone 14 256 GB (171 kali), iPhone XR 128 GB (167), APK Premium Rp3.000 (162), Akun Free Fire Sultan (130), "BARANG KOS (NEGOTIABLE)" Rp899.000 (128), dan Pokemon TCG Archaludon ex SAR Rp200.000 (114). Papan "Dicari" sudah menampung 40 permintaan, dan isinya ikut berganti musim: pertengahan Agustus hampir semuanya anak kos mengisi kamar (kasur 1 orang, meja second, kipas angin tinggi, setrika, galon bekas), lalu begitu kuliah mulai yang dicari berubah jadi buku - "buku pai mkwk smstr1 USU", "buku filologi nusantara". Botnya sendiri terhubung ke 3.189 kontak dan 153 grup WhatsApp, dengan 978 percakapan tercatat, 165 penjual terdaftar, 76 iklan (45 masih aktif), dan 7 artikel blog yang ditulis mahasiswanya sendiri. Dari 540 tagihan QRIS yang pernah dibuat, 58 benar-benar dibayar dan terverifikasi - sisanya ditinggal, dan itu juga data.
UKURAN PEKERJAAN
53.373 baris kode website dalam 459 kali simpan perubahan sejak 11 Juni 2026, ditambah 12.871 baris kode bot. Ada 106 alamat API di website, 75 alamat di bot, 62 halaman (33 untuk pengguna, 17 panel admin, 12 panel admin versi contoh), 81 berkas komponen, dan 50 tabel database. Sampai hari ini masih jalan dan dipakai orang sungguhan. Semua angka ini dihitung ulang pada 25 Agustus 2026 dari klon segar kedua repositori yang tautannya ada di formulir; cara menghitungnya ditulis satu per satu di halaman presentasi.
PRESENTASI DAN DEMO
https://bot.jualbeliusupolmed.web.id/lomba — isinya presentasi 14 slide (bisa disimpan jadi PDF), tutorial bergambar, diagram cara kerjanya, dan rincian angka di atas.
03Cara kerjanya
Dua pintu masuk, dua program yang jalan di tempat berbeda, satu database yang sama. Diagram
di bawah ini gambar sistem yang benar-benar sedang jalan sekarang, bukan rencana.
Bot tidak pernah menyentuh database website secara langsung. Kalau butuh data,
dia bertanya ke website. Jadi kunci databasenya cuma disimpan di satu tempat, bukan dua.
🛒
Katalog & pencarian
Bisa disaring per kategori, harga, dan area kampus. Tiap produk punya alamat sendiri, jadi bisa dibagikan ke teman dan muncul di Google.
🏪
Toko penjual
Tiap penjual punya halaman toko sendiri: semua dagangannya dan berapa yang sudah laku. Kotak penilaian pembeli sudah berdiri, tapi sampai 25 Agustus belum ada yang mengisinya.
🙋
Papan "Dicari"
Belum ketemu barangnya? Pasang permintaan di sini, biar penjual yang punya barangnya yang menghubungi duluan.
💬
Tawar-menawar
Nawar lewat website. Tawarannya tercatat, jadi tidak hilang ketimbun chat.
💳
QRIS & verifikasi struk
Bayar iklan, sundul, atau langganan pakai QRIS. Struknya dicek dulu sebelum iklan aktif.
📲
PWA & notifikasi
Bisa dipasang di layar HP seperti aplikasi, lengkap dengan notifikasi kalau ada tawaran atau pesan masuk.
📰
Mading menfess
Papan pesan anonim per fakultas, digabung dengan info kampus dan artikel blog jadi satu papan. Ada tombol terbit ke Instagram untuk yang layak naik.
🗨️
Obrolan dalam situs
Pembeli dan penjual bisa ngobrol tanpa bertukar nomor duluan. Penjodohannya asinkron — tidak menuntut dua orang online bersamaan.
🤝
Cari teman
Geser kartu profil mahasiswa; saling suka baru saling bisa menyapa. Fitur paling baru, lahir 24 Agustus 2026.
04Tutorial penggunaan
Ini isian untuk kolom "Tutorial / Demo Penggunaan". Tiga cara pakai yang paling
sering dipakai, ditulis supaya bisa langsung diikuti tanpa perlu dijelaskan lagi.
Pasang iklan lewat WhatsApp — tanpa buka website
1
Chat .JUAL ke nomor bot. Titik di depan itu tandanya kamu memanggil bot. Kalau chat biasa tanpa titik, yang menjawab admin manusia.
2
Kirim foto barangnya plus keterangan, santai saja seperti chat ke teman: "jual crocs classic biru muda, 750 nego".
3
Bot membaca chat itu, lalu menawarkan judul, harga, dan kategorinya. Tinggal dibenarkan kalau ada yang meleset.
4
Bayar biaya iklannya pakai QRIS, foto struknya, kirim ke chat yang sama.
5
Iklan tayang di website. Penjualnya sama sekali tidak buka website.
JBBot Jual Beli online
.JUAL09.41
Kirim foto barangnya ya 📷09.41
👟jual crocs classic biru muda, 750 nego09.42
Judul: Sepatu Crocs Classic Biru Muda Harga: Rp750.000 Kategori: Fashion09.42
Scan QRIS ini untuk biaya iklannya 👇09.43
🧾sudah bayar09.44
Iklanmu tayang ✅09.44
Ketik pesan…
Pasang iklan lewat website
1
Buka jualbeliusupolmed.web.id/jual, isi judul, harga, kategori, dan area, lalu upload fotonya.
2
Nomor WhatsApp-mu dicek dulu lewat kode OTP yang dikirim bot ke chat.
3
Bayar pakai QRIS, iklan langsung aktif. Berapa kali dilihat dan tawaran yang masuk bisa dipantau dari menu Dashboard.
Cari barang dan beli
1
Lihat-lihat di beranda, atau saring per kategori, harga, dan area kampus.
2
Buka halaman produknya, cek dulu profil penjualnya: sudah jual berapa barang, berapa yang laku, dan penilaiannya.
3
Tekan tombol minat untuk langsung chat penjualnya di WhatsApp, atau kirim tawaran harga lewat website.
4
Barangnya belum ada? Pasang di papan Dicari, nanti penjual yang punya yang menghubungi.
Versi singkat untuk formulir
A. PASANG IKLAN LEWAT WHATSAPP (tanpa buka website)
1. Chat ".JUAL" ke nomor bot WhatsApp. Titik di depan itu tandanya memanggil bot; chat biasa tanpa titik dijawab admin manusia, bukan bot. Selain .JUAL ada 31 perintah pelanggan (CEK, BUMP, TAWAR, TANYA, PANTAU, EDIT [kode] HARGA, HAPUS LAKU, LANGGANAN, RIWAYAT, dan seterusnya) plus 9 perintah khusus admin - ketik .MENU untuk melihat semuanya.
2. Kirim foto barangnya plus keterangan, santai saja seperti chat ke teman. Contoh: "jual crocs classic biru muda, 750 nego".
3. Bot membaca chat itu lalu menawarkan judul, harga, dan kategorinya. Tinggal dibenarkan kalau ada yang meleset.
4. Bayar biaya iklan pakai QRIS, lalu foto struknya dan kirim ke chat yang sama.
5. Iklan tayang di website. Penjualnya sama sekali tidak buka website.
B. PASANG IKLAN LEWAT WEBSITE
1. Buka jualbeliusupolmed.web.id/jual, isi judul, harga, kategori, area, lalu upload foto.
2. Nomor WhatsApp dicek dulu lewat kode OTP yang dikirim bot.
3. Bayar pakai QRIS. Iklan aktif, dan berapa kali dilihat serta tawaran masuk bisa dipantau dari menu Dashboard.
C. CARI BARANG DAN BELI
1. Lihat-lihat di beranda, atau saring per kategori, harga, dan area kampus.
2. Buka halaman produknya, cek profil penjualnya: sudah jual berapa, berapa yang laku, dan penilaiannya.
3. Tekan tombol minat untuk langsung chat penjualnya di WhatsApp, atau kirim tawaran harga lewat website.
4. Kalau barangnya belum ada, pasang permintaan di papan "Dicari" biar penjual yang punya menghubungi duluan.
5. Mau nanya dulu tanpa memberi nomor HP? Buka obrolan di dalam situs lewat tombol chat di halaman produk. Penjual tetap dapat pemberitahuan walaupun sedang tidak online.
D. KAMPUS HUB (di luar jual beli)
1. /mading - papan menfess anonim per fakultas, digabung dengan info kampus dan artikel blog.
2. /teman - geser kartu profil mahasiswa; saling suka baru bisa saling menyapa.
3. /chat - kotak masuk semua obrolan, baik yang anonim maupun yang dari halaman produk.
DEMO BERGAMBAR DAN PRESENTASI
https://bot.jualbeliusupolmed.web.id/lomba (presentasi 14 slide, bisa disimpan jadi PDF)
05Angka pekerjaannya
53.373
baris kode situs
12.871
baris kode bot
459
commit repo situs
106
endpoint API situs
75
alamat bot
62
halaman situs
81
berkas komponen
50
tabel basis data
Angka besar bukan tujuan. Tapi ini menjawab pertanyaan yang wajar ditanyakan juri: ini
proyek yang benar-benar dikerjakan, atau template yang cuma diganti nama? Riwayat perubahannya
terbuka dan bisa dibaca satu per satu — yang pertama 11 Juni 2026, yang terakhir hari ini.
Sebaran commit-nya sendiri bercerita: 298 di Juni (membangun seluruh sisi
website), 22 di Juli (perhatian pindah ke bot WhatsApp), dan 139 di
Agustus — dan 123 dari 139 itu jatuh setelah tanggal 21. Empat hari
terakhir sebelum tenggat lomba adalah bagian paling padat sepanjang proyek ini, dan itu juga
sebabnya seluruh angka di halaman ini dihitung ulang dari nol pada 25 Agustus 2026.
Angka tanpa rincian namanya cuma klaim. Empat panel di bawah ini membuka isinya satu per
satu, lengkap dengan cara menghitungnya, supaya siapa pun bisa mengecek sendiri ke kodenya —
termasuk kalau ternyata hitungan saya meleset.
106 endpoint API situs — rinciannya
Cara menghitungnya: satu berkas route.js di dalam src/app/api/
dihitung satu alamat API. Mau cek sendiri? Jalankan
find src/app/api -name route.js | wc -l di repo websitenya. Ke-106 berkas itu
memuat 134 metode GET/POST/PUT/PATCH/DELETE — satu alamat boleh punya
lebih dari satu metode, dan yang saya hitung alamatnya.
Empat kelompok yang paling menggambarkan proyek ini sekarang: /cron/* artinya
websitenya punya pekerjaan yang jalan sendiri walaupun tidak ada orang yang membukanya —
menghapus iklan kedaluwarsa, menyundul iklan, mengirim ringkasan harian, menyusul tawaran yang
menggantung, sampai menerbitkan menfess ke Instagram. /wa/baileys satu berkas
3.165 baris, tempat website ngobrol langsung dengan bot WhatsApp — berkas terbesar di
seluruh repo. Dan /chat/* serta /teman/* tidak ada sama sekali empat
hari lalu.
75 alamat bot — rinciannya
Dulu semuanya memang ada di satu berkas index.js. Sejak refactor 22 Agustus
2026 rutenya pindah ke tujuh modul di src/, dan index.js tinggal
memegang sambungan WhatsApp-nya. Salah satu alamat itu sedang Anda pakai sekarang —
halaman ini dilayani dari sana. Mau cek sendiri? Jalankan
grep -rhoE "app\.(get|post|put|delete)\('[^']+'" index.js src/routes/*.js | sort -u.
Hasilnya 75 alamat unik dan 82 pasangan metode+alamat —
yang saya pakai di angka besar adalah alamatnya.
Kelompok "sesi, perangkat & pemulihan" yang paling banyak makan waktu — bukan
karena rumit, tapi karena semuanya lahir dari masalah nyata yang diceritakan di bagian
berikutnya. Dan bukan hanya alamatnya yang bertambah: 74 dari 82 pasangan
metode+alamat itu berdiri di belakang gerbang sandi atau token. Yang terbuka persis
delapan, dan semuanya disengaja: /health (supaya penjaga di luar proses bisa
bertanya tanpa memegang kunci), /kontak-admin (supaya situs bisa memindahkan
tombol "Hubungi Admin" ke nomor cadangan justru ketika bot sedang mati), /lomba
dan /tutor, /demo, serta pintu masuk-keluarnya sendiri. Pintu yang
butuh kunci hanya untuk diketahui keberadaannya bukan pintu.
62 halaman dan 81 berkas komponen — rinciannya
Cara menghitungnya: satu berkas page.jsx di src/app/ dihitung
satu halaman, satu berkas di src/components/ dihitung satu komponen. Mau cek
sendiri? find src/app -name 'page.jsx' | wc -l dan
find src/components -type f | wc -l.
62 halaman, dan pembagiannya perlu dibaca apa adanya: 33 halaman
pengguna — beranda Kampus Hub, /jual-beli, /produk/[slug],
/penjual/[wa], /toko/[slug], /jual,
/edit/[id], /dicari, /jasa, /jasa/tawarkan,
/mading, /chat, /teman, /profil,
/dashboard, /dashboard/toko, /favorit,
/blog/[slug], /daftar-harga, /cara-bergabung,
/faq, /offline, ditambah empat halaman legal —
17 halaman admin (/admin/keuangan, /admin/tren,
/admin/moderasi, /admin/obrolan, /admin/mading,
/admin/teman, /admin/approve-unlock, …), dan 12 halaman
/admin-demo/*. Yang terakhir itu salinan panel admin berisi data contoh,
dibuat supaya panelnya bisa diperlihatkan tanpa membuka data penjual sungguhan. Saya hitung
karena berkasnya memang ada dan memang dikerjakan — tapi kalau dihitung ketat sebagai
"halaman yang melayani pengguna", angkanya 33, bukan 62. Silakan pakai yang
mana pun, asal tahu bedanya.
Tiga dari 33 itu bahkan bukan halaman utuh, melainkan pengalihan yang sengaja dipelihara:
/cari-teman dan /swap mengantar ke /teman, dan
/sosial ke /mading. Alamat lama yang sudah pernah dibagikan di grup
WhatsApp tidak boleh mati cuma karena fiturnya berganti nama.
81 komponen: 44 di akar — ProductCard,
QRISModal, OTPModal, MediaUploader,
RatingWidget, InstallPrompt, PushNotificationButton
— 21 di folder baileys/ (tab-tab panel bot: TabKirim,
TabGrup, TabStory, TabLidMap, TabAntrean,
…), 10 komponen admin (AdminSidebar, ModerasiClient, …), 4 komponen
teman/ yang lahir 24 Agustus (SwipeCard,
PhotoUploadModal, MatchModal, MatchesDrawer), 1 di
dashboard/, dan 1 di ui/.
Tiga berkas yang tidak pernah dipanggil dari mana pun (BottomNav,
IGShareButton, ToastProvider) sudah dihapus pada 21 Agustus 2026,
jadi angka di atas tidak memuat kode mati.
50 tabel basis data — rinciannya, termasuk yang tidak rapi
Enam dari 50 tabel itu masih kosong sama sekali per 25 Agustus 2026, dan
sebabnya tidak sama.
verified_sellers dan offers kosong karena memang tidak
terpakai: yang pertama sisa fitur yang berubah arah, yang kedua menamai hal yang sama
dengan price_offers — tidak ada satu baris kode pun yang memanggilnya.
Ini utang yang harus dibersihkan, bukan fitur.
seller_ratings, search_logs,
keyword_subscriptions, dan pwa_installs kosong karena
belum ada yang memakainya. Kodenya jalan, pintunya terbuka, orangnya belum masuk.
Fitur yang ada belum tentu terpakai, dan halaman ini tidak akan berpura-pura sebaliknya.
Lalu wa_outbox (antrean notifikasi yang lahir dari kejadian 19 Agustus):
perintah pembuatannya nyangkut di repo bot, padahal yang memakainya kode website. Jadi orang
yang mau memasang ulang website ini dari nol perlu tahu itu. Saya tulis di sini, bukan
disembunyikan.
Tiga angka yang perlu dibaca apa adanya
12.871 baris kode bot itu semua berkas .js,
.html, dan .css yang dilacak git di repo bot —
index.js (3.064 baris), tujuh modul src/ hasil refactor 22 Agustus
(2.038 baris), halaman panelnya, dan berkas rupa bersamanya. Berkas SQL (1.940 baris) sengaja
tidak ikut. Perintahnya:
git ls-files | grep -E '\.(js|html|css)$' | grep -v package-lock | xargs cat | wc -l.
Kalau dua halaman yang belum sempat di-commit ikut dihitung, angkanya 13.227 — saya pakai
yang lebih kecil.
53.373 baris kode situs dihitung dari src/ saja (342 berkas
.js/.jsx/.css). Repo situs sekarang juga menyimpan
salinan repo bot di dalam folder bot-wa/; salinan itu tidak ikut
dihitung, supaya tidak ada satu baris pun yang dihitung dua kali di halaman ini.
459 kali simpan perubahan itu cuma repo situs. Repo bot kelihatan jauh lebih
sedikit (95) karena riwayat lamanya sempat dihapus dan dimulai ulang pada 16 Agustus 2026 —
jadi jumlah yang terlihat di sana bukan ukuran umur pekerjaannya.
06Kenapa ini bukan website pajangan
Isinya barang orang beneran, bukan barang contoh
Katalognya tidak pernah diisi data karangan. Yang paling banyak dilihat sampai 25 Agustus
2026: iPhone 14 256 GB (171×), iPhone XR 128 GB (167×),
APK Premium Rp3.000 (162×), Akun Free Fire Sultan (130×),
"BARANG KOS (NEGOTIABLE)" Rp899.000 (128×), dan Pokemon TCG Archaludon
ex SAR Rp200.000 (114×). Ada juga jasa Turnitin & AI Rp8.000 dan
sepatu SHOEVO Rp130.000 — campuran yang tidak akan pernah keluar kalau isinya dikarang.
Yang lebih jujur lagi justru angka pembayarannya: dari 540 tagihan QRIS yang
pernah dibuat, 58 benar-benar dibayar dan lolos verifikasi struk. Sisanya
ditinggal di tengah jalan. Marketplace mana pun yang menampilkan corong konversinya apa adanya
akan kelihatan seperti ini; yang tidak wajar itu kalau angkanya rapi.
Papan Dicari menceritakan pasarnya lebih jujur lagi. 40 permintaan masuk
sejak Juni, dan isinya ikut berganti musim. Pertengahan Agustus hampir semuanya anak kos sedang
mengisi kamar: kasur 1 orang, meja second, kipas angin tinggi, setrika, galon bekas, rice cooker,
sampai "kursi kantor atau yang beroda dan enak disenderi". Lalu kuliah mulai, dan yang
dicari berubah dalam hitungan hari: "buku pai mkwk smstr1 USU", "buku filologi
nusantara", "kipas angin mini portable". Kalimat-kalimat itu tidak ada di kamus mana
pun — itu bunyi orang yang benar-benar sedang mencari, dan kalender kampus yang ikut kebaca dari
basis data.
3.189
kontak WhatsApp
153
grup yang diikuti bot
978
percakapan tercatat
165
penjual terdaftar
76
iklan (45 masih aktif)
40
permintaan "Dicari"
82
ruang obrolan dalam situs
12
menfess di mading
Blognya pun bukan tempelan SEO: tujuh artikelnya ditulis mahasiswa dengan nama dan
angkatannya sendiri — "5 Rekomendasi Kos Murah Dekat Pintu 3 USU", "Pengalaman Nyata COD di
Pendopo USU", "Suka-Duka Anak Kos Medan". Sejak 23 Agustus artikel-artikel itu tidak lagi berdiri
di halaman terpisah: mereka ikut mengalir di papan Mading bersama menfess dan
info kampus, karena orang yang membuka mading tidak sedang mencari "blog" — dia sedang
mencari apa saja yang baru.
Fitur paling baru berumur dua hari, dan itu terlihat
Mading menfess buka 23 Agustus. Dua hari pertamanya menampung 12 pesan, semua
dari mahasiswa sungguhan dan semua bernada sama: orang mengetes tempat baru. "halo semua, beta
dari usu", "Salam kenal aku anak FK — iya FK, tapi… FKM 😭", "min kenalin
mahasiswa famous dong". Obrolan di dalam situs menyusul: 82 ruang dan 248 pesan dalam
tiga hari, dan yang membuat angka itu mungkin bukan fitur chat-nya, melainkan keputusan
membuat penjodohan asinkron — dua orang tidak harus online bersamaan, karena di
kampus memang tidak pernah bersamaan.
Dan yang paling baru, Cari Teman (24 Agustus), saya tulis apa adanya:
decknya berisi 13 profil, 10 di antaranya profil contoh yang saya isi sendiri
supaya kartu pertama tidak kosong di hari peluncuran. Yang asli baru tiga. Sebuah fitur geser-kartu
yang kosong tidak akan pernah terisi — tapi menghitung sepuluh profil contoh itu sebagai
"pengguna" akan membuat seluruh halaman ini tidak bisa dipercaya, jadi tidak saya hitung.
Cara orang memakainya tidak seperti di mockup
Dari 98 pesan masuk yang terekam 17–25 Agustus, sebagian besar cuma satu-dua kata
— "Min", "Woi", "Batal", "Iklanku". Tidak ada yang mengetik kalimat rapi berkoma seperti di
contoh percakapan mana pun. Itu sebabnya bot ini harus mengerti pesan pendek dan foto, bukan
formulir.
Botnya punya 31 perintah untuk pelanggan — CEK,
BUMP, TAWAR, TANYA, PANTAU,
EDIT [kode] HARGA, HAPUS LAKU, LANGGANAN,
RIWAYAT, dan seterusnya — ditambah 9 perintah khusus admin
yang hanya muncul kalau yang mengetik memang admin (SETMODE AUTO,
PAUSE [nomor], BROADCAST, SETUJUI TAWAR BIAYA). Menunya
menyesuaikan diri dengan siapa yang bertanya, bukan menyembunyikan tombol yang tetap bisa
ditekan. Dan yang paling sering dipakai orang ternyata bukan .JUAL, melainkan
.CARI.
Dan tanda titik itu memang masalah nyata: ada empat orang yang mengetik perintah tanpa titik
dan tidak terjadi apa-apa. Balasan adminnya apa adanya — "Pake titik we",
"Ex .cari kipas" — dan lebih sering lagi adminnya sendiri yang
mengetikkan perintahnya untuk si pengguna. Itu bukan bug yang bisa ditutup dengan
tulisan bantuan; itu alasan kenapa admin manusia belum bisa dilepas.
Website dan grup WhatsApp itu satu lingkaran, bukan pengganti
Waktu ada yang menitipkan permintaan lewat bot, balasannya bukan "silakan buka websitenya",
tapi: "Sudah tayang di /dicari dan sudah dibroadcast ke grup WA." Dan
pertanyaan yang paling sering menyusul dari penjual: "tapi nanti tetap di-share di grup min?"
Grupnya tidak digantikan — grupnya tetap jadi tempat ramai, websitenya jadi tempat barangnya
tersimpan rapi dan bisa dicari lagi besok.
Dipakai orang sungguhan, jadi masalahnya juga sungguhan
Ini bukan demo yang cuma jalan pas dinilai. Dua hari di Agustus 2026 membuktikan bedanya —
dan hampir semua bagian yang paling saya banggakan justru lahir dari hari-hari itu.
18–19 Agu
Bot diam tiga kali: 501, 907, lalu 360 menit
Koneksi WhatsApp putus-nyambung terus. Yang terpanjang 15 jam. Nggak ada
yang tahu sampai ada yang komplain — memang tidak ada yang mengawasi. Ketiganya diumumkan
botnya sendiri begitu hidup lagi.
19 Agu · siang
Penjaga di luar proses
Dibikin program kecil terpisah yang mengecek bot tiap dua menit. Sekarang
bot yang diam ketahuan dalam hitungan menit, bukan jam.
19 Agu · sore
Nomornya dibatasi WhatsApp
Masalah jenis lain: tidak ada kode yang bisa membetulkannya. Di sinilah
rancangannya diuji — login botnya dikunci supaya dia tidak membuang login lalu minta scan QR
berulang-ulang, karena kebiasaan itu justru bikin nomor makin dicurigai WhatsApp.
20 Agu
144 ketukan sehari jadi sekali sejam
Setelah dicek, ternyata bot masih mencoba login sekitar 144 kali sehari
sambil menunggu blokirnya dibuka. Sekarang cukup sekali sejam, dan penjaganya tidak lagi
me-restart bot yang memang sedang menunggu keputusan orang.
21 Agu
Tidak ada notifikasi yang hilang
Notifikasi yang gagal terkirim selama bot mati sekarang disimpan dulu,
bukan dibuang, dan tinggal dikirim ulang begitu bot hidup. Bisa dilihat dari panel website
maupun panel bot.
22 Agu
Bot dipecah jadi tujuh modul
Satu berkas 3.000 baris tidak bisa dibaca orang lain, dan tidak bisa dibaca
saya sendiri dua bulan lagi. Rutenya pindah ke src/, dan
index.js tinggal memegang sambungan WhatsApp-nya.
23 Agu
Obrolan realtime — dan tiga bug yang membuktikan ia benar dipakai
Chat dalam situs dibuka, lalu langsung membongkar tiga kesalahan yang tidak
akan pernah ketahuan dari demo: pesannya tersimpan tapi tidak pernah disiarkan, kotak masuk
marketplace mati sejak lahir karena kolom penghubungnya tanpa foreign key, dan
"Barang tidak ditemukan" di setiap produk karena satu kolom profil yang memang tidak pernah
ada. Penjodohannya juga berhenti mengandalkan keberuntungan: diganti detak jantung, jadi
dua orang tidak perlu online bersamaan.
24 Agu
Mading, Cari Teman, dan satu profil untuk semuanya
Dua fitur baru lahir di hari yang sama, dan justru itu yang memaksa
keputusan terpenting minggu ini: biodata penjual dan biodata "cari teman" disatukan jadi
satu profil yang tersinkron dua arah. Kalau tidak, satu orang akan punya
tiga identitas di satu situs.
25 Agu
Semua angka di halaman ini dihitung ulang dari nol
Bukan disalin dari catatan lama: kedua repo diklon segar, basis datanya
ditanyai langsung, dan tiap klaim di halaman ini diadu dengan hasilnya. Delapan angka besar
ternyata sudah basi, satu tarif sudah tidak berlaku, dan satu halaman menyebut jumlah tabel
yang berbeda dengan panel rinciannya sendiri. Semuanya diperbaiki di versi yang sedang Anda
baca.
Satu lagi hasil dari hari itu: semua berkas kerja bot — data login, pengaturan, arsip pesan —
sekarang tergantung pada satu setelan saja. Artinya bot kedua dengan nomor WhatsApp lain
bisa dijalankan dari kode yang sama persis, tanpa mengubah satu baris pun. Bot cadangan
itu sekarang jalan berdampingan dengan yang pertama di server ini. Cara paling aman menambah
cadangan adalah yang tidak menambah kode baru — kode baru berarti bug baru.
Satu keputusan yang kelihatannya aneh
Bot ini sengaja diam di hampir semua chat. Chat pelanggan dianggap milik
admin manusia, sampai pelanggannya sendiri yang memanggil bot pakai tanda titik. Catatan botnya
sendiri untuk 17–25 Agustus: 59 pesan dijawab admin manusia, 47 kali bot memilih diam,
dan cuma 9 kali masuk sesi bot. Alasannya
sederhana: bot toko yang menjawab semua pesan memang terasa pintar seminggu pertama, habis itu
orang malas chat karena merasa dilayani mesin. Membuat bot tahu kapan harus diam itu lebih susah
daripada membuatnya menjawab semuanya.
Domainnya dipakai kerja
Seluruh Kampus Hub jalan di jualbeliusupolmed.web.id. Sedangkan
bot.jualbeliusupolmed.web.id — subdomain yang sedang Anda buka ini — dipakai sebagai
panel kontrol bot WhatsApp, sekaligus yang melayani halaman ini. Dua-duanya punya sertifikat
HTTPS sendiri, sitemap, dan data terstruktur supaya rapi di mesin pencari.
Kodenya boleh diperiksa siapa saja
Dua repositorinya terbuka di GitHub. Tiap catatan perubahannya saya tulis untuk menjelaskan
kenapa sesuatu diubah, bukan cuma apa yang diubah. Jadi siapa pun bisa menelusuri
alasan di balik keputusan teknisnya tanpa perlu bertanya ke saya.
07Galeri Blog, Komunitas & Lainnya
Berikut adalah tangkapan layar blog mahasiswa, fitur website lainnya, dan komunitas WhatsApp. Anda bisa mengeklik gambar untuk memperbesarnya (zoom) tanpa terpotong.
Nomor WhatsApp dan email pendaftaran sengaja
tidak ditulis di halaman ini karena halamannya bisa dibuka siapa saja. Dua-duanya cukup diisi
langsung di formulir.
Yang masih harus disiapkan sendiri
Website berdomain .web.id — sudah, hidup dan dipakai orang.