Bedah Situs - Ngobrolin WEB
🗣️🕸️ Selasa malam waktunya #NgobrolinWEB! Malam ini kita membedah situs yang disubmit oleh salah satu penonton kita. Masih bersama Ivan dan Eka pastinya. Yuk mari ramaikan! 🏷 Gunakan kode NGOBROLINWEBDN dan dapatkan DISKON 10% Untuk Pembelian Web Hosting DomaiNesia: Beli Web Hosting DomaiNesia disini: https://my.domainesia.com/ref.php?u=25754 🎁 DISKON 50% Cloud VPS Turbo dengan Kode Promo: NGOBROLINVPSDN Beli Web Hosting DomaiNesia disin: https://www.domainesia.com/cloud-vps/?promo=ngo Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
Ringkasan Episode
Bantu KoreksiEpisode ini merupakan sesi bedah situs yang pertama kali mendapatkan partisipasi dari penonton. Website yang dibedah adalah undangan pernikahan digital yang dibuat oleh Mas Grafis menggunakan Next.js 13 dengan Contentful sebagai headless CMS. Diskusi dimulai dengan pembahasan tentang pentingnya signed commit (GPG signing) untuk keamanan dan mencegah impersonasi di GitHub. Selanjutnya dilakukan analisis performa dan accessibility terhadap website tersebut. Beberapa masalah yang diidentifikasi meliputi auto-playing audio tanpa konsentrasi user, kontras warna yang kurang, navigasi carousel yang tidak ramah accessibility, serta bundle size yang cukup besar sekitar 4.1 MB terutama karena gambar. Episode juga membahas berbagai tools untuk mengecek accessibility seperti color contrast checker extension dan Chrome DevTools.
Poin-poin Utama
- •Signed commit (GPG signing) penting untuk keamanan dan mencegah impersonasi - commit yang verified memiliki centang hijau di GitHub
- •Website undangan pernikahan menggunakan Next.js 13 dengan Contentful sebagai headless CMS untuk konten yang dinamis
- •Analisis performa menunjukkan bundle size sekitar 4,1 MB dengan gambar sebagai kontributor terbesar penggunaan bandwidth
- •Masalah accessibility utama: auto-playing audio tanpa user consent dapat mengganggu dan tidak ramah untuk pengguna
- •Kontras warna yang kurang pada beberapa elemen seperti tombol navigasi menyulitkan pengguna untuk melihat interface
- •Navigasi carousel tidak mendukung keyboard navigation dan tidak memiliki focus management yang baik
- •Tools yang direkomendasikan: Color Contrast Checker extension untuk Chrome dan fitur bawaan Chrome DevTools untuk analisis accessibility
- •Tips penting: jangan commit file .env ke repository publik untuk keamanan credentials
- •Web development memiliki entry barrier yang lebih rendah dibanding app development dalam hal kebutuhan hardware
Transkrip Bantu Koreksi
0:00[Music]
0:12Dapatkan hanya di Domestika
0:14[Music]
0:20[Music]
0:24Halo, selamat malam. Selamat malam.
0:30Asik ya. Selasa malam waktunya
0:34ngobrolin web. Ngobrolin web.
0:37Kirain selasa malam waktunya Timnas.
0:40Banyak yang usuh, gara-gara dibantai, gak apa-apa ya.
0:44Kita hibur. Yang penting lolos.
0:48Yang penting lolos. Iya. Beda kelas, beda kelas.
0:54Ternyata nanti di Bapak Penyisihan ketemu lagi sama Jepang.
0:58Nggak mungkin lah.
1:00Dia kan di atas kan?
1:02Biasanya di seber sih kayak yang Asia, apa?
1:06Kayak gomor-gomor.
1:08Gomor-gomor kan?
1:10Iya, tapi kan kayaknya ada pot-potnya gitu loh.
1:14Gak bakal ketemu satu grup lagi.
1:18Iya, ketemunya sama yang lebih jago daripada Jepang.
1:22Kalaupun masuknya ya.
1:26Sekian kesinkan masuknya lagi dia, ya pasti langsung pulang.
1:30Itu di Domestika.
1:32Eh, send sponsor dulu dong.
1:36Sorry ya.
1:38Lupa, belum buka ini.
1:40Belum buka topik.
1:42Oke, episode malam ini masih disponsori oleh Domestika.
1:50Ya, jadi kita kolaborasi dengan Domestika untuk beberapa episode kemarin dan beberapa episode mendatang.
2:00Jadi kalau buat teman-teman yang mau beli hosting, hostingnya udah canggih loh.
2:06Kalau jaman dulu kan hosting cuma bisa terbatas lah ya. Cuma bisa poll, cuma bisa php, ngas equal gitu kan.
2:12Sekarang kayaknya hampir semua bahasa udah di dukun ya.
2:16Not.js bisa, go lang.
2:18Not.js bisa, go, bisa.
2:20Rush juga bisa.
2:22Jadi kalau mau nyobain boleh pakai promo code ngobrolinwebdn.
2:26Dn itu dominisia.
2:28Itu ada di bawah.
2:30Nanti dapet diskon.
2:32Diskon 10%.
2:34Semua paket web hosting, diskonnya berlaku untuk seiklus 1 atau 2 tahun untuk pembelian pertama.
2:40Jadi terima kasih banyak buat dominisia yang sudah mendukung acara kita ini.
2:46Oke.
2:48Malam hari ini kita akan kembali membedah situs.
2:52Bedah situs.
2:54Terakhir kan pancingan ya.
2:56Situs pancingan.
2:58Sekarang beneran.
3:00Ternyata ada yang submit.
3:02Dari mas IM Gdev.
3:06Gdev itu apa ya?
3:08Google Dev.
3:10Google Developer.
3:12Awalnya mau submit website yang dibuat kantor tapi takutnya nggak boleh.
3:20Terus ada website yang dia buat untuk temannya juga ternyata nggak bisa diakses gara-gara.
3:28Apa?
3:32Domainnya nggak diperpanjang.
3:36Padahal bisa dikasih source code-nya aja ya.
3:40Source code-nya boleh nggak ya?
3:42Nggak boleh kali ya.
3:44Akhirnya disapit ulang.
3:48Sapit ulang website undangan ya. Kayaknya ya website pernikahan tapi kode-nya 3 tahun yang lalu.
4:00Ada ini juga nih.
4:02Tapi kayaknya belinya salah ya.
4:04Ada source code-nya juga nih.
4:06Nanti kita bongkar-bongkala ya.
4:10Loh.
4:12Salah ya.
4:14Oh ada ini-nya.
4:18Nah ini dia.
4:20Bacanya gimana nih?
4:22Fendangan.
4:24Fendangan.
4:26Biar EG. Sekarang kan U itu jadi V.
4:28Biar KPI metal.
4:30Ini tampilannya.
4:32Oh ada musiknya.
4:36Nggak denger ya musiknya?
4:38Langsung bunyi kan. Langsung autoplay.
4:42Denger ya?
4:44Dengar nggak?
4:46Enggak kan? Karena nggak share tab ya.
4:50Ini kita bisa tebak lagu apa.
4:54Tapi harus di-share ulang ya bentar ya.
4:56Ada tulisannya.
4:58Share-nya harus pakai itu.
5:00Share tab.
5:02Gimana dia?
5:04Nah ini ada suaranya kan.
5:08Ini ada apa nih?
5:12Begitu ke kanan atas itu loh.
5:18Karena atas kan udah ada dulu nih.
5:20Karena atas itu yang ada buat kemudahan tuh.
5:24Oh ini.
5:26Oh.
5:28Keren juga.
5:30Pakai apa ya? MP4 ya?
5:32Atau MP3?
5:34MP3.
5:36Itu kan ada source code-nya.
5:38MIDI.
5:40Coba lagi. Penasaran.
5:44Oke.
5:50Mana media?
5:52Apa nih? MP3.
5:54Oh nggak kelihatan ya.
5:56Nggak kelihatan ya.
5:58Berarti present-nya diulang lagi.
6:00Sekarang balik lagi ke full screen.
6:04Cuma mau dengerin suara doang.
6:06Nah.
6:08Nih MP3.
6:10Minang.
6:12Tuh udah kelihatan udah ketahuan juga kan judulnya.
6:14Dari judul.
6:16Ternyata ini adat Minang.
6:18Ini 3 tahun yang lalu.
6:22Oh 2002. Dikitnya 2022.
6:24Oh 2023.
6:26Oke.
6:28Namanya Grafis.
6:30Iya itu nama orang ya.
6:34Pasti developer.
6:36Bukan desainer. Grafis.
6:38Desain grafis.
6:42Ntar ada yang ngasih nama anaknya.
6:44Figma.
6:46Oh Figma.
6:48Oke.
6:54Jadi malam ini kita akan
6:56membedah situs ini.
6:58Jadi ini adalah situs landing page kali ya.
7:00Tadi ada
7:02depannya itu.
7:04Ini kita bisa masukin nama ya.
7:06Nama dan keluarga.
7:08Oh iya bisa.
7:10Enggak ya tulis nama.
7:12Tulis nama Eka.
7:14Tulis nama keluarga bisa
7:16ngobrolin web.
7:18Oh iya.
7:20Oh musiknya bisa di index lagi.
7:22Ini gak copyright ya.
7:26Ada itu.
7:28Can help falling in love.
7:30Apa lagi?
7:32Oh cuma 2.
7:34Cuma 2.
7:36Oke.
7:38Tadi udah dimasukin nama. Terus ada
7:40keterangannya.
7:42Ketika nya kapan.
7:44Oh ini fontnya lucu juga ya. Menarik ya.
7:46Ini sama ini fontnya sama.
7:48Ini standar.
7:50Ini gimana tadi?
7:52Mobile.
7:54Kalau mobile fotonya ilang.
7:56Kasian. Yang kiri tuh pasti udah
7:58capai-capai foto pre-wet kan.
8:00Pasti itu fotonya lama
8:02ribut.
8:04Oh yang sebelah kiri ya.
8:06Ya yang kiri.
8:08Itu yang bunga.
8:16Bunga itu bisa kembang pempis.
8:18Pake jeep.
8:20Itu bunganya gitu-gitu.
8:22Iya kayak ada animasinya tuh.
8:26Ini bukannya pakai CSS bisa ya?
8:28Bisa lah.
8:30Gak tau ini pakai apa coba.
8:32Bukannya opacity.
8:34Apa ini?
8:36Kok gak ke select ya?
8:40Deep ya. Di dalam deep berarti ya?
8:42Di sini.
8:44Background ya.
8:46Ini opacity nya tuh jalan tuh.
8:48Pake JS.
8:50Di edit opacity nya berubah-ubah gitu.
8:52Bukan pakai animate.
8:54Bukan pakai animate. Pake JS ya.
8:56Berarti image, background,
9:00terus opacity nya yang dimainin pakai
9:02JavaScript ya.
9:04Oke.
9:06Terus kalau kita pencet next itu
9:08kita dikasih
9:102 acara karena ada
9:12karnika dan resepsi.
9:14Jadi di sini ada petanya.
9:16Petanya gak bisa diklik kanan ya.
9:18Kalau diklik buka modal.
9:22Ya, buka modal.
9:24Di Riau.
9:26Wuh, bunyi lagi.
9:28Butuh modal.
9:30Terus kalau ingatkan
9:34saya masuk ke Google Calendar.
9:36Boleh calendar nya masih aja?
9:40Jangan.
9:42Ga ada yang rahasia juga sih.
9:44Ternyata ketemu dengan
9:48Presiden, ketemu dengan...
9:50Tenggak.
9:52Bayar tagihan,
9:54bayar ini.
9:56Isi tokan listrik ya.
10:02Itu isi listrik.
10:04Oke.
10:06Ini...
10:08Ini...
10:10Indonesia langsung lupa
10:12calendar event nya.
10:14Kemungkinan besar menggunakan
10:16nest.js. Bener gak?
10:18Ya, iya.
10:20Itu ada nest.config.js.
10:22Next config itu isinya apa sih?
10:24Iya, config buat nest.js.
10:28Masih webpack.
10:30Ya, masih ya.
10:32Iya, belum...
10:34Kalau sekarang udah...
10:36Udah turbo pack atau masih
10:38bisa milih?
10:40Atau harus pakai...
10:42Sekarang by default kayak si turbo pack.
10:44Udah by default ya?
10:46Iya. Udah bukan
10:48experimental.
10:50Ini yang menarik nih CSSnya.
10:52Kalau misalnya
10:54masih ada
10:56field webpack di config
10:58sih gak ditimpa.
11:00Tetep pakai webpack.
11:02Cuma kalau baru by default udah pakai
11:04turbo pack.
11:06Oke.
11:08Wait sebentar.
11:10Yang subnet kan
11:12must
11:14gdf nih.
11:16Tapi yang punya projectnya
11:18mas graphis.
11:20Tapi fotonya sama.
11:22Ini projectnya punya
11:24gdf.
11:26Tapi yang commit
11:28mas graphis.
11:30Eh, sama ya?
11:32Orangnya sama.
11:34Akunnya 2.
11:36Oh ini...
11:38Coba...
11:40Coba lihat commit.
11:42Ada 2 akun.
11:44Dua akun, oke.
11:46Ini ada 2. Orangnya sama, fotonya sama.
11:48Itu sama-sama mas graphis itu.
11:50Akan iya namanya graphis, tapi jadi
11:52webdev kan.
11:54Jalan-jalan punya adik namanya
11:56webdev, jadi graphis designer.
11:58Selamat malam.
12:04Siapa nih?
12:06Kizois.
12:08Gak, gak pakai keyframe ternyata.
12:10Pakai JavaScript.
12:12Aldebaran.
12:14Next config islin matiin
12:16biar production gak gagal build.
12:18Oh, biasanya
12:20bikin gagal build gitu.
12:22Kenapa? Kenapa
12:24harus dimatiin? Karena ini ya
12:26masih pakai
12:28yang require-require gini ya.
12:30Masih gadul ya.
12:32Nggak apa-apa kalau JS sih.
12:36Nggak ngaruh kan?
12:38Gak tau.
12:40Di dunia virtual kadang-kadang
12:42ada masalah-masalah mistis.
12:44Mau complain sedikit.
12:46Kalau mereka
12:48ke GitHub-nya,
12:50buka di tab baru,
12:52di tab baru.
12:54Gak pergi ke
12:58commit semuanya,
13:00commit apa lagi ya.
13:02Hal pertama yang saya comment
13:06di sini adalah
13:08commitnya kita menggunakan
13:10conventional.
13:12Sentang hijau.
13:14Gak sign.
13:16Kirain commit message-nya.
13:18Oh, sign commit.
13:20Itu penting sekali.
13:22Sign commit.
13:26Oh, yang kayak ini ya?
13:28Yang kayak kemarin itu ya? Harus di
13:30approve ya?
13:32GPG key atau
13:34SSH
13:36juga bisa.
13:38Bukannya itu automatis ya?
13:42Gue malah nggak nyander.
13:44Gimana cara setting-nya?
13:46Ini baru gue mau kasih.
13:48GitHub sign commit.
13:52Gak mesti GitHub juga.
13:56Semuanya bisa git.
13:58Semua git.
14:00Bukan semua lain.
14:02Semua git.
14:04Semua git hosting-nya.
14:06Oh, pakai global. Pantesan.
14:08Mau pakai patch juga bisa.
14:10Harus designnya.
14:12Kalau udah sekali
14:14di...
14:16Sekali enable.
14:18Dan abis itu lupa.
14:20Abis itu lupa.
14:22Ini adalah
14:24salah satu
14:26requirement dasar.
14:28Kalau misalnya di tempat saya gue kerja.
14:30Semua pekerjaan harus
14:32design.
14:34Iya, iya, iya, iya.
14:38Oke.
14:42Mudah-mudahan mas
14:44grafisnya datang ya.
14:46Nonton gitu maksudnya.
14:48Nah nonton ya itu. Coba di komen
14:50say hi dong. Mana mas grafis, mana mas grafis?
14:52Iya, boleh. Yang punya...
14:54Ya pertama-tama kita ucapkan terima kasih banyak.
14:56Udah berpartisipasi ya.
14:58Jadi kalau teman-teman punya...
15:00Akhirnya dapet pasien juga setelah
15:02berapa... Berapa bulan kita
15:04minta apa? Cari-cari situs yang
15:06muda-muda. - Udah datang malah mas Danang Jufri.
15:08Samburnya.
15:14Nah mas Kay, saya tanya tuh
15:18apa gunanya, apa fungsinya
15:20dengan... - Oh iya, fungsinya
15:22yang ini ya.
15:24Shining Commit ya.
15:26Ya pasti
15:28pertama buat security.
15:30Jadi kalau kalian mau
15:32mencoba
15:34coba bikin
15:36repo-nya sendiri public.
15:38Saya pakai
15:40komputer yang belum pernah sign commit.
15:42Coba bikin aja
15:44gitconfig username sama gitconfig
15:46email-nya orang yang
15:48I don't know.
15:50Kalau kalian tahu emailnya dan Abrahamov. - Impersonate gitu.
15:52Ya, dan
15:54dan pakai emailnya dan Abrahamov gitu
15:56misalnya, post aja commit-nya.
15:58Nanti yang... - Elon Musk @ email.com
16:00Itu nanti yang muncul namanya
16:02username-nya itu dan Abrahamov.
16:04Nah,
16:06kalau sudah muncul commit seperti itu kan bisa jadi
16:08kayak, kalau di luar sana ya
16:10kalau misalnya
16:12somehow seorang
16:14nge-post commit gitu, ngaku-ngaku sebagai
16:16dan Abrahamov, dan Abrahamov bilang
16:18"No, itu bukan saya. Semua
16:20commit dari saya
16:22saya pasti psycho." - Ada cintang
16:24cintang ijunya? - Iya.
16:26Coba aja buka. - Kayak twitter ya
16:28ada cintang ijunya ya? - Iya.
16:30Buka... - Cintang biru.
16:32Coba github-nya siapa lagi tuh?
16:34Github-nya mungkin...
16:36Mas Riza mungkin jadi contoh.
16:38Mas Riza belum cinta. - Bisa dibuka?
16:40Ya, sama. - Emang bisa dibuka?
16:42Eh, emang bisa kelihatan?
16:44Dari mana kelihatannya?
16:46Buka satu repo, yang ada
16:48commit-nya Mas Riza.
16:50Itu cintang hijau itu.
16:52Itu cintang hijau itu.
16:54- Oh, ini C.I.
16:56C.I. ini kan? - Itu, itu G.P.G.
16:58Sine. - C.I.
17:00C.I. - Oh, sorry ya, sorry.
17:02Ke... - C.I.
17:04Ke ini, ke ini.
17:06Ke... - Ke commit.
17:08Verified.
17:10Oh, verified.
17:12- Cintang ijun verified. Klik aja, klik.
17:14Klik verified ya.
17:16Tuh, kelihatan.
17:18C.I. was signed by
17:20verified signature.
17:22G.P.G. ID-nya itu.
17:24And more about vigilant mode.
17:26Vigilant mode? Apa nih vigilant mode?
17:28Ya itulah mencegah
17:30mencegah impersonate.
17:32Siapa gitu.
17:34Ngaku-ngaku Mas Riza
17:36nge-push commit ke
17:38Actifate, bikin PR.
17:40Terus dia approve sama admin.
17:42Hmm.
17:44Ternyata nyolong semua
17:46user. - Iya juga ya.
17:48Karena kita
17:50apa, config
17:52username dan
17:54username dan apa
17:56ya, nama dan email
17:58untuk ke
18:00GitHub, itu nggak perlu password ya.
18:02Jadi kita bisa pakai
18:04nama siapa aja sebenarnya. Dan email
18:06dari mana aja, nggak di-conform
18:08juga kan emailnya ya.
18:10Iya ya, benar juga.
18:12Dah.
18:14Sip.
18:16Halo Wilbert.
18:20Nah Wilbert ini juga ini ya.
18:22Pasti pada kenal ya.
18:24Dari GDG
18:26Surabaya.
18:28Itu pertama
18:30tadi harus
18:32di-sign. Cara sign-nya
18:34adalah dengan config ya.
18:36Config global ya.
18:38G.P.G. sign. Ini langsung aja
18:40jalan ini udah selesai gitu.
18:42Harus, harus generate G.P.G.
18:44juga. - Harus, harus di-generate dulu kan?
18:46Ada step-nya di sini juga ada.
18:48Oh ini, ini.
18:50Iya.
18:52Itu generate ya G.P.G. key
18:54nanti dimasukin ke
18:56GitHubnya. - Oh ini verified.
18:58Dari tadi dilihat di sini aja ya harusnya ya.
19:00Tapi generate
19:04G.P.G. key-nya nggak ada di sini ya?
19:06Oh ini ya. - Ada-ada nanti di bawah.
19:08Di bawah kan ada. - Di bawah?
19:10Ini? - Atas, atas, atas
19:12dikit, atas dikit.
19:14Oh generate G.P.G. key.
19:16Generate your G.P.G. key.
19:18Ini kita share dulu lah ya. - Bisa di GitHubnya juga.
19:20Bisa di Rokal.
19:22To you.
19:24Dan bisa SSA side juga
19:26bisa. Nggak perlu SSA G.P.G. key.
19:28Kayak gini ya.
19:30Hampir sama
19:32seperti kita
19:34set up untuk GitHub ya.
19:36Push ya. - Push G.P.G.
19:38Push SSA via SSA.
19:40Kalau misalkan kita mau
19:42apa?
19:44Mau
19:46git clone
19:48kalau pakai SSA kan kita harus
19:50itu dari setting dulu kan.
19:52Kayak gitu ya, kurang lebih ya.
19:54Oke, oke.
19:56Sapa lagi?
19:58Itu yang pertama.
20:00Yang kedua?
20:02Yang mau dibahas?
20:06Ininya?
20:08Coba lihat konfignya.
20:10Apa? Next
20:12atau Package?
20:14Yesan.
20:16Ya, coba lihat. Package-nya apa aja?
20:18Package Yesan.
20:20Dependency.
20:24Ada Turbo Pack tuh?
20:26Dia pakai Dev Turbo. Apa itu Dev Turbo di atas?
20:28Hah?
20:30Itu Dev Turbo. - Oh, yang pakai Turbo.
20:32Jadi kan
20:34masih pakai flag kan.
20:36Iya, jadi Interchangeable dulu.
20:38Masih transisi ya?
20:40Masih dulu pas sebelum dipindah,
20:42kalau pengen nyoba nih, tanpa harus
20:44mengomit, tanpa harus bikin keputusan
20:46dulu, pindah nih
20:48dari WP ke Turbo Pack, coba aja jalan
20:50pakai Turbo.
20:52Ngecek yang jalan apa, yang error apa.
20:54Kalau misalnya semua udah smooth,
20:56ya bisa apa?
20:58Kalau mau switch ke Turbo Pack,
21:00tinggal switch aja.
21:02Browser list
21:04since 2015.
21:06Nggak ketinggalan jauh itu ya, udah 10 tahun.
21:08Browser list
21:12since 2015.
21:14Better di-update
21:18pakai yang 2 major
21:20browser terakhir, atau
21:22non-ID, lebih
21:24sederhana jadinya.
21:26Oh, ini target
21:28kompilasi ya, berarti ya?
21:30Browser yang
21:322015
21:34atau yang lebih baru ya.
21:36Ini terlalu panjang sih.
21:38Terlalu panjang.
21:40Terlalu lampau.
21:42Ilmu baru, betul.
21:46Saya juga inget sih
21:48setup-nya, tapi nggak inget
21:50ternyata itu fungsinya buat verified itu.
21:52Waktu itu kalau nggak salah, mau submit
21:54sesuatu ke
21:56repo, disaratkan
21:58harus jalanin itu dulu.
22:00Jadi setup-nya juga
22:02karena terpaksa.
22:04Gak boleh.
22:06Kalau saya
22:08harus dari kantor ya.
22:10Jadi preacher soal itu.
22:12Nah, cuma
22:14gue malah
22:16nggak aware soal ini.
22:18Tapi, jadi kalau di
22:20repo pribadi, yang project pribadi,
22:22banyak yang nggak ada centangnya.
22:24Cuma barusan ini barusan banget, jadi
22:26kita cek
22:28di repo
22:30organisasi pribadi, tempat kerja,
22:32centang semua kelihatannya di on-boarding
22:34guide atau whatever, emang
22:36suruh ngejelani comment itu, tapi
22:38di save-nya ke .git
22:40di project-project repo
22:42kerja, jadi by default emang
22:44setiap kapus udah centang.
22:46Kan tadi ada pilihan yang pertama,
22:48kalau nggak pakai flag global, kan
22:50ke save-nya ke .git yang
22:52di hiriku itu.
22:54Per folder, misalnya
22:56folder indoor, semua
22:58project yang di dalam folder itu
23:00pakai .git kerja.
23:02Iya, ponnya
23:04.git kan emang apa?
23:06.git terdekat lah.
23:08.git config.
23:10Oke.
23:12Sebelum lanjut, ini ada ini nih.
23:14Komentar menarik nggak?
23:16Disoise.
23:18"Saya mau pindah ke app dev,
23:20tapi sayang banget butuh spek PC
23:22laptop yang agak tinggi masih
23:24nabung biar eksperimen lagi soalnya baru lulus
23:26SMA." Wah, baru lulus SMA udah
23:28belajar ini ya. Maksudnya mau jadi
23:30web dev.
23:32Natif kali ya maksudnya.
23:34Web dev, ya. "Saya mau pindah
23:36ke app dev." Oh iya.
23:38Kalau app dev memang
23:40butuh
23:42mesin yang lebih
23:44kencang. Kalau web dev
23:46selama masih bisa
23:48berhasil aman.
23:50Ya, bisa di cloud juga kan
23:52bisa kayak pakai
23:54semacam yang online
23:56kayak code sandbox lah
23:58atau dulu sebelum itu ada
24:00IDX ya.
24:02"Keyjoys pindah ke web dev." Nah, lebih
24:04murah. Iya, mendingan web
24:06biar ada. Entry,
24:08better entry-nya lebih murah.
24:10Lebih, ya, lebih
24:12terjangkau.
24:14Ya, lebih terjangkau. Ya, sepunyanya
24:16apalah laptop yang udah ada,
24:18kemungkinan besar ya bisa dipakai.
24:20Nggak bisa jalanin next.js
24:22nggak usah khawatir banyak. Vanilla bisa.
24:24Aman ya.
24:26Kalau next.js mungkin agak berat ya.
24:28Nggak perlu
24:30VS Code. Nggak perlu
24:32VS Code. Nggak perlu pakai FIM.
24:34Belajar FIM ya.
24:36Ringan.
24:38Kalau
24:40kalau app dev mungkin
24:42agak susah pakai FIM ya.
24:44Karena harus
24:46kompilasinya harus pencet tombol
24:48play gitu kan.
24:50Ya banyak lah ya.
24:52Iya, IDX sekarang udah jadi Firebase Studio.
24:54Ganti nama, ganti branding.
24:56Atau di GitHub bisa
24:58pakai Codespaces. GitHub Codespaces.
25:00Tapi ada free tier-nya ya.
25:02Jadi jangan melampaui
25:04perangas aja.
25:06Jangan udah tinggal lagi jalan.
25:08Pastiin. Coupar nolos. Oh nggak.
25:10Dia kalau 5 menit belum aktif, mati sendiri.
25:12Oh dia auto shutdown.
25:14Studen kan?
25:16Ada akun
25:18ada email studen nggak?
25:20Kalau ada kan bisa dapat studen tag ya.
25:22Kalau di GitHub. Oh iya yang kita bahas
25:24kemarin itu.
25:26Bukan, beda. Kalau kemarin itu Google.
25:28Mas Tize juga.
25:30Web dev ringan.
25:36Bisa pakai VPS. Betul.
25:38Bisa pakai VPS.
25:40Coding pakai terminal ya. Kalau mobile
25:42memang agak berat ya.
25:44Jadi ya salah satu kelebihan
25:46nya web dev juga.
25:48Oke lanjut. Ini tadi
25:50browser release-nya kalau bisa yang
25:52lebih baru kali ya. Ngapain kita support
25:54terlalu panjang ya?
25:562015 berarti
25:58IANA
26:00masih ya. Masih di support ya.
26:02Intinya jadi banyak polyfill kan.
26:06Atau compilingnya
26:08juga jadi kayak ke JS.
26:10JS.
26:12Common JS.
26:14Kalau web dev murah
26:18apakah bisa coding pakai tablet?
26:20Bisa. Pakai handphone juga bisa.
26:22Asal sabar.
26:24Asal sabar aja.
26:26Saya pernah pakai, mencoba
26:30menggunakan tablet.
26:32Pakai termux loh. Codingnya pakai
26:34VIN. Coba, wah ini.
26:36Benar. Bisa.
26:38Saya pernah beneran pakai ini loh.
26:40Jadi kayak server down.
26:42Saya harus ke server
26:44pakai SSH.
26:46Terus saya pakai VIN.
26:48Pakai handphone.
26:50Lagi di mall istri
26:52dan anak lagi main saya. Benarin server
26:54pakai VIN di handphone.
26:56Benarin engine config saya.
27:00Aduh.
27:02Serem.
27:04Disanalah fungsinya apa skillnya
27:06VIN berguna ya.
27:08Untuk SSH ke server.
27:10Nggak bisa tuh buka VS Code.
27:12Kecuali kalau udah install
27:14VS Code server ya.
27:16Di servernya. Mungkin masih bisa.
27:18Oke. Kita lihat
27:22dependensinya ya.
27:24Oh itu pakai konten full tuh CMS-nya.
27:26Konten full.
27:28Itu.
27:30Paling atas.
27:32Oh iya.
27:34Restack HTML
27:36Renderer. Maksudnya ini kan
27:38webnya kan
27:40nggak dinamis kan ya.
27:42Maksudnya
27:44datanya kan nggak perlu berubah
27:46sering-sering kan ya. Kenapa pakai
27:48konten full? Nggak. Cuma kan
27:50mungkin kliennya ya yang nggak input.
27:52Maksudnya kayak blurbnya text-text
27:54yang tentang apalah itu
27:56tentang si apa?
27:58Si klien yang mau
28:00nikah ya mungkin punya admin atau apa
28:02yang buat input.
28:04Oh iya benar.
28:06Konten full tuh enak loh.
28:08Dia layanan headless CMS.
28:10Pernah pakai soalnya.
28:12Tapi ini nggak berbayar sih. Ini
28:14murni pengalaman pribadi.
28:16Maksudnya free tier-nya cukup
28:18generous. Nah terus ya enak lah
28:20user-friendly. Jadi kalau kita
28:22build buat
28:24yang harus datanya
28:26sering-sering diupdate oleh
28:28orang lain yang bukan kita,
28:30bukan developer, itu enak banget.
28:32Ya tinggal login ke
28:34konten full, terus post type-nya juga
28:36macem-macem. Nah itu
28:38headless. Jadi kayak
28:40konten full-nya udah nyediain
28:42SDK untuk berbagai layanan
28:44apa? Berbagai library
28:46termasuk di React
28:48atau JavaScript. Ya udah.
28:50Itu manggil datanya tinggal pakai
28:52si library yang udah
28:54disediain.
28:56Ya Mas, yudah
28:58kita lagi apa?
29:00Lagi membahas tentang
29:02situs yang
29:04disubmit oleh Mas
29:06Grafis namanya.
29:08Mas Grafis. Ada di
29:10GitHub ininya. Diskusinya ada
29:12di GitHub sini. Jadi silahkan
29:14ini bentukannya
29:16kalau mobile, tapi kalau
29:18ini yang
29:20versi full-nya seperti ini.
29:22Tadi kalau baru
29:24mulai masuk tuh ada
29:26masukin nama, terus
29:28ada kayak shock.
29:30Terus ada apa? Oh ada lagi.
29:32Itu navigasi. Ya navigasi.
29:34Berarti ya.
29:36Sama-sama
29:38kalau arrow kiri-kanan.
29:40Ya.
29:42Konten
29:44full, berarti
29:46kontennya di
29:48entry, dia nyediain kayak
29:50back-office gitu ya buat
29:52ngisi kontennya gitu ya?
29:54Tapi itu hosted di konten full-nya.
29:56Jadi nggak pake
29:58infromosi, kita nggak harus mikir
30:00itu hosted di mana.
30:02Oke.
30:04Ini semacam
30:06Netflix, eh Netflix.
30:08Netlify punya juga kan ya?
30:10Netlify juga ada kan ya CMS-nya?
30:12Oh kalau Netlify
30:14bukan.
30:16Agak sedikit beda Netlify itu.
30:18Netlify itu
30:20menarik sih, Netlify CMS.
30:22Jadi Netlify nyediain kayak
30:24front-end-nya, front-end
30:26untuk admin ya, itu dihostingnya
30:28di website, di aplikasi
30:30kita sendiri sebenarnya kalau yang punya
30:32Netlify ya, Netlify CMS.
30:34Cuma dikasih interface, dikasih
30:36front-end, terus setiap kita edit
30:38atau bikin perubahan itu jadi
30:40full request.
30:42Nah maksudnya itu kenyanya Netlify.
30:44Direct push, Strapi, oke.
30:46Direkt. Nah iya.
30:50Saya ingin lihat.
30:52Sekarang itunya banyak ya.
30:54Gatau punya CMS apa ya?
30:56Pernah pakai dulu banget pas kayaknya
30:58belum se...
31:00Oh ini ya, kurang lebih kayak gini ya.
31:02Ada
31:04ada web suite-nya, gitu-gitu ya.
31:06Iya.
31:08Jadi ya tipe
31:10data yang standar lah ya, kalau buat
31:12front-end, misalnya bisa drop-down select,
31:14bisa checkbox,
31:16bisa date, bisa reach text,
31:18itu semua kita bisa customize,
31:20dan terus ya nanti tinggal
31:22panggil aja.
31:24Date bisa. Oh itu kayak
31:26widget gitu ya, drag and drop gitu.
31:28Kayaknya bisa, mungkin ya.
31:30Gimana?
31:32Kayak apa? Drag and drop gitu.
31:34Date.
31:36Content kan, bukan
31:38bikin, bukan
31:40no code platform kan. Ini kayak
31:42no code platform bukan?
31:44Bukan, ini buat CMS,
31:46ini headless CMS.
31:48Oh iya.
31:50Oke, taxonomy, segala macemnya.
31:52Cuma maksudnya
31:54drag and drop itu dalam arti
31:56si admin interface-nya itu loh,
31:58misalnya selain title,
32:00kan mungkin ada custom field
32:02macem-macem, itu mau ditaruh atas atau
32:04ditaruh bawah, kayak WordPress juga ada kan.
32:06Nah, cuma
32:08ini kayak lebih
32:10more style aja.
32:12Si...
32:14Siapa tadi namanya?
32:16Ada sisi admin-nya?
32:18Ada sisi admin-nya, berarti ya?
32:20Itu hosted
32:22di Contentful, loginnya
32:24lewat Contentful.
32:26Kalau nggak salah ya, ini
32:28sekitar 2-3 tahun lalu, pokoknya
32:30terakhir gue pakai Contentful itu
32:32agak lama.
32:34Masih grafisnya
32:36nggak ada sih yang bisa kita tanya-tanya.
32:38Harusnya
32:40kalau ada, bisa kita tanya.
32:42Kita tanya-tanya, apa?
32:44Contentful. Oh, Atlas CMS.
32:46Ini kayaknya beda deh, yang platform ini
32:48kayaknya beda deh.
32:50Kayaknya ya.
32:52Content Platform
32:58Origin
33:00Tradisional.
33:02Oh, ini perbandingan ya.
33:04Adanya di mana kelihatan di sini ya?
33:06Wait, cuma gue nggak lupa sih
33:10apa, punya docks Contentful
33:12yang sesuai
33:14yang dipakai di situ.
33:16Mana ya? Gak tahu, ini ternyata
33:18Contentful produknya udah banyak.
33:20Ya, cuma kalau TLDR-nya
33:22sih gitu, Atlas CMS, ya mirip
33:24Strapi lah.
33:26Oke.
33:28Oke, kita lanjut ya.
33:30Ini pakai Contentful untuk
33:32isinya, untuk kontennya.
33:34Terus,
33:36wah, banyak yang nggak dikenal nih.
33:38Loadable Component, apa ini?
33:40Loadable.
33:42Gak tahu.
33:44Splite.js
33:46Splite itu apa ya?
33:48Kayak slideshow, atau apa ya?
33:50Carousel. Carousel.
33:52Carousel, betul. Carousel, ya.
33:54Yeslin. Yeslin.
33:58Yeslin, bukannya
34:00mendingan taro di dev ya?
34:02Dev dependency.
34:06Ya, sama aja.
34:08Next.js, presi 13.
34:10Next.progress, ini progress bar ya, mungkin ya.
34:12React.
34:16React. React.
34:18Pakai Kapcah.
34:20Kapcahnya buat apa ya?
34:22Buat ngirim komen, itu yang di slide
34:24terakhir. Nah, paling
34:26terakhir.
34:28Oke.
34:30Ini ada duitnya.
34:32Dia ngirimin duit gitu?
34:34Nah, tadi gue
34:36ngecek, nggak bisa itu.
34:38Itu kelihatan mungkin perukup konsep doang ya.
34:40Maksudnya nggak ada integrasi
34:42payment-nya.
34:44Iya. Kirim tanda kasih.
34:46Oh, dari sini ya.
34:48Oh, ini product contentful
34:52yang dipakai, ini yang
34:54CMS ini namanya sekarang
34:56Studio. Studio.
34:58Oh, yang tadi.
35:04Ini kayak
35:06no-code platform, bukan ya?
35:08Kayak kita bisa desain sendiri kayak Wix
35:10gitu, bukan ya?
35:12Tuh, dia bisa drag-and-drop itu.
35:14Kayak gitu, tapi bukan
35:16untuk web, apa?
35:18Bukan untuk client-facing,
35:20user-facing web app-nya.
35:22Untuk CMS
35:24experience-nya.
35:26Untuk nginput datanya.
35:28Oke.
35:30Jadi data-nya nanti semuanya
35:32jadi data-nya nanti sudah
35:34dimarkup, tinggal dia kirimkan
35:36HTML-nya, tinggal kita tampilkan aja
35:38berarti ya?
35:40Enggak. Ya, pasti panggil
35:42jadi JavaScript Object biasa.
35:44Desain gitu, bentuknya.
35:46Ya kayak API ya,
35:48panggil API ya.
35:50Kalau nggak salah sih, udah type
35:52juga, udah ada typing-nya.
35:54Jadi misalnya apa, custom di sini,
35:56custom entry-nya misalnya
35:58data-data apa itu tadi kayak
36:00lokasi-lokasi
36:02akaknikah-nya, lokasi
36:04resepsinya itu kan map point.
36:06Ya, misalnya ada field-field-nya gitu
36:08udah data yang dibalikin tuh
36:10udah ada type-nya.
36:12Nah, ini ada
36:14komentar dari mas
36:16Ahmad Muwafak nih.
36:18Kayaknya lebih
36:20ngerti ya. Loadable buat
36:22lazyload-component, code-splitting
36:24juga. Ini
36:26ngomentarin content code?
36:28Tadi loadable, bukan
36:30loadable. Tadi packaging
36:32kita nggak tahu itu. Oh,
36:34loadable, ya ya. Loadable itu
36:36buat lazyload-
36:38component, oke.
36:40Tapi bukannya Next sebenarnya
36:42udah handle
36:44itu ya? Itu semua udah bisa
36:46di Next.js nggak sih? Maksudnya
36:48use-casenya kenapa ya?
36:50Yang nggak bisa di handle
36:52Next.js sampe harus
36:54pakai loadable.
36:56Penasaran.
36:58NPM.js
37:00apa nih? Memory Load Pro.
37:02Memory
37:04Cache Pro.
37:06Buat caching.
37:08Modern, excellent, fast, well
37:12tested, reliable caching module.
37:14Itu kali buat lagunya
37:16biar na di caching
37:18di lokal.
37:20Nggak, ini buat
37:22nyimpen data ya.
37:26Kayak
37:28local storage ya.
37:30Tapi ini buat caching ya.
37:32Browser cache
37:34berarti ya?
37:36Browser cache ya.
37:38Iya, di client, kan?
37:40Dependency.
37:42Sudah, pakai JSON aman.
37:48Aman, pakai JSON oke.
37:50Terus, apa lagi? Kita lihat
37:54apa lagi?
37:56Pakainya Windy ya.
37:58Bukan pakai Tailwind ya.
38:00Ketiba node
38:02modules.
38:04Windy bukannya based on Tailwind ya?
38:06Belum pernah pakai sih.
38:08Oh, nggak
38:10ternyata Windy CSS
38:12migrate from Tailwind.
38:14Oh, baru tahu.
38:16Next generation utility first CSS
38:18framework.
38:20Lihat yang bawah, the Windy CSS
38:22setting. Oh, sun setting.
38:24Ya.
38:26Bukan musuh sih.
38:28Dulu dibuat untuk kebacakan
38:30Tailwind's performance issues.
38:32Tapi sekarang udah. Ingat-ingat-ingat.
38:34Windy itu yang pertama kali
38:36menggunakan just in time.
38:38Oh.
38:40Abis itu, diikuti
38:42oleh si Tailwind. Tailwind
38:44sekarang udah just in time. Makanya sekarang Windy udah
38:46sunset karena udah
38:48di. My job here is
38:50done. - Iya.
38:52Untuk membuktikan bahwa ini bagus gitu.
38:54- Berjalan ke musik gue sudah selesai.
38:56- For new project, we recommend to consider
39:00alternative like Uno CSS or Tailwind.
39:02Dulu ingatnya gitu, sempet
39:04apa, sempet
39:06ada drama juga tuh sama
39:08yang bikin Tailwind.
39:10Biasalah.
39:14- Skena web web itu nggak lupa
39:16seri drama. - Iya.
39:20.env.development
39:22- Kenapa
39:24.env?
39:26- Kenapa begitu?
39:28Kenapa
39:30ditaro di situ?
39:32- Nah, itu introduction-nya.
39:34- Kenapa beneran ini?
39:36- Jangan di-commit.
39:38- Jangan di-commit.
39:40Di-ignore dong, di-ignore.
39:42Tulung.
39:44- Cuma, bukannya sekarang
39:48otomatis ya?
39:50- Otomatis ya?
39:52Pasti ada warning dari GitHub-nya.
39:54Ada warning dari GitHub-nya.
39:56- Bukan GitHub.
39:58Dari Next.js kan
40:00sebenarnya kan kita bisa pakai
40:02environment variable.
40:04Kenapa harus dipasang ke file?
40:06- Iya.
40:08Ini,
40:10maaf ya, kita buka tadi.
40:12Tapi udah dilihat juga
40:14ini yang reponya. Ini content
40:16full-nya, hati-hati ini kalau berbayar.
40:18Soalnya...
40:20- Ini orang yang submit,
40:22untung mesti cuma bersyukur
40:24ini kita anekanin bahwa project-nya
40:26harus project kalian sendiri
40:28dan kalian yang submit. Ya udah kan, mesti
40:30ngomit-ngomit ada apa-apa
40:32ini.
40:34- Iya. Ini API
40:36content full-nya kebuka ini.
40:38Berhati-hati.
40:40Takutnya nanti kena
40:42kalau masih...
40:44- Dimention dulu, Pak.
40:46Dimention dulu
40:48di diskusi.
40:50Ini coba
40:52di riset dari
40:54konten file-nya.
40:56- Iya sih.
40:58Gini nggak bisa dihapus doang
41:00kalian cara hapus.
41:02- Iya nggak jadi konten full-nya
41:04di riset.
41:06- Di revoke. Terus
41:08INV ini-nya dihapus,
41:10bukan di bagian commit itu aja, tapi harus
41:12historinya juga yang dari awal
41:14pertama kali muncul
41:16Git Ignore-nya apa?
41:18Oh, Git Ignore-nya ini dari Next.js ya?
41:22- Masa nggak ada
41:24Ignoran INV ya?
41:26- Iya.
41:28Kalau misalnya
41:30Next.js official starter
41:32Git Ignore-nya nggak ada INV
41:34itu agak bahaya sih, kasihan.
41:36Maksudnya kan mungkin banyak orang yang baru belajar,
41:38baru nyoba juga.
41:40Ya.
41:42Oke.
41:44Oke. Mungkin
41:46kita sekarang masuk
41:48ke
41:50kirain.inv
41:52example, gitu kan.
41:54- Kirain kosong.
41:56- Iya.
41:58Taunya beneran.
42:00Maaf lah ya.
42:02Kita nggak, tidak menyangka
42:04beneran. Oke.
42:06Apa lagi yang mau kita
42:08inspek?
42:10Ya, inspek sih.
42:12Bagian performance nyata
42:14atau kodanya.
42:16Ini berarti masih pakai yang
42:18lama ya? - Regis, kan?
42:202 tahun yang lalu.
42:22- Riaq Dead Picker.
42:24Padahal kan ada
42:26Dead Picker dari bawaan
42:28bawaan
42:30browser.
42:32- Oh, Riaq Dead Picker ya?
42:34Dead Pickernya buat dimana ya?
42:36- Atau, atau butuh-butuh apa?
42:38- Lagian Dead Pickernya kayaknya nggak ada
42:40keperluan. - Buat dimana?
42:42- Mistake deh. - Ini?
42:44- Nggak ada sih kayaknya.
42:46- Dah kan kelihatan kalendernya? - Nggak ada.
42:48- Nggak ada ya? Apa buat ini?
42:50Buat, ini kan cuma
42:52URL
42:54doang kan ya?
42:56Ada keperluan apa ya? - Iya, buat apa ya?
42:58- Dead Picker ya?
43:00Benar juga?
43:02Nggak ada?
43:04Bahkan nggak ada
43:06keperluan Dead Picker sih.
43:08- Ini audio player nih
43:10yang di atas tuh
43:12icons.
43:14Riaq Select.
43:16- Nggak ada select juga.
43:20- Riaq Pop Up.
43:32Pop Up yang tadi yang awal ya?
43:34Ini, munculin yang ini kali ya?
43:36Pop Up ya?
43:38Mungkin kalau sekarang
43:40udah ada dialog dan lain-lain ya?
43:42- Betul.
44:00- Ini
44:02struktur
44:04folder-nya.
44:06Ini layout-nya.
44:10Terus
44:18komponen
44:20Gallery Image Pop Up.
44:22Pop Up-nya ini ya?
44:24Yang tadi ya?
44:26Pop X.
44:30Iya.
44:32Ini.
44:34Buat nampilin
44:36Pop Up yang pertama kali.
44:38Terus
44:40ini undangannya yang
44:42Agenda,
44:44Form,
44:46Form Info sama Form
44:48Guest, Guest Book,
44:50sama ceritanya
44:52Love Story.
44:58Pastikan environment diignore.
45:00Itu
45:04bukannya udah wajib ya.
45:06- Public Repo lagi?
45:08- Iya.
45:10Untung loh produksinya nggak diignore.
45:18Sudah diignore ya untungnya.
45:22Dari next.js-nya udah kasih git ignore kan ya biasanya ya.
45:24Udah aman lah ya.
45:26Pidisnya berarti
45:28ada berapa pidis? Satu pidis doang
45:30sebenarnya ini kan.
45:32- Biar dibuka aja coba.
45:36- Iya kan.
45:38Tapi ini ada
45:40kayak ada ini.
45:42Ini ada gambar-gambarnya.
45:46Ini gallery ya.
45:48- Yang hijau. Apa tadi halaman tadi?
45:52Ada halaman hijau yang ada
45:54batangnya itu.
45:56Ini?
45:58Peta lokasi.
46:00Oh ini tohap.
46:02Navigasi.
46:04- Hijau-nya terang,
46:06tulisannya terang.
46:08Ini lagi?
46:10- Komentar-nya di Google Docs
46:12kan cuma itu punya
46:14accessibility sama usability
46:16sih yang paling
46:18kerasa.
46:20Termasuk behavior slide-nya itu
46:22keren.
46:24- Biasanya apa?
46:26- Apa?
46:28Jadi gini, ini kan pakai
46:30library external ya.
46:32Trus apa? Coba
46:34klik cursor.
46:36Tapi kalau ini sih tadi
46:38gue nyobanya, kantang liat kode ya
46:40cuma pakai aja. Cuma buka
46:42dari website-nya aja.
46:44Apa? Di yang kanan itu.
46:46Kanan yang putih.
46:48Nah
46:50kanan yang putih-putihnya itu
46:52diklik, terus tahan,
46:54terus geser dikit, tiba-tiba
46:56apa? Jadi misalkan
46:58use case-nya gini sih, misalkan kita
47:00pengen ngopas alamatnya,
47:02kan pasti cursor kita taruh kesitu
47:04teks alamatnya, terus kita
47:06berusaha nge-like.
47:08Tapi malah
47:10jadi kelihatannya dia
47:12malah-malah ini ya?
47:14Oh.
47:16Tidak.
47:18Kalau swipe di mobile,
47:20swipe di touchscreen, baru
47:22behavior swipe-nya dibikin
47:24berser-slide kalau
47:26user swipe. Tapi ini pakai
47:28modalities apapun, pakai cursor
47:30yang bukan
47:32buat nge-swipe, itu
47:34dia otomatis pindah
47:36kartu.
47:38Oh, ini targetnya
47:40buat dibuka di mobile ya?
47:42Iya.
47:44Cuma itu kan ada desktop-nya juga.
47:46Iya.
47:48Benar-benar.
47:50Semua yang terkait karusel-nya sih
47:52ini usability-nya
47:54agak
47:56kurang. Jadi kayak
47:58contoh lain misalnya gini nih,
48:00yang
48:02tapi nggak, gue belum sampai lihat kodenya
48:04sih, coba dibuku tamu aja.
48:06Nah, sekarang coba deh.
48:08Bisa nggak? Kan pengen
48:10lihat pesan dari orang lain,
48:12coba. Ini kan
48:14benar-benar minta.
48:16Coba gimana caranya?
48:18Gak bisa.
48:20Iya, coba cari caranya sampe
48:22bisa. Terus
48:24tebakan kita selanjutnya kan kita slide
48:26pakai mouse, kan?
48:28Iya, betul-betul.
48:30Bisa pakai
48:32tab, tebakan selanjutnya
48:34pakai tab, kita klik sekitar
48:36situ, terus tab-tab-tab aja sampai ke fokus,
48:38juga nggak bisa, nggak ada fokusnya.
48:40Ternyata, lihat nggak? Ijo-iju
48:42yang di kanan itu, bentik-bentik
48:44ijo, itu bukan dekorasi,
48:46itu step-card usaha.
48:48Oh, ini
48:50page-ing ya page-ingnya.
48:52Cuma karena isunya banyak,
48:54tadi kayak mleber gitu loh,
48:56jadi bukan di bawah.
48:58Ini ternyata
49:00pesan-pesan orang-orang ya,
49:02daftar pesan. Apa? Posisiunnya juga
49:04jadi aneh, karena pesannya banyak.
49:06Kalau pesannya cuma 3 atau 4, mungkin
49:08agak bagus ya. Maksudnya di kanan atas,
49:10semuanya jelas, nah ini makin banyak
49:12jadi kayak acak-acakan kan, kedurung ke kiri,
49:14karena steps-nya bukan di bawah.
49:16Terus maksudnya modalitas navigasinya itu
49:18slide nggak bisa,
49:20click nggak bisa,
49:22tab, tab untuk fokus,
49:24maksudnya tab atau apapun yang pakai
49:26assistive device ya, misalnya orang pakai
49:28apa itu yang screen reader
49:30atau alat-alat lain pun, nggak bisa.
49:32Terus yang anak Pim kan
49:34biasanya, ngelanjutin,
49:36tadi tuh anak Pim kan nggak suka
49:38mouse ya, semua pakai keyboard,
49:40tab, tab aja, nah ini jelas nggak bisa
49:42juga. Gak bisa juga tab-nya nggak jalan ya, nggak ada
49:44tab, namanya tab index ya,
49:46nggak dikasih tab index, jadi kalau kita
49:48mau ngisi, harus klik mouse dulu.
49:50Jadi sebetulnya sih mungkin
49:54alternatif yang
49:56paling ideal ya,
49:58sekarang kan carusel atau
50:00slider udah ada
50:02JavaScript dan CSS
50:04yang web API ya,
50:06jadi paling ideal itu bikin sendiri.
50:08Nah, kalau nggak
50:10memungkinkan, nggak sempat dan
50:12lain-lain, alasan lain, sebenernya
50:14kayak ShadCN,
50:16ShadCN tuh ada carusel, kalau
50:18Radix UI, agak lupa
50:20apa, ada carusel atau nggak,
50:22intinya sih pakai
50:24React UI Library yang
50:26udah support accessibility
50:28features, sekarang udah banyak
50:30lho, jadi maksudnya paling ideal ya
50:32bikin sendiri, jadi kita bisa
50:34control semua
50:36fungsionalitasnya, tapi kalau itu nggak
50:38memungkinkan cari UI Library yang
50:40udah ada support,
50:42ya itu tadi segala macam
50:44accessibility features,
50:46jadi accessibility features itu
50:48bukan cuma buat
50:50apa,
50:52bukan cuma buat
50:54yang kayak apalah
50:56screen reader atau defabilitas doang,
50:58tapi ya beneran
51:00literally sesuai namanya,
51:02memastikan segala macam
51:04user dengan berbagai cara
51:06akses website itu mudah buat
51:08akses kontennya.
51:10Oh, kita kan waktu itu
51:12udah tutorial sama Ivan ya
51:14cara ngecek performance.
51:16Iya, performance-nya nih
51:18oke nih ya.
51:20Ya kan,
51:22karena pakenya
51:24komputer hebat dan
51:26dan
51:28oh iya,
51:30belum di, itu ya,
51:32belum di throttle ya,
51:34no throttling,
51:38coba slow,
51:40terus
51:42yang di refresh ya, yang di performance-nya ya,
51:44ini ya,
51:46gitu ya.
51:48Tapi ini kalau kita
51:50nggak klik, dia masih
51:52ngitung sebagai ini nggak?
51:54Udah loading kan semuanya kan?
51:56Iya.
52:00Modern
52:02Classic,
52:04oh, apa nih?
52:06Wow.
52:12Masih ke-mutein lagi.
52:14Mendingan ini di-mute aja ya.
52:16Mute.
52:18Nah itu salah satu juga
52:20bisa opt-out dan itu.
52:22Nah itu aksesibility dan usability.
52:24Tapi itu stress banget.
52:26Padi asli, itu asli
52:28kaget sih tadi,
52:30pas sebelum mulai live ini,
52:32oh coba, mau udah situs nih
52:34nge-check, tiba-tiba
52:36tiba-tiba
52:38lagu ini bunyi,
52:40dan nggak tahu dari mana,
52:42kalau emang user-nya
52:44nge-click play dengan sengaja,
52:46ya udah kan, udah expect.
52:48Bayangin dong kalau lagi meeting atau apa,
52:50tiba-tiba dikirimin
52:52link ini undangan,
52:54di-play, diliatin
52:56sekeluangan.
52:58LCP, INP,
53:00dan CLS.
53:02Ya
53:04layout shift-nya nggak,
53:06minimum lah ya, nggak ada ya.
53:08Hampir bisa dibilang nggak ada ya.
53:10Ya, karena
53:12jenis website-nya juga ya.
53:14Itu bentuk
53:20live-nya tuh pakai CSS atau
53:22image?
53:24Ini image-nya udah pakai EI nih,
53:263 tahun yang lalu.
53:28Itu, ada
53:30gambar kartun yang gitu, versi kartunnya
53:32itu, itu yang berubah
53:34jadi kartun.
53:36Image.
53:40Thumbnail.
53:44Nah, ini salah satunya,
53:46kalau misalnya
53:48image-nya PNG itu
53:50berat, 76 kilo
53:52kan, lumayan tuh.
53:5476 kilobyte?
53:56Iya.
53:58Padahal kalau dia misalnya pakai
54:00image yang
54:02image yang
54:04GPEG aja,
54:06itu
54:08ada animasinya ya?
54:10Iya, ada animasinya.
54:12Itu yang berubah jadi versi
54:14kartun.
54:16Jadi ghibli-ghibli.
54:22Ya.
54:24Sama itu versi load itu
54:26harusnya nggak kan?
54:28Nggak, ini ya, kayak kecilan
54:30itu tulisan
54:32kayak
54:34Ini dia pakai
54:38WP, udah pakai WP.
54:40Upper case semua itu juga nggak bagus lho.
54:42Gimana?
54:44Upper case itu memplay wanita,
54:46memplay pria, itu kan upper case.
54:48Oh, ini tulisan ini?
54:50Iya.
54:52Kenapa?
54:54Alasannya kenapa?
54:56Ya, sudah upper case tapi
54:58dibikin font-nya kecil dan tipis.
55:00Itu nggak enak.
55:02Ini upper case-nya pakai CSS
55:04lagi ya?
55:06Karena aslinya nggak.
55:08Nggak masalah ya? Nggak ngaruh ya?
55:10Nggak masalah, cuma secara
55:12kembali ke accessibility
55:14sih saya.
55:16Nah, cuma itu seberapa ketat sih, kalau di luar
55:18emang ada syarat
55:20WCAG, cuma kalau ini kan
55:22asumsinya berarti target market-nya
55:24lokal ya, Indonesia.
55:26Mungkin nggak harus seketat itu.
55:28Cuma yang jelas sih
55:30kalau buat...
55:32Bukan soal aturan
55:34yang ketat, tapi dengan
55:36memberikan accessibility yang bagus,
55:38bagi pembacanya
55:40juga lebih enak sebenarnya lho.
55:42Jadi kayak
55:44kita itu memberikan konten yang
55:46enak buat dibaca dan
55:48dikonsumsi sebenarnya.
55:50Bukan soal ikutin aturan.
55:52Nggak, sebagai
55:54kalau yang
55:56secara ideal sih setuju. Cuma
55:58kadang kayak gini kan webdev kita
56:00harus bentuk-bentukan
56:02sama pihak di luar kita.
56:04Kayak kalau gue pribadi kadang pick our battle
56:06gitu. Kayak misalnya kalau gini,
56:08daripada tawar-menawar soal tulisan
56:10memply one time, mending ngabisin tenaga
56:12buat lobby si button yang
56:14apa? Button hijau itu
56:16yang lebih nggak kelihatan sama itu tuh
56:18kanan atas lagu
56:20muter-muter. Kalau itu sih
56:22kalau ini bakal... Apa ya? Maksudnya daripada
56:24cerewet banget banyak yang diminta,
56:26gue bakal memfokuskan
56:28tenaga ke nge-lobby
56:30button warna,
56:32warna button hijau, plus
56:34behavior audio yang di kanan atas itu.
56:36Coba deh survey, sekian
56:38user, terutama yang nggak tech-savvy,
56:40bakal tahu nggak cara
56:42ngapain lagu yang tiba-tiba nyala.
56:44Itu kan kalau ini bakal...
56:48Dari tab browser kan ada
56:50tanda microphone tuh.
56:52User yang nggak tech-savvy,
56:54tiba-tiba bunyi nih, bunyi-bunyi terus.
56:56Nah, terus apa?
56:58Sementara itu di atas,
57:00di kanan atas nyempil,
57:02ada icon lagu muter-muter dengan
57:04kontras yang rendah, nggak langsung kelihatan
57:06juga, dan itu nggak tahu
57:08harus diklik baru buat
57:10untuk ngelakuin lagunya.
57:12Untung lagunya lagu slow ya,
57:14kalau coba noise rock, yang trik.
57:16Biasa yang nikah
57:18anak metal kan.
57:20Pada saat posisi play,
57:24lagunya lagi dimatiin,
57:26pun dia masih muter-muter.
57:28Soal awalnya lagi
57:30jalan gitu, padahal sebenarnya nggak.
57:32Ya itu hal-hal kecil sih ya.
57:34Muka ke
57:36hit memory bisa kelihatan nggak?
57:38Si button icon yang lagu muter-muter itu,
57:42itu nggak bisa ditap juga,
57:44harus pakai mouse.
57:46Oh nggak bisa diklik
57:48pakai mobile gitu?
57:50Iya, harus pakai
57:54pake tangan, pake
57:56touch bisa, cuma nggak ada.
57:58Nggak fokusable, nggak bisa difokus.
58:00Fokusable.
58:02Dimana? Network?
58:04Perfomance.
58:06Memory?
58:08Memory.
58:10Saya tadinya mau liat
58:26sam apainya kayak
58:28tuh, lumayan kan?
58:30Maksudnya,
58:32di hip snapshot-nya tadi,
58:34hip snapshot-nya, kayak
58:36animasi-animasi gitu sebenarnya bisa
58:38kelihatan tuh nanti
58:40berapa
58:42kepakainya
58:44memory di
58:46browser untuk merender itu.
58:48Ini size
58:54bundlenya
58:56dimana ya?
58:58Itu di bawah, 4,1 megabyte.
59:004,1 megabyte.
59:02Ya, image kelihatan ya.
59:04Image kali ya.
59:06Paling gede.
59:08Click image,
59:10click image di atas.
59:12Nah, kelihatan kan tuh sekarang jadi
59:14di bawah,
59:16jadi 1 megabyte tuh,
59:181 megabyte
59:20/ 1 megabyte.
59:22Itu artinya image-nya 1 megabyte.
59:241 dari 4 ya?
59:26Kalau ke JS-nya coba.
59:28JS-nya 1,4.
59:305. / Nah, jadi cara bacanya ya,
59:32kalau JS-nya tuh ada 17
59:34request dari 98 request.
59:36Ini yang kepakai, bandwidth yang
59:40kepakai 1,1 kilobytes dari
59:4246 kilobytes.
59:44Dan 1,4 megabyte.
59:46/ Ini khusus untuk JS ya? / Ya.
59:48Kalau mau lihat font, contohnya
59:50font-nya gede nggak?
59:52Nggak, font-nya kecil.
59:54/ Nggak, kecil.
59:56CSS-nya? / CSS.
59:58/ HTML-nya?
1:00:00/ HTML-nya nggak gede kan?
1:00:02154.
1:00:04CSS juga nggak gede.
1:00:06/ Ya, berarti gede-nya di?
1:00:08/ Media.
1:00:10/ Nah... / Media...
1:00:12Iya, 700 kilobytes.
1:00:14Wasm? Nggak ada ya Wasm.
1:00:20/ Ada, ada.
1:00:22Ada.
1:00:24/ 500 kilobytes...
1:00:26500 kilobytes ini apa?
1:00:28/ Ini tuh call web vital.
1:00:30Web worker.
1:00:32Web worker-nya dia jalan.
1:00:34/ Web worker.
1:00:36/ Recapcha.
1:00:38/ Recapcha berapa?
1:00:42Kecil ya?
1:00:44/ Karena Mas Riza ini,
1:00:46coba disable cache, terus reload.
1:00:48Kalau mau lihat.
1:00:50Terus matiin lagunya.
1:00:54Udah di...
1:00:56Udah di mute.
1:00:58Woh, nggak pake cache,
1:01:04lumayan juga ya.
1:01:0615 detik, 16.
1:01:08Karena heavy di image juga ya.
1:01:10Event,
1:01:12image-nya nggak kelihatan
1:01:14di sini ya. Cuman yang kelihatan kan
1:01:16image ini doang ya.
1:01:18/ Itu kayaknya image-nya di-load deh.
1:01:20/ Iya, ikut ke-load juga semuanya.
1:01:22Walaupun
1:01:24walaupun belum muncul di viewport,
1:01:26udah dipanggil laluan
1:01:28semua image-nya.
1:01:30/ Padahal capcha-nya nggak butuh-butuh di awal kan?
1:01:32/ Iya, nggak lagi load ya.
1:01:34Capcha-nya
1:01:36di akhir bahkan.
1:01:38/ Coba ke-image.
1:01:40/ Udah di-load semua?
1:01:44/ Satu dari lima.
1:01:46Lima setengah.
1:01:48Oh, tadi empat-empat sekian itu
1:01:50ke-cache ya?
1:01:52/ Iya.
1:01:54Ada yang sebagian ke-cache.
1:01:56/ Font, oh, nambah lagi nih.
1:02:00/ Iya, ada yang di-load.
1:02:02/ Ada yang di-load lagi?
1:02:04/ Apa yang di-load? / GS-nya
1:02:06dua setengah,
1:02:08hampir tiga.
1:02:10Dari tujuh.
1:02:14Gede juga ya.
1:02:18Oke.
1:02:20S-nya nggak gede kan ya?
1:02:24Oh, ini yang dari content-full ya?
1:02:26Google Analytics.
1:02:28/ Google Analytics, collect itu
1:02:30Google Analytics. / Collect.
1:02:32/ Iya, ini nih. / Itu yang dari
1:02:34content-full ya? / Content-full.
1:02:36/ S-nya ini ya?
1:02:40/ APK.
1:02:46Alright, alright.
1:02:48Apa lagi yang menarik?
1:02:50Yang perlu dibahas.
1:02:52/ Tips-tips. Ini pakai
1:02:56kalau pengen
1:02:58nge-check. Tadi kan
1:03:00kontras warna ya.
1:03:02Color contrast. Sebetulnya
1:03:04di Chrome DevTools,
1:03:06di Chromium DevTools sepatnya
1:03:08itu udah ada kontras checker,
1:03:10tapi ada tapinya.
1:03:12Tapi apa? Masih
1:03:14kurang bagus. Jadi, apa?
1:03:16Dalam satu element
1:03:18yang bawaan DevTools nih. Dalam
1:03:20satu element tuh harus diset color dan
1:03:22background-nya. Dan elementnya
1:03:24nggak boleh punya children. Kayak tadi
1:03:26padahal proteknya tuh
1:03:28kan filling-nya tuh
1:03:30misalnya A.
1:03:32Elementnya A. Belumnya kan ada
1:03:34icon kan. Karena mau saya lihat kita
1:03:36ada icon map. Nah,
1:03:38jadi nggak bisa pakai
1:03:40kontras checker
1:03:42bawaannya DevTools. Coba deh.
1:03:44Nah, di apa?
1:03:46/ Ini ya. / Nah,
1:03:48Inspect Element. / Yang mana?
1:03:50Yang muda? / Iya, itu.
1:03:52Terserah. / Ini.
1:03:54Contras fiturnya gimana? Ini?
1:03:58Bukan, computed.
1:04:00Detect computed.
1:04:02Scroll ke bawah, sampai
1:04:06nemu color, property color.
1:04:08/ Ini? / Color.
1:04:10Diklik.
1:04:12Nah, itu
1:04:14harusnya kalau kita klik warnanya,
1:04:16warna ijo itu.
1:04:18Nah, harusnya
1:04:20kontras rasio-nya ada,
1:04:22tapi no contrast information
1:04:24available. Kenapa? Karena
1:04:26lihat elementnya deh, buka
1:04:28element button-nya di atas.
1:04:30Nah, itu
1:04:32di buka.
1:04:34Nah, kan ada SVG-nya.
1:04:36Sekarang coba SVG-nya
1:04:38ilangin.
1:04:40Hapus aja.
1:04:42Terus klik lagi button.
1:04:44Terus kayak tadi.
1:04:46Color.
1:04:48Ini.
1:04:50Gak bisa diklik. Ini?
1:04:52Bisa, harusnya.
1:04:54Nah, kontras rasio-nya muncul.
1:04:56Agak ribet ya, agak capek kan?
1:04:58Nah, terus yang kasiannya nih,
1:05:00yang sangat disayangkan,
1:05:02itu bug Chromium
1:05:04udah 2 tahunan kali ya?
1:05:062 tahun.
1:05:08Belum dibenerin juga, jadi kalau
1:05:10mungkin temen-temen yang
1:05:12bisa nulis, apa ya, C++
1:05:14atau apalah, bisa kontribusi ke
1:05:16source code Chromium, tolong
1:05:18demi kemaslahatan bersama,
1:05:20coba mungkin bisa nge-fix. Tapi
1:05:22in the meantime, sementara itu, kita
1:05:24bisa pakai ya macem-macem
1:05:26sih extension yang buat
1:05:28check aksesibilitas secara
1:05:30keseluruhan tuh banyak. Cuma yang paling
1:05:32simple dan enak, ini, pakai
1:05:34ini.
1:05:36Which is the color contrast checker.
1:05:38Itu maksudnya,
1:05:40itu dia nge-check-nya dari Domnode
1:05:42dan langsung, apa, langsung
1:05:44kelihatan, terutama kalau kita
1:05:46kerja sama-sama misalnya
1:05:48anak QA atau maksudnya pihak-pihak lain
1:05:50yang bukan developer,
1:05:52nggak usah jalanin macem-macem, udah langsung
1:05:54klik aja extension-nya, langsung
1:05:56kelihatan. Coba deh. Tapi sekarang dari
1:05:58Figma sendiri, kalau dari designer ya
1:06:00dari Figma itu, sudah kelihatan sih
1:06:02color contrast-nya di Figma,
1:06:04ada extension-extension,
1:06:06jadi sebenarnya udah bisa pointy
1:06:08"Ini nggak bener ya" gitu.
1:06:10- Bagus sih kalau pakai Figma.
1:06:12- Kalau sekarang kan
1:06:14jamannya AI,
1:06:16kita bisa screenshot terus
1:06:18minta ke Gemini misalkan gitu.
1:06:20Coba tolong dicek aksesibilitas apa.
1:06:22- Ini akan too much effort ya.
1:06:24- Iya sih.
1:06:26- Iya too much effort. Kalau ini tinggal matiin aja
1:06:28dev tools-nya, coba buka aja extension-nya
1:06:30langsung kelihatan.
1:06:32- Coba install dulu.
1:06:34- Mana ini ya? Oh ini, ilang tuh.
1:06:36Kalau di plus, ilang.
1:06:38Nggak bisa install.
1:06:40- Nggak responsive berarti.
1:06:42- Nggak responsive.
1:06:44Gimana sih?
1:06:46- Chrome Web Store nggak responsive.
1:06:48- Pake Kanari.
1:06:50Chrome Kanari.
1:06:52Udah nih, coba de-close ya.
1:06:56- Coba aja.
1:06:58Coba.
1:07:00Ayo, kelihatan semua extension-nya.
1:07:02Lihat aja.
1:07:04- Ada fake filler.
1:07:06- Buat ngisi form.
1:07:12Gimana sih?
1:07:14Gimana caranya? Klik kanan aja.
1:07:16- Harusnya sih langsung.
1:07:20- Buat ngisi form ini loh, ngisi form ini.
1:07:22Gisi form tuh, ngisi form.
1:07:24Fake filler.
1:07:26Daripada gitu.
1:07:28- Masuk ke extension-nya.
1:07:30Masuk ke extension-nya tadi.
1:07:32Terus dipin.
1:07:34- Oh, dipin dulu.
1:07:36Oh, harus dipin dulu.
1:07:38Nggak bisa langsung dipake gitu.
1:07:40- Iya, itu ya.
1:07:42Diklik.
1:07:44Diklik.
1:07:46- Bentar dulu. Ini kan, diklik.
1:07:48Udah.
1:07:50Udah nih, kentang.
1:07:52Harus refresh kali ya.
1:07:54Refresh kali ya.
1:07:56Refresh.
1:07:58- Matiin lagunya lagi.
1:08:00- Nggak.
1:08:02Ah, baru. Harus refresh dulu.
1:08:04Lagunya nyala terus dari tadi. Cuman udah di-mute.
1:08:06Mute tab.
1:08:08Ini, ini, mute.
1:08:10- Iya, itu langsung kelihatan.
1:08:14- Ini cara bacanya gimana?
1:08:18- Iya, itu.
1:08:20Pokoknya yang XX itu yang salah.
1:08:22Yang salah berarti yang
1:08:24warna ini harus diganti.
1:08:26Sebaiknya diganti gitu.
1:08:28Jangan pakai warna ini gitu ya.
1:08:30Gimana?
1:08:32- Oh, apa?
1:08:34Itu dimerahin
1:08:36yang bermasalah.
1:08:38Di-highlight dimerahin.
1:08:40Jadi kita tinggal screenshot atau tinggal
1:08:42tunjukin.
1:08:44- Oh, yang ini.
1:08:46Yang perlu diganti
1:08:48warna ininya.
1:08:50Kalau kita lihat di sini kan warnanya.
1:08:52- Pokoknya itu
1:08:54kan yang untung adalah
1:08:56nilai kontrasnya harus
1:08:58cukup tinggi biar bisa kelihatan kan.
1:09:00- Coba ganti.
1:09:02Coba ganti.
1:09:04- Atau
1:09:06kalau memungkinkan
1:09:08teksi dibuat lebih terang. Cuma ini
1:09:10teksi kan udah putih. Udah nggak bisa terangin lagi.
1:09:12- Ini text-nya kan
1:09:14ini kan
1:09:16background-nya ganti.
1:09:18Eh, salah.
1:09:20Ganti warna lebih gelap.
1:09:22- Lebih terang misalnya.
1:09:24Atau lebih gelap.
1:09:26Yang penting kontrasnya.
1:09:28- Contohnya kelihatan di bawah.
1:09:30Yang 14 bol itu. Nah.
1:09:32Nah.
1:09:34Tapi belum triple A.
1:09:36Nah. - Nah, triple A.
1:09:38Berarti ini udah aman ya.
1:09:40Tapi nggak geganti ya?
1:09:42Gak geganti.
1:09:44Harus manual ya.
1:09:46Cuma yang jelas
1:09:48kita dengan gampang
1:09:50di sidebar di kiri
1:09:52langsung kelihatan mana.
1:09:54Jadi, yang penting kan, mana aja sih
1:09:56yang kontrasnya kurang.
1:09:58Itu langsung dijabari.
1:10:00Terus
1:10:02kombinasi
1:10:04warna yang bermasalah.
1:10:06Itu apa yang men-trigger.
1:10:08Terus bisa langsung di-highlight.
1:10:10Lebih ke itunya aja sih. Terus
1:10:12simple aja pakainya.
1:10:14Ini pun
1:10:16nggak lulus ya. - Terganggu sekali.
1:10:18- Kekcilannya. Terlalu kecil ya.
1:10:20- Terlalu menutup
1:10:22muka si
1:10:24ceweknya.
1:10:26- Iya. Memang
1:10:28bikin web
1:10:30gallery foto itu
1:10:32sangat triki ya. Karena kan
1:10:34warna-kewarnaan dari
1:10:36image-nya kan nggak bisa kita atur kan.
1:10:38- Iya.
1:10:40Harus di-overlay atau dikasih
1:10:42kotak sedikit.
1:10:44Ya, pokoknya itu harus terang,
1:10:46fotonya gelap, gitu kan.
1:10:48Itu kan tergantung kontennya atau fotonya kan.
1:10:50Iya.
1:10:52Apple aja baru update,
1:10:54langsung itu kan nggak bisa kebaca kan.
1:10:56Lagi heboh.
1:10:58Gara-gara glass.
1:11:00Glass-glass kaca.
1:11:02- Liquid glass.
1:11:04- Liquid glass. Nggak kebaca tuh notifikasinya.
1:11:06Gara-gara ada foto
1:11:08wallpaper yang mungkin agak terang, agak cerah
1:11:10gitu kan. Terus glass-nya juga
1:11:12cerah, nggak kebaca.
1:11:14Iya, iya. Ini
1:11:18tools-nya yang
1:11:20yang mesti banyak kita
1:11:22belajar dari tools-nya ini ya. Sebenarnya
1:11:24udah disediakan. Cuman kadang-kadang kita nggak
1:11:26ada tools seperti ini.
1:11:28- Jadi di atas kan ada tool level.
1:11:30Jadi level-nya itu udah kayak
1:11:32itu aja. Ayam gebrek lah.
1:11:34Ada level pedesnya kan.
1:11:36Jadi kalau A, A itu
1:11:38paling minimum, dan itu kayak
1:11:40dianggap
1:11:42belum masuk conformance, semuanya
1:11:44belum mengikuti aturan WCAG, jadi
1:11:46bahkan nggak masuk ke itu.
1:11:48Kalau AA itu yang kayak standard lah.
1:11:50Jadi minimum acceptable-nya
1:11:52tuh AA. Biasanya kalau
1:11:54aturan-aturan ini tuh, regulasi
1:11:56itu minimal AA. Tapi
1:11:58kalau mau yang maksimal,
1:12:00yang sangat-sangat
1:12:02compliant, itu ada
1:12:04AA. Terus ada itu kayaknya
1:12:06filter buta warna atau apa lah.
1:12:08Gak pernah pake sih. - Oh yang ini ya
1:12:10buat orang yang mungkin
1:12:12buta warna. - Parsial.
1:12:14- Parsial.
1:12:16- Macam-macam variasinya. Dan itu biasa dipake
1:12:18kalau, terutama
1:12:20kalau warna mengkomunikasikan
1:12:22makna. Jadi kayak misalnya kalau aplikasi
1:12:24saham atau keuangan atau apa itu
1:12:26misalnya kan
1:12:28diangkanya
1:12:30ya kalau misalnya naik turun kan ada car.
1:12:32- Kalau bulis itu kan ijo.
1:12:34- Tapi maksudnya diangkanya pun
1:12:36angkanya kan ga beda terus.
1:12:38Kalau dia lagi naik tuh angkanya merah.
1:12:40Jadi merah ijo bisa gonta ganti kan.
1:12:42Sesuai itu kan gantinya cepet ya.
1:12:44Nah itu kalau misalnya
1:12:46ngide pake variasi
1:12:48warna merah dan ijo yang kurang jelas
1:12:50buat orang-orang
1:12:52varian buta warna tertentu itu malah
1:12:54kayak ga kelihatan sama sekali. Jadi
1:12:56maksudnya perlu di tes pake
1:12:58macem-macem variasi itu.
1:13:00- Oke.
1:13:02Ada lagi yang mau
1:13:04dibahas?
1:13:06-
1:13:08YouTube pastikan jangan
1:13:10commit and file.
1:13:12- Oh itu udah tadi, udah ya.
1:13:14Gimana Ivan?
1:13:16- Kita bahas sedikit lagi sebelum
1:13:18kita lanjut.
1:13:20Kalau misalnya
1:13:22ada yang bisa dirobah dengan
1:13:24modern API
1:13:26atau CSS,
1:13:28apa sih yang bisa dirobah dari website ini?
1:13:30- Iya
1:13:32- Coba apa?
1:13:34- Dialog.
1:13:36- Dialog.
1:13:38- Carousel
1:13:40sudah ada.
1:13:42- Carousel.
1:13:44- Carousel.
1:13:46Dialognya sudah ada.
1:13:48- Apa lagi ya?
1:13:50- Lazy load.
1:13:52- Lazy load.
1:13:54- Sudah native juga
1:13:56kan?
1:13:58- Lazy load.
1:14:00- Next.js.
1:14:02- Yang misalnya kita pake Next.js,
1:14:04itu dead picker.
1:14:06- Ya nggak apa-apa.
1:14:08Orang dead pickernya aja nggak dipake.
1:14:10Gak usah pake dead picker.
1:14:12- Gihapus aja udah.
1:14:14- Ya sama web API yang
1:14:20simple sih, yang dari dulu ada, kayak misalnya
1:14:22kiri-kanan gini, ya
1:14:24dikasih aja keyboard
1:14:26di event listener
1:14:28biar bisa navigasi.
1:14:30- Bisa next previous ya.
1:14:32- Itu kan bukan fitur yang modern-modern banget ya.
1:14:34Dari dulu ada.
1:14:36- Oh ini tadi yang pake JavaScript
1:14:38terang gelap-gelap ini.
1:14:40- Oh iya, animasi.
1:14:42- Animasi yang ini.
1:14:44Eh mana tadi?
1:14:46- Ini juga animasi muka ini bisa dibikin.
1:14:48- Oh itu apa?
1:14:50Apa?
1:14:52Scrollable event ya?
1:14:54- Scroll driven animation.
1:14:56- Oh scroll driven animation.
1:14:58Iya, daripada kiri-kanan mendingan ke bawah
1:15:00gitu, di scroll.
1:15:02- Itu mah kan nggak perlu scroll driven animation sih.
1:15:04Kalau yang animasi ya,
1:15:06ini animasi foto sama
1:15:08tanem kanan yang
1:15:10pake keyframe animate
1:15:12biasa aja kan ini.
1:15:14- Tapi ini foto ini juga nggak jalan otomatis,
1:15:16harus di-click ya.
1:15:18Jadi bukan animasi kan ini aja.
1:15:20Iya.
1:15:22- Jadi kita kirain.
1:15:24- Oh iya misalnya.
1:15:26- Beter bikin slide gallery sendiri.
1:15:28- Yang jadi kaktun itu.
1:15:30- Kalau misalnya daripada
1:15:32ini yang galerinya ini,
1:15:34daripada bikin jadi
1:15:36background terus dibikin ada
1:15:38depannya begitu, toh orang nggak bisa menikmati
1:15:40fotonya ya kan.
1:15:42- Itu galerinya kanan.
1:15:44- Itu polos aja, sisanya ya
1:15:46gallery yang bikin gallery foto
1:15:48gitu ya bagus.
1:15:50Itu galerinya dua.
1:15:52- Oh itu yang ini
1:15:54aslinya kalau satu raw begini ya.
1:15:56Ini masih kelihatan.
1:15:58- Iya bagus. Tadi gue bilang, makanya
1:16:00kalau pesennya dikit,
1:16:02kalau pas dia ngetest data, mungkin pesennya masih dikit.
1:16:04Nah pas pesennya udah banyak,
1:16:06udah bingung.
1:16:08- Tapi ini juga rentan
1:16:10ke-click background-nya.
1:16:12- Vertical sih lebih bagus.
1:16:14Eh salah.
1:16:16- Ini pas banget sama
1:16:18tiang ini.
1:16:20Jadi nggak kelihatan.
1:16:22- Dikira dekorasi pasti kan.
1:16:24Dan itu nggak bisa di-slide, nggak bisa di-swipe,
1:16:26nggak bisa di-swipe, dan nggak bisa di-slide,
1:16:28dan nggak bisa di-tap atau arrow.
1:16:30- Kalau fotonya agak gelap
1:16:32gini, oke.
1:16:34Gambarnya oke, ini masih masuk kan.
1:16:36- Itu pun kayak dekorasi kan, maksudnya bisa aja kan.
1:16:38- Iya bener-bener kayak dekorasi.
1:16:40Terus udah gitu di-click,
1:16:42malah masuknya ke foto
1:16:44pop-up.
1:16:46Jadi navigasinya
1:16:48bisa lebih baik lah ya.
1:16:50- Iya.
1:16:52- Nah ini foto yang disini sama-disini sama
1:16:54sebenarnya. - Sama.
1:16:56- Ada juga kan tuh, sama.
1:16:58- Sama itu gallery yang sama,
1:17:00tapi kayak ada dua macam UI.
1:17:02- Iya, iya, iya.
1:17:04- Ya kalau gitu yang kiri mas
1:17:06satu foto statik aja kan.
1:17:08Harusnya foto yang emang ya kayak cover
1:17:10image gitu lah. Jadi maksudnya kontrasnya
1:17:12juga bisa lebih diatur, bisa ditimpap
1:17:14di layer yang
1:17:16gradient, opacity, separo,
1:17:18atau berapa lah.
1:17:20- Oke, ada lagi,
1:17:24ada lagi?
1:17:26- Udah sih.
1:17:28- Sudah cukup?
1:17:30Cukup ya? - Sudah.
1:17:32- Wah, ini kayaknya
1:17:34ada yang ini nih,
1:17:36ada yang masuk lagi, bedasitas baru nih.
1:17:38Nah,
1:17:40buat bedasitas berikutnya ya.
1:17:42Mas Yuda terima,
1:17:44Mas Yudi, Yudi.
1:17:46- Nvnya tolong diumpetin,
1:17:48pastiin Nvnya nggak dulu.
1:17:50- Ini nggak dikasih source code,
1:17:52kayaknya takut.
1:17:54Kasihnya website ya,
1:17:56alamat webnya aja.
1:17:58Oke, kalau ada
1:18:00source code-nya boleh, tapi
1:18:02coba dicek lagi, jangan sampai
1:18:04kayak tadi.
1:18:06Udah gitu iseng lagi mencet, kirain kosong,
1:18:08taunya ada isinya.
1:18:12Oke.
1:18:14Cukup?
1:18:16Oke, cukup sekian.
1:18:18Buat malam ini,
1:18:20terima kasih banyak buat semuanya,
1:18:22terima kasih juga Mas Grafis,
1:18:24yang sudah, apa,
1:18:26untuk berpartisipasi
1:18:28untuk di beda.
1:18:30Mudah-mudahan,
1:18:32dapat banyak pelajaran ya,
1:18:34buat next-nya,
1:18:36untuk bikin-bikin web seperti itu,
1:18:38jadi lebih
1:18:40baik lagi.
1:18:42Oke.
1:18:44Sekian dulu untuk malam ini. Sekali lagi
1:18:46terima kasih buat
1:18:48apa?
1:18:50Sponsor kita, Dominesia.
1:18:52Jangan lupa kalau teman-teman
1:18:54mau bikin website kayak tadi,
1:18:56bisa hosting-nya di Dominesia
1:18:58pakai promo code "Kobrolinwebdn".
1:19:00- Pakai Next.js juga bisa.
1:19:04Pakai Next.js kan bisa.
1:19:06Tapi agak ribet ya.
1:19:08Agak ribet ya, harus di-compile dulu kan.
1:19:10- Kalau statik bisa.
1:19:12Kalau statik sih aman.
1:19:14Tapi kalau yang pakai fungsionalitas
1:19:16server-side ya, gitu agak ribet.
1:19:18Harus pakai apa itu?
1:19:20Yang open source, open next.
1:19:22- Open next.
1:19:24Oke.
1:19:26Sekian dulu dari kita.
1:19:28Minggu depan kita akan bahas tentang
1:19:30database dengan
1:19:32narasumber. Jadi ditunggu aja
1:19:34narasumbernya siapa, kita tunggu aja
1:19:36Minggu depannya.
1:19:38Itu dulu.
1:19:40Apa?
1:19:42Itu lagu apa?
1:19:46- Lagu...
1:19:48Ada lagu sekitar berapa?
1:19:505 tahun lalu atau 6 tahun lalu itu?
1:19:52Oh, all about that place.
1:19:54Ada all about that place,
1:19:56not right place.
1:19:58- Oh, dipleset kan.
1:20:00Oke deh.
1:20:04Sekarang, you cannot unhear that.
1:20:06You cannot unhear that.
1:20:08Kalau lu dengerin,
1:20:10lagu itu pasti gak bisa lagi.
1:20:12- Lagu apa?
1:20:16Lagu apa sih? Apache.
1:20:20Ternyata itu apa?
1:20:22Selama ini gue mikirnya apache.
1:20:24Apache.
1:20:26Kan lagu apache itu?
1:20:32Emang nih ya lagu apache?
1:20:34Apache.
1:20:36Nah itu apache.
1:20:38Nah selama ini gue mikirnya apache.
1:20:40Kira itu
1:20:42perintah ini.
1:20:44Ubuntu.
1:20:46APT.
1:20:48Kira apache server itu loh.
1:20:50Iya apache.
1:20:54Gue malah kiranya awalnya apache helikopter.
1:20:56Beda lagi.
1:21:02[tertawa]
1:21:04Pasti skl server ya Rafki ya?
1:21:10[tertawa]
1:21:12Skl server.
1:21:14Skl server emang sering issue ya?
1:21:16Enggak lah.
1:21:18Skl server bagus kan?
1:21:20Supportnya.
1:21:22Semua skl server sama ya.
1:21:24Asal pintar ngerawatin.
1:21:26Maksudnya ada plus and plus.
1:21:28Tapi harus pintar ngerawat.
1:21:32Yang bikin gelus dada itu adalah
1:21:34kalau misalnya kita
1:21:36punya mutiplikasi.
1:21:38Terus somehow
1:21:40indeksnya gak matching.
1:21:42Itu gak matching ulangnya.
1:21:44Bagus asal ada duitnya.
1:21:46Semua juga gitu.
1:21:48Semua juga gitu.
1:21:50Oke cukup ya.
1:21:52Terima kasih semuanya.
1:21:54Kita ketemu lagi minggu depan.
1:21:56Selamat malam. Selamat istirahat. Bye bye.
1:22:02Atau mungkin telah kesekian kali melihat
1:22:04untuk membandingkan kembali dengan lainnya?
1:22:06Jika Anda mencari tahu mengenai
1:22:08layanan web hosting terbaik, kami
1:22:10pastikan Anda berada di tempat yang tepat.
1:22:12Dengan Domainesia dapatkan pengalaman
1:22:14menggunakan layanan hosting
1:22:16yang lebih baik.
1:22:18Dengan SSD berperforma tinggi dalam
1:22:20infrastruktur cloud yang telah dioptimalkan
1:22:22untuk kebutuhan personal maupun bisnis.
1:22:24Teknologi ini memungkinkan Anda
1:22:26memperoleh layanan yang lebih stabil
1:22:28serta proteksi dari korupsi data.
1:22:30Hosting Domainesia juga
1:22:32telah mendukung Node.js, Python,
1:22:34Ruby, Go, PHP, Java,
1:22:36serta binary Linux.
1:22:38Lebih dari 200.000 pelanggan
1:22:40telah mempercayakan layanan hosting
1:22:42di Domainesia, kepercayaan yang kami
1:22:44jaga dengan garansi uptime 99,9%
1:22:46serta garansi uang kembali 100%.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
21 Jul 2025
Bedah Situs meutia.net - Ngobrolin WEB
🗣️🕸️ Selasa malam waktunya #NgobrolinWEB! Malam ini kita akan membedah situs yang disubmit oleh salah satu penonton ki...
27 Jan 2026
Agentic Coding Tools - Ngobrolin WEB
🗣️🕸️ Selasa malam waktunya #NgobrolinWEB! Malam ini kita akan berbagi bagaimana Eka dan Ivan menggunakan AI Agentic C...
6 Jul 2025
Ngobrolin EcmaScript 2025 - Ngobrolin WEB
Selasa malam waktunya #ngobrolinweb! Malam ini kita akan ngobrolin tentang fitur baru EcmaScript yang baru dirilis tahun...