Ngobrolin Web API Baru - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb ----------------------------------------------------------------------------------- Bergabung menjadi anggota elit di kanal ini: https://www.youtube.com/channel/UCHhAlFGFCGgIusQkQIqJLYw/join Donasi dapat meningkatkan kualitas kanal ini: 💰 https://karyakarsa.com/rizafahmi/tip 💸 https://saw Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.
Ringkasan Episode
Bantu KoreksiEpisode ini membahas berbagai Web API baru yang sedang trending atau akan menjadi tren di tahun 2024. Diskusi dimulai dengan penjelasan tentang apa itu Web API—bukan REST API melainkan API yang disediakan oleh browser seperti Storage API, Performance API, dan Observer API yang berlandaskan pada spesifikasi teknis. Beberapa API yang dibahas meliputi View Transition API yang kini sudah mencapai level 1 (client-side) dan sedang menuju level 2 (server-side), Popover API yang kini telah menjadi baseline dan bisa digunakan tanpa JavaScript murni untuk membuat tooltip atau toast non-modal, serta Web Vitals 4.0 yang menambahkan metrik INP (Interaction to Next Paint) sebagai pengganti First Input Delay. Selain itu, episode juga menyinggung proposal TypeScript type annotations untuk JavaScript yang masih dalam tahap perdebatan (stage 1) dan kontroversial karena berpotensi mengubah cara kerja JavaScript secara drastis. Speculation Rules API juga dibahas sebagai fitur baru yang memungkinkan browser untuk melakukan prefetch dan prerender secara cerdas berdasarkan perilaku pengguna, yang sangat relevan dengan tren kembalinya Multi-Page Application (MPA) dengan adanya server-side rendering. Diskusi diakhiri dengan JSON module import yang kini berstatus stage 3, memungkinkan import file JSON langsung tanpa bundler, serta setHTML API sebagai alternatif innerHTML untuk web components.
Poin-poin Utama
- •View Transition API Level 2 - Memungkinkan transisi antar halaman (MPA) tanpa client-side routing, membuat website multi-page terasa secepat single-page application.
- •Popover API - API native browser untuk elemen pop-up non-modal (tooltip, toast, menu) tanpa perlu library tambahan, sudah masuk baseline 2023 dan didukung semua browser modern.
- •Web Vitals 4.0 - Library terbaru untuk mengukur Core Web Vitals dengan dukungan INP (Interaction to Next Paint) yang menggantikan First Input Delay.
- •Speculation Rules API - API baru untuk mengontrol perilaku prefetch dan prerender berdasarkan prediksi browser, sangat berguna untuk Multi-Page Application.
- •JSON Modules - Memungkinkan import file JSON langsung tanpa bundler atau plugin tambahan, sudah mencapai Stage 3 dan hampir resmi menjadi standar.
- •setHTML API - Pengganti innerHTML untuk custom elements/web components dengan fitur sanitasi bawaan untuk keamanan.
- •Type Annotations Proposal - Usulan kontroversial untuk menambahkan type annotation langsung di JavaScript tanpa transpilasi, masih tahap Stage 1 dan menjadi perdebatan di komunitas.
0:10Halo, halo, halo. Selamat malam.
0:17Selamat malam.
0:19Selamat hari selasa seperti biasa.
0:24Bertemu lagi dengan kita bertiga. Ada Eka, ada Ivan, ada Riza.
0:29Kali ini Eka udah muncul.
0:32Kali ini Eka udah muncul, setahun minggu lalu kabur, menghilang.
0:36Wah, seru banget ya kemarin ya.
0:39Yah, semuanya.
0:42Serius, itu gak ada topik, justru rame.
0:45Pertanyaannya gak habis-habis.
0:47Tapi banyakan curhat ya kita ya.
0:50Banyakan curhat.
0:52Jadi kita nanti mau merancangakan
0:55sesekali tanpa topik, jadi ya
0:59get in touch sama ini aja, sama
1:02temen-temen semua ya.
1:04Temen-temen yang penonton.
1:06Malah lebih seru, biar tau kondisi di lapangan.
1:08Besok lagi dong.
1:10Karena fungsi.
1:12Iya, mustahil besok-besok.
1:14Ya, bikin seri kayak gitu.
1:16Mustahil bikin.
1:18Iya, kita rencananya bikin seri.
1:20Ada diskusi santai, ada fundamental.
1:24Nah, kira-kira malam ini kita bahas apa ya.
1:28Trend ini.
1:30Yang akan ngetrend ya.
1:32Yang sedang ngetrend atau yang akan ngetrend ke depannya gitu ya.
1:36Jadi malam ini kita akan bahas beberapa
Lihat transkrip lengkap
1:39web API, baik itu HTML,
1:42CSS, ataupun JavaScript.
1:45Yang disediakan oleh browser.
1:49Jadi web API ini bukan
1:52REST API ya. Bukan
1:54service.
1:56Kayak Swapie, bukan ya.
1:58Ini API
2:00yang bisa kita gunakan secara
2:02untuk programming.
2:04Ya, bisa buat macam-macam.
2:06Contohnya.
2:08Local storage itu.
2:10Storage API lebih tepatnya.
2:14Storage API,
2:16Performance API,
2:18Observer API,
2:21Ya kan?
2:23Dan lain-lain.
2:25Dan ini sebetulnya,
2:27semua API ini,
2:29bedanya dengan produk lain mungkin ya.
2:31Maksudnya,
2:33fitur-fitur yang khusus browser,
2:35ini beda web API ini kan
2:37berdasarkan standar namanya
2:39spesifikasi. Jadi,
2:41landasannya itu spesifikasi teknis.
2:43Jadi API ini fungsinya blablabla.
2:45Terus,
2:47jadi kayak semacam test case lah.
2:49Kalau
2:51user melakukan ini,
2:53atau kalau misalnya inputnya seperti ini,
2:55maka prosesnya akan seperti ini.
2:57Jadi, itu belum implementasi.
2:59Nggak ada kodingannya sama sekali.
3:01Cuma spesifikasi teknis.
3:03Nah, masing-masing browser,
3:05pertama, bebas
3:07memutuskan untuk mau pakai atau nggak,
3:09mengadopsi atau nggak,
3:11kedua, kodingannya gimana,
3:13implementasi di masing-masing
3:15browser engine, ya bebas
3:17di masing-masing browser. Cuma
3:19harus berlandaskan si spek itu.
3:21Oke, oke. Nah,
3:25kira-kira di 2024 ini,
3:27teman-teman punya
3:29apa ya, punya web API
3:31baru yang udah
3:33dipakai atau yang
3:35menarik, yang kira-kira menarik, nggak
3:37boleh di-share.
3:39Siapa dulu? Eka dulu ya, Eka?
3:43Yang menarik, yang menarik.
3:45Paling banyak catatan.
3:47Nah, yang dibahas duluan malah
3:51bukan yang dicatatan itu.
3:53Sebenarnya paling menarik tetap View Transitions
3:55sih. Nggak, itu kan dari tahun lalu
3:57soalnya. Ini kan
3:59topiknya adalah web API baru.
4:01Nah, kalau View Transitions
4:03itu senangkan pribadi aja
4:05sih dari Defeze tahun lalu.
4:07Topiknya, topik tau gue
4:09bahas itu dan sampai
4:11sekarang udah masuk semua
4:13browser yang level 1. Level
4:151 itu yang client-side.
4:17Nah, cuma kalau yang level 2,
4:19yang server-side lah ya,
4:21antar dokumen, antar link,
4:23tuh sayangnya ya masih belum
4:25terlalu. Tapi udah mulai
4:27ada, ya, udah ada update baru
4:29cuma kalau dari browser lain. Maksudnya
4:31server-side gimana?
4:33Maksudnya antar dokumen.
4:35Antar dokumen, antar
4:37antar path
4:39dalam...
4:41Jadi kalau misalnya
4:43mengunjungi
4:45page yang lain,
4:47dia bisa
4:49nge-transition.
4:51Ya, bisa transition tanpa client-side
4:53JavaScript. Ya, bisa
4:55dikasih. Maksudnya kita define transisinya
4:57seperti apa, tapi tanpa hijack
4:59client-side routing. Nggak usah
5:01pake router client-side.
5:03Itu yang level 2. Cuma
5:05belum semua browser...
5:07Si Chrome-nya sudah bisa?
5:09Chrome bisa. Si Chrome sudah bisa.
5:11Demo, demo, demo.
5:13Belum, besok-besok.
5:15Oke.
5:17Pengen tuh gue liat.
5:19Itu khusus aja
5:21front-end
5:23front-end magic
5:25part 2. Kan kita pernah tuh dulu.
5:27Besok-besok lagi.
5:29Nah, ini yang baru, yang
5:31di topik ini juga front-end magic juga sih.
5:33Popover.
5:35Popover itu sebetulnya
5:37malah implementasinya
5:39bisa dijadikan modal atau toast
5:41atau apapun yang muncul
5:43nongol di layar.
5:45Kan modal itu sudah muncul
5:47duluan kan?
5:49Modal, dialog.
5:51Dialog.
5:53Ini bedanya sama dialog apa?
5:55Beda spesifikasinya. Cuma
5:59nggak tahu sih. Kalau gue liatnya mirip-mirip juga.
6:01Ya, beda peruntukan aja.
6:03Kayaknya buat hal-hal yang lebih kecil
6:05sama kayak
6:07buat apa?
6:09Nanti, ada demo-nya
6:11di bawah.
6:13Ininya dulu tentang si API-nya dulu.
6:15Ini tuh sebenarnya
6:17kalau yang di Chrome Only, udah dari
6:192 tahun yang lalu sih.
6:212 atau 3 tahun lalu punya kontennya
6:23Mas Adam Erjel sama
6:25Mbak Una, itu
6:27bahas ini udah lama banget.
6:29Cuma yang bikin menarik
6:31sekarang tuh udah baseline.
6:33Sudah diadopsi oleh
6:35versi stabil semua
6:37browser, 2 versi terakhir.
6:39Ini berarti udah aman untuk digunakan ya?
6:45Ya, tetep-tetep
6:47tergantung user base kita sih.
6:49Aman atau enggak,
6:51kan tergantung actual user kita.
6:53Cuma ya, apa?
6:55User generic pada
6:57umumnya, udah lumayan lah.
6:59Maksudnya, udah cukup tinggi lah.
7:012 versi terakhir.
7:032 versi stabil terakhir.
7:05Koncept popover
7:13versus model
7:15versus dialog, segala macem tuh
7:17penjelasannya itu tuh.
7:19Cuma sebetulnya
7:21ngerti nggak ngerti juga sih.
7:23Popover is being shown,
7:25the rest of the page is
7:27non-interactive.
7:29Kita nggak bisa interaksi di
7:31elemen lain,
7:33autofocus, apa fokusnya
7:35dikunci ke dalam situ,
7:37itu model.
7:39Kalau non-modal, oh gitu,
7:41baru ngerti sekarang malah bedanya.
7:43Kalau model, itu pop-up
7:45yang kita dipaksa dikunci, fokusnya
7:47di situ harus berinteraksi dulu.
7:49Jadi contohnya kayak
7:51cookie consent atau apalah,
7:53kan kita nggak boleh lanjut,
7:55sampai kita nyelsain itu,
7:57menutup itu.
7:59Kalau non-modal, itu
8:01pop-up juga muncul
8:03di atas layar, tapi
8:05kita cuekin boleh, kita bisa berinteraksi
8:07dengan sisa isi halaman.
8:09Nah kalau popover API
8:11ini non-modal,
8:13ya jadi itu kayak
8:15toast atau apalah, tooltip,
8:17atau semacamnya, tau kan misalnya
8:19apa, ada
8:21fitur baru, terus sering liat kan
8:23kita icon I gitu,
8:25terus kita click atau hover di situ,
8:27suka muncul penjelasannya.
8:29Itu bukan hal yang kritikal yang harus
8:31memaksa user nyelesain interaksi
8:33di situ, baru lanjut ke tempat lain kan,
8:35itu kayak opsional aja.
8:37Oke,
8:39iya iya iya, itu bedanya.
8:41Nah ini kan sebenarnya
8:43penggunaan apa, ini
8:45pattern UI yang umum banget ya,
8:47selama puluhan,
8:49belasan tahun tuh, kita kayak
8:51harus pakai, ya kalau iseng,
8:53kalau kelebihan waktu dan tenaga bisa
8:55bikin sendiri, atau yang lebih
8:57realistis, kita harus cari-cari
8:59apa, library
9:01atau package yang diinstall biar bisa
9:03bikin fitur ini, terus
9:05mengganggu performance juga kan.
9:07Bikin gini pakai
9:09apa ya namanya, swiper,
9:11eh bukan swiper apa namanya,
9:13library JS yang untuk
9:15bikin popover-poover gini.
9:17Popster ya,
9:19popster ada juga ya.
9:21Toaster.
9:23Toaster?
9:25Popas
9:27apa ya?
9:29Itu mah di UI
9:31Component Library apapun, ada sih.
9:33Gua lupa dulu ada yang
9:37sering gua pake dulu tuh, apa namanya.
9:39Nah, PTU ya,
9:41ini demo-nya demo
9:43khas developer banget deh, secara
9:45estetis tuh,
9:47kurang. Kurang,
9:49cuma maksudnya,
9:51terus apa
9:53sense of estetiknya ya, begitulah.
9:55Cuma maksudnya apa, kan yang penting bisa
9:57bisa nunjukin bahwa
9:59itu bisa, ini bisa
10:01dipencet berkali-kali, coba generate
10:03success toast lagi deh.
10:05Generate fail.
10:07Generate fail toast.
10:09Nah, kan. Oh, yang ini
10:11maksudnya.
10:13Ya, boleh dipake buat itu,
10:15boleh dipake buat misalnya itu tadi
10:17information tooltip atau
10:19apapun lah, yang pop-up,
10:21yang non-model,
10:23yang itu tadi enggak, enggak
10:25ngunci fokus, enggak menghalangi interaksi
10:27tempat lain.
10:29Usap menu.
10:31Wih, jaman kapan
10:33banget ini, jamannya,
10:35inget gak? Jamannya DHTML.
10:37Dynamic HTML, DHTML.
10:39Itu apa sih? Dulu tuh pernah baca,
10:43cuma nggak ngerti sama sekali, terus mikir, ah udah,
10:45apakah tuh gini-gininya, DHTML ya?
10:47Iya,
10:49basically.
10:51Iya, maksudnya itu, apa sih ya?
10:53Iya, HTML kan
10:55ada transisi kan, transisi
10:57antara halaman
10:59web, menuju ke
11:01web application kan,
11:03aplikasi web. Nah, di tengah-tengah itu
11:05kan ada orang yang punya
11:07kreativitas untuk bikin hal-hal
11:09yang tadinya halaman web, tapi
11:11udah mulai dinamis, kayak tampilin
11:13menu, ada apa,
11:15yang kayak hamburger menu diklik ke
11:17kanan, pokoknya yang interaktif,
11:19tapi jaman dulu kan masih
11:21belum terlalu banyak hal-hal yang
11:23seperti itu, karena JavaScript tidak digunakan
11:25untuk itu.
11:27Itu sih ya, apa masih ada website-nya?
11:29Itu
11:31bahasa tersendiri,
11:33atau gimana? Enggak,
11:35cuma HTML ketambahin animasi,
11:37itu artinya dynamic HTML. Iya, gitu aja
11:39sebenarnya. Oh, gitu doang.
11:41Oh, tapi itu JavaScript, bahasa
11:43client-site-nya.
11:45Bisa jadi CSS?
11:47Bisa jadi.
11:49Nah, ini coba
11:51kalau demo
11:53demo pop-over
11:55yang enak di mata,
11:57coba deh. Kalo buatannya Mas,
11:59Adam Erjel itu biasanya bagus.
12:01Oh,
12:03oh iya, kalau dia mah
12:05jago CSS, pasti bagus.
12:07Kita coba ya.
12:09Oh,
12:11Twitter?
12:13Ada link-nya,
12:15link CodePen-nya. Oh, ada link-nya.
12:17Tadi nge-search doang sih.
12:19Random.
12:21Oh,
12:23connection,
12:25connection,
12:27ini ya,
12:29minimal pop-over demo
12:31animated if supported.
12:33Oh, animated if supported.
12:35Ya, karena itu kan,
12:37itu biasa. Maksudnya HTML
12:39CSS biasa.
12:41Mau dianimasi ya, animasi CSS.
12:43Progressive ya.
12:45Progressive enhancement.
12:47Enhancement. Oh, ini
12:49tip,
12:51gitu doang. Cek, gitu doang.
12:53Ini bikinnya banyak lho,
12:55opacity. Nggak, itu kan
12:57buat animasinya.
12:59Fade in, fade out. Oh, ininya
13:01tag-nya pop-over
13:03target ya, pop-over target.
13:05Target sama dengan MyToolTip.
13:07MyToolTip.
13:09Dia bakal cari elemen HTML
13:11apapun yang ID-nya
13:13sesuai. MyToolTip. Coba tulis yang
13:15kanyang deh.
13:17Isi tip-nya diganti Lorem Ipsum
13:19Doloresit Amet, gitu. Yang bawah.
13:21Yang bawah?
13:23Oh, isi tip-nya yang bawah.
13:25Loh, kok ilang?
13:27Render.
13:29Render ulang.
13:31Tip-tip-tip punyi
13:33hujan, punyi hujan.
13:35Punyi hujan.
13:37Oke,
13:39finish. Oh, masih lagi.
13:41Udah.
13:43Oh.
13:45Nah, kan emang segitu.
13:47Tapi ini ya, apa namanya?
13:49Habis itu,
13:51bentuknya diatur
13:53sama si
13:55CSS. Ya, CSS. Terserah
13:57diaturnya gimana kan.
13:59Oh, JavaScript-nya bahkan nggak ada sama sekali ya.
14:01Ini pure HTML
14:03dan CSS-nya.
14:05Kecuali mungkin kalau yang
14:07kayak tadi itu toast yang bisa
14:09apa, positioning-nya
14:11tadi
14:13sesuai jumlah toast-nya.
14:15Ya nggak tahu pokoknya kalau mau di-enhance
14:17pakai
14:19JavaScript, mungkin bisa. Tapi yang nggak
14:21perlu, nggak harus.
14:23Iya, ini minimal banget sih demo-nya.
14:25Orang judulnya aja
14:27minimal demo.
14:31Oke, ini
14:33basically udah support banget ya.
14:35Udah kan baseline tadi
14:37udah masuk baseline. Udah bisa
14:39dipakai.
14:41Dari 2023 udah bisa ya?
14:43Baseline dari 2023?
14:45Udah 2024 itu?
14:47Nggak, masuk baseline-nya
14:49April kemarin, bulan lalu.
14:51Tapi kan masuk baseline itu
14:53kalau sudah, apa, dua
14:55versi stabil terakhir. Semua
14:57browser major.
14:59Browser, hmm.
15:01Nah, berarti
15:03kan sebenarnya udah dari tahun lalu itu.
15:05Cuma baru April kemarin.
15:07Opera Android aja udah bisa nih.
15:09Opera Android ini, Opera Mini bukan? Beda ya?
15:11Bukan, kayaknya bukan deh.
15:13Opera Mini tuh nggak pakai browser
15:15engine, apa? Nggak pakai rendering
15:17engine yang mainstream,
15:19yang masuk akal tuh nggak masuk akal.
15:21Sama sekali itu, Opera Mini.
15:23Mereka punya bahasa sendiri.
15:25O-B-M-L.
15:27O-B-R-A-B-R-O-S-E-R.
15:29Itu nggak enak banget itu.
15:31Nggak bisa sih.
15:33Bisa, biar cepat mereka bikin
15:37SSR sendiri.
15:39Kita ngomongin di HTML kan,
15:41ini ada ini-nya
15:43ternyata. Ada pengertiannya.
15:45Dynamic HTML.
15:49Ini style animasinya
15:51aja retro.
15:53Collection of technologies
15:55used together to create interactive
15:57and animated website using a combination
15:59of static markup language,
16:01client side scripting, and presentation
16:03definition language such CSS and DOM.
16:05Jadi sebenarnya ya
16:07HTML yang sekarang.
16:09Ya semua UI work sekarang kayak gitu kan?
16:11Iya.
16:13Cuma dulu kan belum.
16:15Jadi ini menarik juga kita bahas
16:17untuk ini ya, untuk
16:19apa? Sesi
16:21khusus nostalgia ya.
16:23D-H-T-M-L.
16:25Kita balik lagi.
16:29Nggak nyambung sih. Cuma jadi kepikiran
16:31mungkin sekian 10 tahun dari
16:33sekarang AI atau machine learning
16:35pun udah nggak ada term-nya
16:37tersendiri. Jangan-jangan.
16:39Karena udah kayak dianggap wajar
16:41semua produk digital, semua software
16:43mungkin udah
16:45pakai unsur AI
16:47atau machine learning. Jadi
16:49jangan-jangan udah nggak ada term-nya lagi.
16:51D-H-T-M-L. Karena
16:53ekspektasi standarnya kayak gitu.
16:55Sama kayak PWA juga.
16:57PWA juga udah kurang
16:59terdengar kan?
17:01Karena semua udah.
17:03Sudah melakukan praktek-praktek itu.
17:05Ngomong-ngomong PWA nih
17:09PWA sama
17:11ini bukan web API sih. Sebenarnya fitur
17:13ya fitur web baru.
17:15Ini juga belum lama nih
17:17sekitar bulan lalu. Chrome
17:19bikin
17:21website
17:23yang nggak memenuhi
17:25heuristik, apa kriteria PWA
17:27sekarang juga bisa di-install.
17:29Seru ya?
17:31Bentar cari
17:33beritanya. Ya sambil lanjut aja bahas
17:35yang lain.
17:37Kalau dari
17:39Ivan, ini ada
17:41API apa? Web
17:43Vitals ya. Web Vitals.
17:45Kalau saya bukan
17:47khusus yang web
17:49API tetapi
17:51mau
17:53waru-waru aja. Ini Web Vitals
17:554.0
17:57library-nya ya. Library Web Vitals
17:59ini bukan yang buat di web API.
18:01Tapi library untuk Web Vitals JS
18:03mau
18:05release soon. Release
18:07candidate ya.
18:09Sebelumnya kan
18:11versi 3.5. Ini
18:13library Web Vitals
18:15yang sebenarnya
18:17zoom in. Zoom
18:19in lho.
18:21Sebenarnya Web
18:23Vitals ini adalah
18:25wrapper untuk
18:27dari performance API
18:31dari web performance API
18:33untuk mempermudah kita melihat
18:35OK CLS-nya berapa, INP-nya
18:37berapa, LCP-nya berapa
18:39TTFB. Nggak semua itu.
18:41Ini kan core Web Vitals nih yang dia
18:43bikin. Web Vitals yang lain
18:45ada. Kayak
18:47FCP-nya. Apapun yang kalian
18:49lihat di Lighthouse
18:51itu menggunakan ini
18:53yang sama gitu. Script
18:55yang sama. Underlying
18:57level of-nya itu ya?
18:59Under the hood dia pakai ini.
19:01Lighthouse itu kayak front-end-nya aja.
19:03Iya.
19:05Untuk collect datanya. Jadi
19:07kalau kalian mau collect data saya pakai ini
19:09untuk collect data
19:11saya sendiri. Dan yang
19:13langsung saya push
19:15ke Google Analytic.
19:17Nanti saya proses sendiri dari
19:19Google Analytic. Saya proses
19:21ke BigQuery. Terus nanti
19:23bisa lihat. Nggak ush sih. Nggak sampai
19:25BigQuery, BigQuery-an. Saya pakai Google Analytic
19:27reporting. Sudah bisa
19:29lihat. Oh CLS-nya berapa,
19:31INP-nya berapa, LCP-nya berapa
19:33persatuan waktu
19:35yang saya mau kerjakan.
19:39Iya. Dia kan
19:41releasing 4.0
19:43which is major update.
19:45Apa yang ditambahkan yang pastinya
19:47INP?
19:49Kan INP yang baru itu
19:51Vital yang baru yang
19:53tidak disahkan
19:55sebagai pengganti
19:57total... Sudah.
19:59Sebagai pengganti total
20:01blocking time.
20:03Atau
20:05first input delay.
20:07First input delay atau total blocking time
20:09nanti diganti jadi namanya
20:11interaction to next pane.
20:13Update dari Web Vital Library ini
20:17sudah bisa menghitung
20:19INP.
20:21INP itu lab. Berarti lab ya?
20:25Bukan user.
20:27Nggak harus nunggu interaksi user.
20:29Interaction to next pane.
20:35Dua-duanya ya.
20:37During page load, dia bisa
20:41menghitung INP-nya berapa.
20:43Kalau kita scroll,
20:45interaction to next pane cycle-nya,
20:47dia bisa lagi menghitung berapa.
20:49Sama kayak CLS.
20:51Kalau CLS itu selama
20:53page-nya hidup, CLS-nya tetap dihitung
20:55nanti yang maksimalnya kita tidak tahu.
20:57INP sama juga seperti itu.
20:59Seminggu lagi kata
21:03mas Barry Pollard
21:05kira-kira kalau nggak ada feedback
21:07yang major akan
21:09jadi resmi
21:114.0
21:13nanti semua ini update
21:15ke page.
21:17Page Web Dev ke update.
21:19Terus kemudian Lighthouse
21:23yang di Chrome juga ke update.
21:25Wah, menarik.
21:29Ini berarti
21:31raper
21:33dari
21:35web performance API ya?
21:37Kalau mau hitung sendiri dari performance
21:41API bisa. Low level-nya berarti
21:43performance API ini ya.
21:45Salah satunya yang digunakan
21:47Node.js walaupun yang tadi
21:49yang di web lighthouse itu buat
21:51browser kan ya?
21:53Iya. Betul.
21:55Node.js pakai juga? Wah, seru ya.
21:57Node.js
21:59bikin juga.
22:01Tapi pakai
22:03API yang sama, maksudnya underlying
22:05API-nya, dia sebenarnya pakai
22:07library yang sama?
22:09Mungkin bukan library, tapi
22:11mungkin pakai
22:13lebih tepatnya pakai
22:15spek yang sama.
22:17Ya, spesifikasi yang sama.
22:19Tapi kan
22:21Node.js itu kan V8
22:23nggak ngaruh ya?
22:25Ya, tetap pakai spek yang sama.
22:27Beda, V8 kan runtime.
22:29Bukan? Iya runtime, mesinnya
22:31mesinnya, ya engine-nya.
22:33Ini pakai performance.
22:35ini bukan beda.
22:37Itu sudah lama ada performance
22:39total, cuman apa yang
22:41diukur mungkin
22:43beda. Coba kita lihat
22:45perbedaannya.
22:47Performance.measure
22:51performance observer
22:53Ini sama nggak?
22:55Performance observer ada juga di web
22:57API. Apa saya kembali-kembali
22:59sekarang ya? Sebelumnya mungkin ini
23:01nggak ada, tetapi di web ada.
23:03Performance.now itu
23:05ya performance
23:09maksudnya performance.now itu sebelum
23:11di web udah ada lama.
23:13Cuma yang saya belum tahu
23:15di Node ada? Mungkin
23:17nggak ada sebenarnya. Mungkin.
23:19Jadi kalau pun sebelumnya nggak ada
23:21ya orang apa, maintainernya
23:23Node kan tim yang Node
23:25ngeliat, oh iya ternyata itu
23:27relevan dan berguna buat diadopsi ke
23:29Node JS. Bagus lah. Maksudnya kan jadi makin
23:31streamline ya. Kayak dulu tuh
23:33ingat banget, bingung banget kenapa
23:35fetch bisa di browser,
23:37tapi kalau di server nggak ada fetch.
23:39Harus install Node fetch atau
23:41semacamnya. Ini kan kasusnya mirip
23:43kan? Cuma di bidang
23:45measure mengukur
23:47performance. Cara pakai
23:49sama persis loh ini. Nggak ada beda
23:51sih ya. Berarti speknya sama.
23:53Saya curiganya Node JS
23:55sekarang-sekarang ini memang
23:57sedang mendekatkan diri dengan web
23:59standar ya. Fetch udah
24:01diinclude. Kemudian
24:03web socket
24:05mulai mau diinclude.
24:07Nggak tahu udah apa belum. Beberapa
24:09IPA-IPA yang standarnya
24:11web juga diadaptasi
24:13juga ke Node JS.
24:15Kalau gitu
24:17bagus lah. Jadi bisa diukur juga
24:19dengan, berarti JavaScript
24:21yang sama bisa dipakai di
24:23masih syntax yang sama
24:25bisa dipakai di server.
24:27Walaupun pengukurannya
24:29mungkin
24:31berbeda ya. Dimensinya
24:33berbeda ya. Iya yang diukur
24:35lain. Beda alam.
24:37Beda alam.
24:39Beda alam tapi syntaxnya sama.
24:41Oke.
24:43Next, apa lagi
24:45nih? Kalau dari saya tadi
24:47web performance API. Nah, ada yang
24:49menarik lagi nih. Ini nggak tahu ya. Tapi ini
24:51belum jadi API. Ini baru proposal.
24:53Proposal. Nah, kita dulu pernah ya
24:55di episode entah berapa.
24:57Kita bahas proses dari
24:59pertama mengajukan proposal sampai
25:01di apa? Adopsi jadi
25:03standar ya. Entah episode
25:05berapa. Cari sendiri. Nah, ini
25:07berarti statusnya masih stage
25:09one ya. Stage 1.
25:11Iya, masih stage 1. Jadi
25:13ceritanya
25:15JavaScript ingin menambahkan
25:17type annotation atau
25:19Wow. Ini pasti
25:21bahan perdebatan
25:23banget nih.
25:25Di tiber atau di apa? Hacker news.
25:27Orang pasti pada... Waduh waduh waduh. Bisa jadi
25:29kontroversi.
25:31Tujuannya adalah
25:33Oh, biar
25:35kalau misalnya apa?
25:37Gak perlu transpilasi.
25:39Type bisa langsung jalan
25:41di browser ya.
25:43Oh.
25:45Ini juga sekaligus
25:47apa ya, sekaligus
25:49membuat Node.js
25:51kembali berkembang. Karena kan
25:53yang membuat orang
25:55berapa ya, contohnya
25:57saya kemarin pengen pakai TypeScript
25:59tapi males pakai TypeScript compiler
26:01karena agak lambat.
26:03Jadi saya memilih pakai antara Deno atau Boon
26:05karena by default mereka udah bisa
26:07transpilasi, udah bisa kompilasi ke
26:09TypeScript, gak perlu pakai
26:11transpilasi kan.
26:13Kalau ini udah di-approved, kemungkinan besar Node.js
26:15juga kena efeknya
26:17dan mungkin bisa jadi native
26:19TypeScript bisa jadi native, gak perlu
26:21ada transpilasi lagi, transpiral
26:23lagi.
26:25Oh, tapi paragraf satu itu menarik ya
26:27yang atas.
26:29Kalimat kedua nya
26:31"To be checked by a type
26:33checker that is external
26:35to JavaScript." Jadi maksudnya
26:37JavaScriptnya
26:39sendiri gak dipaksa untuk jadi opinionated
26:41mengadopsi
26:43TypeScript atau Flow.
26:45Maksudnya behavior type checkingnya
26:47gak perlu punya opinion
26:49tentang itu, yaudah kalau runtime
26:51di-check-in aja, dianggap
26:53comment. Cuma berarti kan
26:55kalau misalnya
26:57berarti kita harus semacam
26:59mendefinisikan type checker external
27:01pas lagi mau
27:03jalanin type checkingnya.
27:07Semacam jazz doc atau semacam Flow
27:09kali ya, bukan bahasa
27:11super script seperti
27:13TypeScript kan.
27:15Kita lihat lagi contohnya nih.
27:17Coba kalau gue mengerti maksudnya
27:19misalnya variable itu
27:21didefinisikan type-nya
27:23integer, berarti dia gak ini ya
27:25sebenernya gak peduli ya.
27:27Cuma bisa
27:29menerima warning aja
27:31kayaknya. Gak error, maksudnya itu
27:33gak dianggap sebagai syntax error.
27:35Syntax error, hanya warning.
27:37Kalau sekarang
27:39syntax error ya.
27:41Kalau sekarang.
27:43Berarti
27:45di-ignore.
27:47Ya.
27:49Kalau pakai jazz doc kan kayak gini kan.
27:51Kayak yang pertama ini kan.
27:53Kalau proposalnya diterima
27:55nanti akan jadi seperti ini.
27:57Tetapi
28:01misalnya pun
28:03calon time salah, P1nya salah.
28:05Jika calon time. Gak masalah.
28:07Seperti sekarang ya.
28:09Ini hanya untuk
28:11warning pada saat
28:13development aja.
28:15Alias gak berisik
28:19kayak compiler, kayak transportnya
28:21TypeScript itu.
28:23Oh TypeScript keren.
28:25Ya, TypeScript calon time.
28:27Ininya compilernya
28:29berisik tuh kalau salah.
28:31Kalau kita pengen dugaan gue kan
28:33maksudnya masing-masing developer terserah
28:35mau install, mau
28:37tools itu kalau di-register.
28:39Pakai string, pakai apa gitu.
28:41Atau mau yang loose, gitu kan bisa ya.
28:43Bebas ya.
28:45Oke, oke.
28:47Ada lagi, nextnya, nextnya.
28:49Ya, terus ke bawahnya.
28:51Coba lihat. Ke bawahnya.
28:53Ke bawahnya, ya maksudnya apa.
28:55Proposalnya. Proposalnya.
28:57Sama pakai titik 2 ya.
28:59Menirip-mirip TypeScript, ya berarti.
29:01Klete standard deh.
29:03Lanjut.
29:07Oh, ini yang nanti
29:09yang agak susah banget ini.
29:11Iya, tapi jadi susah banget, Tar.
29:15Itu kan ada titik 2.
29:17Di-kira objek ya?
29:19Iya.
29:21Di-kira objek ya?
29:23Bisa di-kira objek, bisa di-kira
29:25kondisional.
29:27Kan tanda tanya, bla, bla, bla,
29:29titik 2, gitu kan.
29:31Oh, ya.
29:33Classes is
29:35binary.
29:37Iya.
29:39Ah, itu urusannya
29:41si programmer browser lah yang mikirin itu.
29:43Iya. Kan dibayar sama Google,
29:45sama apa, sama Apple,
29:47sama Firefox.
29:49Belum tentu juga diterima ini, proposalnya.
29:51Ini cukup kontroversi sih.
29:53Pasti akan ada produk-produk.
29:55Sama pihak browser.
29:57Karena malu se-implementnya.
29:59Minta tolong
30:01aja sama Microsoft.
30:03Nanti yang duluan,
30:05itu Microsoft Edge yang duluan.
30:07Karena kan TypeScript dikembangkan di Microsoft, kan.
30:09Sisa satu entiti.
30:11No, tadi
30:15pas di jalan
30:17juga sempat dengar podcast, kan.
30:19Kenapa TypeScript itu
30:21jarang ada tools
30:23yang kayak misalkan type checking only.
30:25Terus ternyata, kata,
30:27enggak tahu ya ini benar atau enggak ya.
30:29Bisa di-check kebenarannya atau
30:31kalau salah tolong dikoreksi.
30:33Katanya TypeScript itu tidak
30:35open untuk spesifikasinya
30:37itu secara bahasa enggak ada.
30:39Enggak di-open mungkin sama Microsoft.
30:41Oh gitu.
30:43Iya. Jadi tools-tools seperti
30:45Biome yang, apa,
30:47yang baru kayak Linter, gitu.
30:49Dia mau ngecek TypeScript, itu
30:51terus itu, menebak-nebak
30:53sendiri.
30:55Jadi enggak ada
30:57spesifikasinya seperti JavaScript.
30:59Kalau kita mau bikin
31:01parser untuk JavaScript, kan, udah ada spesifikasinya, kan.
31:03Kita mau bikin engine untuk JavaScript.
31:05Ya, kita tinggal mengikutin aja.
31:07Ya, kalau TypeScript enggak ada.
31:09Berarti emang semi, apa ya?
31:13Semi tertutup lah, ya.
31:15Semi closed source, ya. Semi tertutup.
31:19Bukan tertutup kodeonya, tapi
31:21cara kerjanya.
31:23Apa prinsip kerjanya?
31:25Harus melihat source code-nya, kan,
31:27bukan spesifikasinya.
31:29Ya, begitulah.
31:31Nah, scroll ke
31:33yang menarik ke bawah, FAQ-nya
31:35tuh. Kalau misalnya, kalau yang
31:37kodingan ini sih, ya udahlah, kayak gitu
31:39intinya, paham lah.
31:41Ada FAQ-nya. Benar.
31:43Di bawah? Di bawah lagi? Di bawah lagi.
31:45Assertion, Generics,
31:47ada Generics juga.
31:49TipeScript lah. Ini intinya
31:51TypeScript semua sih.
31:53Ada disk-nya, apa?
31:55Intinya TypeScript.
31:57JSX-nya omitted.
31:59Ada yang up for debate.
32:01Itu juga menarik. Ambient file, apa?
32:03DTS.
32:05Function overload.
32:07Class info.
32:09Kayaknya
32:11surem deh. Kaga lolos kayaknya.
32:13Cuma, ya udah.
32:15Cuma, ini...
32:17Eh, dari kapan?
32:19Lanjut, lanjut, lanjut.
32:21Oh, 3 tahun yang lalu.
32:23Udah 3 tahun ya.
32:25Ini opsiional.
32:29Jadi argumen. Maksudnya argumennya
32:31proposal ini.
32:33Ada kebutuhan dari Ecosystem
32:35ini solusinya
32:37tanpa mengharuskan semua
32:39developer untuk
32:41package type checking.
32:43Blablabla.
32:45Terus, yang paragraf 3
32:47itu menarik. Apa?
32:49Bukan perkara JavaScript
32:51harus punya type. Atau nggak sih?
32:53Cuma, apa? Kalo mau pake type,
32:55gimana caranya? Gimana cara
32:57apa? Bekerja
32:59JavaScript bisa bekerja dengan
33:01type.
33:03Oke.
33:05Seru ya.
33:07Maksudnya, ini argumen dari
33:09sudut pandangnya si proposal ini.
33:11Terus, kenapa nggak
33:13bikin type system sekalian
33:15di TC39?
33:17Di apa?
33:19Badan yang membuat
33:21ECMAScript.
33:23Blablabla.
33:25Ini, ini.
33:27Wireless Goal Around Web Compatibility.
33:29Don't Break The Web.
33:31Jadi, secara implicit,
33:33ini kayaknya
33:35kita dikasih tau nggak akan
33:37JavaScript nggak bakal
33:39bisa berubah so drastis itu ya.
33:41Entah itu perkara type, atau apapun
33:43ke depannya, nggak bakal bisa
33:45ada perubahan drastis. Karena
33:47nanti nggak backwards compatible kan.
33:49Yes.
33:51Kenapa nggak bikin dua rantai aja di Game Browser ya?
33:53Bener lah.
33:55Nggak jadi bentrop.
33:57Nggak bisa.
33:59Sama-sama
34:01ngamodify dong.
34:03Jadi ngaco.
34:05Atau yang 171?
34:07Iya.
34:09Butuh jQuery 2 sama jQuery 3
34:11nanti.
34:13Nanti ada yang bikin
34:15toolsnya.
34:17Dua-duanya panggil jQuery.
34:19All hail jQuery.
34:21Oke, oke.
34:25Lanjut, lanjut, lanjut. Kita lanjut.
34:27Ke mana lagi nih?
34:29Apa ya yang menarik ya?
34:31Specification itu tuh.
34:33Sorry, apa?
34:35Speculation.
34:37Speculation rules API.
34:39Speculation rules. Nah, ini juga baru nih.
34:41Menarik nih.
34:43Wah, ini baru banget ya.
34:45Fresh from the oven.
34:47Ini ada videonya juga ya?
34:51Nggak jeselin.
34:53Iya.
34:55Pernah kita undang ke sini ya kan?
34:57Bukan jengkelin ya.
34:59Jengkelin.
35:01Mau diundang jengkelin?
35:03TV show jaman kapan.
35:05Nah, intinya
35:07ini untuk mengkustomize
35:09behavior pre-render atau
35:11prefetch. Kan dulu kita semua ditaruh
35:13link tag tuh.
35:15Terus ada yang
35:17obsolete ya. Pre-render kayaknya
35:19terus agak bingung
35:21behaviornya antar
35:23satu path dan lainnya.
35:25Nah, ini dibikin kayak
35:27satu block untuk mengatur
35:29behavior
35:31pre-fetch atau
35:33pre-render yang kita mau dan
35:35semacam prioritas.
35:37Ini kayak
35:39si browser bisa
35:41diberikan power
35:43untuk
35:45nge-prediksi.
35:47Meng-speculate apakah
35:49link itu akan
35:51di-click atau nggak?
35:53Di-click atau nggak.
35:55Perlu di-pre-fetch atau nggak?
35:57Di-pre-fetch atau tidak.
35:59Jadi browser yang akan menghitung
36:01opportunity itu
36:03probability itu
36:05berdasarkan history
36:07yang ada di browser
36:09kalian sendiri.
36:11Jadi nggak ada hubungannya
36:13sama tepati. Jadi berdasarkan
36:15kita
36:17punya behavior sendiri.
36:19Berarti ini kayak
36:21apa ya?
36:23Kayak recommendation system ya?
36:25Ini pakai AI yang ada
36:27di filmnya nih.
36:29Lebih tepatnya seperti
36:31Guest.js pernah dengar nggak?
36:33Guest.js.
36:35Itu buatannya Google juga
36:37itu dulu. Guest.js
36:39bukan, bukan pakai S, pakai S.
36:41S-nya menebar-menebar.
36:43Iya, iya, iya. Salah, salah, salah.
36:45Ini
36:47salah satu level yang pernah
36:49saya mau
36:51coba
36:53untuk client project, tapi
36:55nggak berhasil saya.
36:57Bukan berhasil saya.
36:59Karena harus
37:01koneksi, iya harus
37:03koneksi ke itu, harus koneksi ke
37:05Google Analytics.
37:07Jadi
37:09data Google Analytics kita, kita kasih
37:11masukin ke
37:13koneksi ke
37:15ke
37:17library ini, nanti
37:19dia koneksi
37:21langsung.
37:23Ribet lah
37:25setupnya.
37:27Oh, udah ada buat Next.js juga sebenarnya ya.
37:29Hmm, hmm.
37:31Oh, oke.
37:33Dan ini kan, contohnya
37:35semua...
37:37Lanjut, lanjut, lanjut.
37:39Iya, itu kan contohnya semua kan
37:41rata-rata kan sudah pakai Webpack, atau GSP
37:43segala sebagainya. Kan saya kan static side ya,
37:45pakai WordPress dan setupnya jadi
37:47ribet. Karena
37:49bukan, bukan kayak
37:51prefetching yang seperti SPI gitu kan.
37:53Jadi
37:55sebenarnya saya pakai yang static gini
37:57gitu, dan dibelakangnya itu nggak pakai
37:59Node. Jadinya ribet.
38:01Setupnya.
38:03Gak ada.
38:05Iya.
38:07Sedangkan saya PHP.
38:09Sudahlah.
38:11Nah, kalau pakai ini nih
38:13Spekulasi.
38:15Ini semuanya
38:17di Web.
38:19Jadi, prefetching dan
38:21prerender si Web-nya yang menentukan
38:23berdasarkan...
38:25Kita coba langsung lihat ke example-nya deh.
38:27Nah, ini dia.
38:31Prerender when,
38:35where, and
38:37make this
38:39/lockout
38:41or no prerender.
38:43Kalau prefetch,
38:45kalau url-nya
38:47nesh.html atau nesh2.html.
38:49Enak ya.
38:53Ini kan bisa dibedakan secara sintek.
38:55Ini bisa dibedakan setiap halaman
38:57kan. Jadi kita bisa build
38:59rule itu berdasarkan
39:01server-side
39:03render. Jadi misalnya
39:05saat lagi di page apa, saya bisa kasih
39:07rule itu.
39:09Saya di-reading page.
39:11Maka yang saya kasih rule-nya
39:13prefetch atau prerender
39:15thank you page. Karena siapa tahu sudah selesai
39:17waktu dia muncul thank you page cepat.
39:19Kita bisa di next page-nya.
39:23Karena kita yang define dari CC server.
39:27Menarik, menarik.
39:33Kalau artikel yang lebih enak
39:35dilihat, itu tuh di
39:37chat. Gimana, gimana?
39:39Ke ini dulu deh.
39:43Bahannya Eka dulu.
39:45Spekulation, rules
39:47improvement.
39:49Menunggu loading. Yang menarik
39:51buat saya ini nih, bagian ini nih.
39:53And so makes sense for multi-page application
39:55rather than single-page application. Karena kan
39:57sekarang trend-nya itu kan menuju
39:59ke MPA kan, balik ke MPA kan.
40:01Banyak
40:03framework.
40:05Dengan ada react server
40:07component lah, ada swell kit,
40:09ada quick, ada macem-macem kan.
40:11Ada astro juga.
40:13Jadi dengan
40:15si pengembang web
40:17juga dia melihat, wah ini kayaknya
40:19trend-nya menuju MPA, makes sense. Akhirnya
40:21dibuat lah spekulation rules
40:23API ini. Mungkin gitu ya.
40:25Dan kalau pun pakai
40:27kalau pun ada client-side routing-nya
40:29nih, kayak misalnya next.js gitu ya kan.
40:31Kalau misalnya emang supported
40:33bisa pakai client-side routing. Tapi kan
40:35sebetulnya itu SSR juga kan.
40:37Jadi bisa dianggap bisa punya
40:39behavior MPA juga.
40:41Benar, benar, benar.
40:43Ditambah lagi dengan
40:45transition API.
40:47Udah deh, lengkap.
40:49Iya.
40:51Document rules.
40:53Rules-nya dalam bentuk script
40:55begini ya, apa?
40:57A list of urls.
40:59Jadi nggak dirender sama browser.
41:01Ya kan?
41:03Diskip, diskip.
41:05Dan juga nggak di, script ini kan
41:07dia nggak, waktu di page load dia nggak
41:09dipeduliin.
41:11Gak blocking ya.
41:13Gak blocking.
41:15Gak blocking sama sekali.
41:17Gak blocking di DOM-nya, cuma ngasih tahu
41:19ke si browser-nya sendiri.
41:21Apa?
41:23Mesin, mekanisme browser-nya.
41:25Oh, bisa pakai SSSelector
41:29tadi.
41:31Menarik.
41:33Berarti kita bisa ngasih link itu, bisa kita, oh
41:35link ini, di prerender.
41:37Bisa link itu nggak dia?
41:39Bisa.
41:41Karena kalau lockout di prerender, dia
41:43ke lockout terus.
41:45Iya kan?
41:47Iya, benar.
41:49Kan kalau link lockout-nya di prerender
41:51di belakang, dia bakal ke lockout terus.
41:53Dia manggil, manggil lockout.
41:55Iya, dia bakal manggil.
41:57Oke.
41:59Berarti harus hati-hati saja ya?
42:01Bisa prerender ini,
42:03bisa prerender.
42:05Mungkin ini opt-in nggak sih?
42:07By default, ya nggak kan?
42:09By default, ya nggak ada.
42:11Nggak ada speculation.
42:13Apa itu? Oh, ke atas-katas ada
42:15warning-nya tuh, warning.
42:17Oh, yang merah, yang merah.
42:19Caution.
42:21Terus dia itu over-speculation.
42:23Terus dia home-in.
42:25CPU cost.
42:27Dia baca dari mana?
42:29Oh, dia baca dari history
42:31di browser kita, ya?
42:33Bukan hati-hati kalau
42:35terlalu banyak yang kita speculate
42:37untuk minta di prerender.
42:39Misalnya satu halaman kita, mungkin halaman kita
42:41yellow pages.
42:43Yellow pages, ya kan?
42:45Terus kemudian ada sepuluh rebulling.
42:47Masih kita prerender semua, ya?
42:49Nggak didos reper kita
42:51sendiri, kan?
42:53Maksudnya gitu.
42:55Dan browser-nya juga kan,
42:57apa, main thread-nya mungkin kerjanya
42:59di extra, ya? Karena nge-check satu-per-satu
43:01ini, wah, ini relevan nggak ya?
43:03Perlu di-pre-hedge atau prerender
43:05atau nggak?
43:07Ini keren nih, kalau misalnya kita
43:13keren nih, kalau misalnya
43:15prerender ini
43:17digabungkan dengan
43:19Intersection Observer kali ya
43:21atau Legi Load. Jadi semakin
43:23orang, ingat nggak
43:25kalau misalnya kita yang pakai
43:27Twitter, kalau scroll-scroll
43:29baru dia muncul, ya kan?
43:31Kan kalau pakai ini
43:33mungkin dia nggak di...
43:35Bukan. Maksudnya
43:39hanya link yang ada
43:41di above the fold itu yang muncul
43:43itu yang
43:45di-pre-render.
43:47Jadi nggak usah sampe
43:49semua, iya.
43:51Nggak tahu ya, mungkin saya bisa
43:53saya nanti bisa feedback
43:55kali itu.
43:57Dikombanya sama View
43:59Transition yang level 2.
44:01Seneng banget tuh.
44:03Cocok, cocok.
44:05SSR udah kayak...
44:07Nanti lama-lama, bisa apa?
44:09Hampir nggak bisa dibedain
44:11sama SPA, ya kan? Karena di-click
44:13sekejapnya udah diambil
44:15duluan, langsung feed-in
44:17feed-out.
44:19Sepertinya memang trennya di sana.
44:21Trennya memang diarahkan kesana
44:23jadi diarahkan kesana.
44:25Ada bedanya atas sama bawah.
44:27Ini Chrome Only.
44:29Atas sama bawah.
44:31Oh, source. Ada source.
44:33Source document.
44:35Kalau di bawah apa? Nggak ada source.
44:37Nggak ada source-nya.
44:39Baca penyelesaian apa di atas?
44:41Make the source key optional
44:45since... Oh, nggak harus
44:47pakai source. Karena bisa di
44:49infer dari
44:51URL atau
44:53where. Oh, gitu.
44:55These two speculation
44:57rules are identical. Ini dianggap
44:59sama. Karena
45:01udah ada where-nya, browser bisa
45:03mengkalkulasi sendiri.
45:05Bisa ngira-ngira sendiri
45:07jenis source-nya itu apa.
45:09Nggak masih pakai script, lho.
45:11Bisa pakai HTTP header, lho. Turun, turun.
45:13Bisa pakai HTTP header.
45:15Oh, iya ini bawah ya? Iya.
45:17Itu.
45:19Oh. Ini
45:21berarti di web
45:23server-nya, ya?
45:25Iya. Jadi kayak
45:27ini, kayak manifest.json.
45:29Kayak. Manifest.
45:31Jadi kayak manifest.
45:33Alright.
45:37Scroll ke bawah.
45:39Ini seru sih. Udah ada beberapa yang
45:41mengadopsi.
45:43Walaupun masih
45:45baru ya. Dan
45:47masih bisa satu domain, kan ya.
45:49Nggak bisa cross-domain, kan.
45:51Oh, harus yang original.
45:53Iya. Coba-coba-coba.
45:55Di Glitch.
45:57Entar
46:01habis lho ininya. Tethering-nya.
46:03Udah warning. Buka ini dong.
46:07Buka. Buka-buka. Buka-sambil buka
46:09DevTools Network.
46:11Sambil buka YouTube.
46:13DevTools.
46:15DevTools.
46:17Network, ya.
46:19Iya.
46:21Terus,
46:23kalau kita hover.
46:25Dia akan muncul, gitu ya.
46:27Nggak sih.
46:29Mana?
46:31Coba-coba reload.
46:33Oh, iya. Reload dulu, ya.
46:35Sudah.
46:43Common Fruit.
46:45Oh, ini masih common fruit.
46:47Mana?
46:53Ini bukan Chrome-nya.
46:55Udah Chrome 124
46:57belum?
46:59Ini Chrome Kanari.
47:01Kanari.
47:03Oh.
47:05126.
47:07Kenapa ya nggak bisa? Coba-coba.
47:09Gue jadi penasaran.
47:13API supported in this browser supported.
47:15Edit speculation rule.
47:17Rule-nya disuruh dibuat sendiri, gitu.
47:19Bukan, bukan. Sudah ada.
47:21Sudah edit.
47:23Sudah ada, kan?
47:25Moderate.
47:27Kemudian, ini di application.
47:29Bukan di network.
47:31Oh, gitu.
47:33Application. Eh, application mana ya?
47:35Application.
47:37Speculation.
47:39Bukan, ada speculation
47:41Re-load.
47:43Oh, bisa.
47:45Di-rolls, di-rolls, di-rolls.
47:47Coba-coba.
47:49Rolls, rolls.
47:51Oh, bukan.
47:53Refresh. Reload.
47:55Ini ada warning.
47:57Speculation-nya, coba.
47:5918, not trigger.
48:01Coba rule-set dipencet aja.
48:03Oh, itu udah trigger.
48:05Speculation.
48:07Speculation.
48:09Nah.
48:11Wah.
48:13Jadi, kalau
48:15Olive di-click,
48:17maka dia udah langsung render, ya.
48:19404.
48:21Nggak ada, beneran.
48:23Oh, pantesan failure.
48:25Nggak ada, nggak ada.
48:27Itu contoh aja, ya.
48:29Contoh behavior-nya aja.
48:31Coba ke, ya, Kiwi.
48:33Yang 404, yang...
48:37Ini nggak, Kiwi nggak.
48:39Oh.
48:41Tuh, itu pakai ini.
48:43Halaman ini pakai Web Vital ini.
48:45Halaman tadi.
48:47Iya, iya, iya.
48:49Ini kayaknya satu halaman merangkap
48:51demo macem-macem API baru, ya.
48:53Kayaknya mau lagi
48:55persiapan Google I/O ini.
48:57I/O.
48:59Oh, ini teaser,
49:01berarti ya. Teaser, ya.
49:03Iya.
49:05Ternyata episode-nya adalah
49:07episode teaser untuk Google I/O
49:092024
49:11tentang web, ya. Kita nggak tahu, kita sendiri
49:13nggak tahu topiknya apa. Masih coming soon.
49:15Tapi kita hanya mereka-mereka.
49:17Ini pasti masuk, deh.
49:19Iya, kayaknya masuk, nih.
49:21Oh.
49:23Iya, iya, iya.
49:25Berarti ini ditambahin baru, ya.
49:27Ada background service sendiri, ya.
49:29Jadi, sebagai background service.
49:31Kita kayaknya biar kan, kita jarang-jarang
49:33gitu liat tab application juga.
49:35Maksudnya nggak sampe
49:37ngintip apa. Kita asumsinya
49:39kan network, ya. Asumsinya
49:41network kan. Ternyata nggak ada.
49:43Ternyata behavior baru,
49:45ini kayak di stream line,
49:47di satu tempat terpisah.
49:49Nah, balik ke
49:51screen yang tadi, deh. Yang apa?
49:53Developer Chrome.com. Yang
49:55blog, blog post.
49:57Blog post
49:59yang ini, ya. Yang
50:01ini.
50:03Iya. Nah, scroll ke bawah.
50:05Bawah lagi.
50:09Nah, ini yang penting, yang platform support.
50:11Apa? Atas sedikit.
50:13Masih lagi
50:15proses standarisasi.
50:17Jadi, seneng boleh, tapi jangan seneng-seneng
50:19amat. We are also working
50:21hard to standardize the API
50:23lewat WICG.
50:25Jadi, masih dalam proses.
50:27Kalau misalnya mau tau apa, diskusi-diskusinya,
50:29ya. Mungkin itu bisa di
50:31click. Sudah
50:33ada WordPress.
50:35Udah ada plug-innya.
50:39Spekulasi mode udah ada.
50:41Wow. Cepet sekali.
50:43Ini spekulatif juga.
50:45Sebenernya kan belum diadopsi
50:47banyak rosar, ya. Spekulasi aja
50:49udah bikin plug-innya.
50:51Nah, terus yang
50:53yang seru,
50:55Chrome. Kenapa
50:57itu?
50:59Ya, itu udah adopsi juga. Scroll aja ke bawah.
51:01Oh, Astro udah?
51:03Oh, wow.
51:05Cuma, mungkin partial.
51:07Akamai, CDN, Nitro Pack.
51:09Experimental.
51:11Tapi, ya, seru sih.
51:13Dulu pun waktu view transition API
51:15yang level 1, itu sama satu yang pertama kali
51:17mengadopsi
51:19meta framework itu Astro yang paling
51:21terdepan.
51:23Paling pertama.
51:25Baru launching 4.2, kan?
51:27Baru launching kan dia
51:29ini 4.2?
51:31Januari sih.
51:33Oh, Januari 4.2?
51:35Masih experimental ya?
51:37Iya, experimental.
51:39Ini soalnya
51:41Januari...
51:43Januari kemarin. Masih
51:45experimental. Yang kemarin apa?
51:474.4 ya yang baru dia?
51:49Gak tau.
51:51Empat sekian lah.
51:53Iya, intinya udah.
51:55Membaikin ini ya. Define config
51:57untuk mengadopsinya.
51:59Refresh to experimental, client prerender true.
52:01Nice. Coba tuh contoh
52:03penggunaannya. Scroll ke bawah.
52:05If document
52:09prerendering, render disabled.
52:11Oke.
52:13Sederhana.
52:15Seru sih, Astro itu salah satu
52:17meta framework yang
52:19aktif
52:21mengadopsi standard web
52:23API.
52:25Jadi punya approach yang beda ya. Kalau Next.js kan
52:27semua dia bikin sendiri.
52:29Ya walaupun, eventually, kalau web API
52:31ada, ya akhirnya di
52:33streamline juga. Cuma kalau Astro
52:35pendekatannya
52:37jemput dulu lah ke web API yang baru
52:39yang masih experimental pun dipake.
52:41Cuma, di mereka
52:43juga experimental juga. Jadi gak
52:45ngeganggu
52:47yang stable.
52:49Oke.
52:51Udah ya.
52:53Lanjut. Satu lagi atau dua
52:55lagi. Nah, kalau dari saya
52:57ada ini nih.
52:59JSON module.
53:01Apa tuh?
53:03JSON module itu kalau
53:05dulu ataupun sekarang
53:07kalau misalkan kita mau import dari
53:09JSON kan harus pakai
53:11bundler kan ya.
53:13Biasanya kalau dari webpack itu ada
53:15extensionnya
53:17untuk loading JSON.
53:19Nah, ini sudah
53:21native.
53:23Bisa baca JSON.
53:25Bisa baca JSON.
53:27Oh, import dari JSON bukan?
53:29Ini import dari JSON.
53:31Jadi kalau kita punya JSON data
53:35kita bisa langsung, gak perlu pakai plugin.
53:37Gak perlu pakai
53:39bundler.
53:41Gak perlu JSON parse.
53:43Gak perlu JSON parse.
53:45Betul.
53:47Motivasi ya itu.
54:07Biar bisa emang import JSON file.
54:09Iya.
54:11Kalau yang begini-gini semua pasti
54:13langsung setuju. Kalau yang tadi
54:15type system.
54:17Terlalu opinionated.
54:19Soalnya.
54:21Betul.
54:23Ada orang yang suka, tapi di sisi yang lain
54:25kita, si web ini harus tetap
54:27menjaga
54:29kompatibilitasnya kan. Tetap harus bisa membuka
54:31web dari tahun kapan.
54:33Jadi agak berat sih itu.
54:35Bakal ada gak sih
54:37di Obsolete gitu?
54:39At some point.
54:41Ya, kalau pun Obsolete gak boleh
54:43breaking kan. Kayak misalnya
54:45Markli atau Blink gitu.
54:47Gak jalan, tapi kan gak ngerusak.
54:49Eh, tapi kemarin ada tuh
54:51yang Obsolete.
54:53Kemarin ada yang Obsolete.
54:55Ada.
54:57Bukan Markli, temennya Markli.
54:59Center.
55:01Center. Oh iya.
55:03Tapi kan gak breaking.
55:05Kalau cuma HTML tag ya gampang ya.
55:07Cuma kalau misalnya apa?
55:09Iya, kalau udah ada yang pake Center.
55:11Gimana tuh?
55:13Ya gak apa-apa, di render jadi kosong kali.
55:15Maksudnya di render div biasa.
55:17Ini kan.
55:19Deprecated.
55:21Bukan maksudnya.
55:23Bukan Obsolete.
55:25Nggak, deprecated
55:27no longer recommended
55:29dosal. Oh iya, bakal dihilangkan.
55:31Yang dipake gitu.
55:33Bakal dihilangkan kan.
55:35Dihilangkan dari web standard.
55:37Hilangkan.
55:39Terus kenapa Markli tetap
55:41exist ya?
55:43Karena bagus.
55:45Bagus? Bukannya accessibilitynya
55:47kurang bagus?
55:49Ya, biar backwards
55:51compatible aja sih.
55:53Bagus di jamannya.
55:55Bagus di jamannya.
55:57Karena masih banyak yang pakai. Ternyata Center itu
55:59gak banyak yang pakai ya.
56:01Orang udah pakai, mungkin udah
56:03pada pakai
56:05line center aja kali ya.
56:07Udah pakai grid.
56:09Jadi udah lebih ini ya kali ya.
56:11Udah lebih banyak. Iya banyak yang
56:13banyak alternatif CSS-nya.
56:15Kalau Markli bisa pakai animasi, tapi kan
56:17repot. Gak bisa balik lagi.
56:19Iya, benar-benar.
56:21Oke, oke.
56:23Jadi, ya.
56:25Mana tadi? Kita balik lagi ke
56:27ini ya?
56:29Udah, gitu aja.
56:31Ya, sederhana sih. Cuman
56:33impact-nya lumayan.
56:35Udah lah, sudah.
56:37Berguna sekali.
56:39Kalau kita misalkan mau
56:41load dummy data, gitu ya.
56:43Dummy datanya dalam bentuk JSON. Atau bukan
56:45dummy data aja. Mungkin data yang
56:47diimport dari gimana gitu kan.
56:49File-nya dalam bentuk JSON.
56:51Kita punya config custom atau
56:53semacamnya. Iya, config, betul.
56:55Bisa dibaca langsung, bisa diimport
56:57langsung. Malah import, eh,
56:59kalau import CSS itu
57:01JSON modul ya istilahnya ya?
57:03Oh iya, sama ya. Ini JSON modul.
57:05Ada syntaxnya sendiri.
57:07Iya, benar-benar.
57:09Status stage 3.
57:11Belum berarti ya?
57:13Udah lah, udah.
57:15Tapi udah hampir, udah tinggal
57:17potong Vita aja.
57:19Tunggu peresmian aja. Isunya apa nih
57:21istunya? Masih ada isu.
57:23Because feedback.
57:25Should name JSON modul import
57:27be a parser. Itu berapa tahun
57:29ini lah? 2022 sih.
57:31Oh iya. Ini
57:33last month.
57:35Iya, udah aman lah ya ini ya.
57:37Mentar lagi ya. Aman lah. Stage 3 tuh
57:39kan udah hampir pasti.
57:41Itu lulus.
57:43Alright.
57:45Ada lagi, ada lagi yang menarik-menarik?
57:47Itu deh, apa?
57:49Minor.
57:51Minor, tapi lumayan sih yang set HTML.
57:53Set HTML?
57:57Iya.
57:59Oke.
58:01Ini ya.
58:03Nah, cuma ini kepakainya cuma
58:05untuk kalau kita pakai
58:07custom element alias
58:09web component.
58:11Web component.
58:13Baru dengar ini nih. Maksudnya
58:15udah pernah dengar beberapa hari lalu nih set
58:17HTML. Unsaved.
58:19Unsaved.
58:21Kalau HTML biasa kan pakai inner HTML aja kan
58:23misalnya kita mau
58:25manipulate mengabit suatu dom.
58:27Ya, apa?
58:29Blah, div, mydiv, dot
58:31inner HTML sama dengan HTML.
58:33Isi HTML-nya.
58:35Tapi kalau custom element alias
58:37web component kan gak bisa tuh.
58:39Nah, sekarang jadi bisa.
58:41Gitu doang sih intinya.
58:43Kalau misalnya kita mau bikin shadow
58:45dom harus pakai unsaved ini.
58:47Ya kan? Kalau nggak diparsing.
58:49Oh, iya kalau nggak diparsing.
58:51Iya, iya. Ini ya.
58:55Replacement
58:57untuk inner HTML.
58:59Replacement.
59:01Ya,
59:03behavior-nya sama kayak
59:05inner HTML. Cuma
59:07ya itu bisa buat
59:09custom element. Gitu.
59:11Jadi kalau kita pakai buat HTML
59:13biasa juga bisa.
59:15Iya, maksudnya kalau kita punya
59:17custom element.
59:19Misalnya
59:21oh, ya kayak
59:23kayak
59:25date picker, date ya date
59:27custom element. Tapi datenya sudah di-support.
59:29Kalau yang kita bikin sendiri gak bisa
59:31kalau pakai inner HTML. Dia harus
59:33pakai HTML unsaved ini.
59:35HTML unsaved.
59:37Oke, oke.
59:39Jadi kayak itu, jadi kayak
59:41si react aja.
59:43Iya, tahu kan. Dangerous
59:45reset.
59:47Dangerous reset HTML.
59:49Dangerous reset HTML.
59:51Cuma ini trend yang
59:53kocak tapi menarik sih.
59:55Ini juga, kan sebenarnya itu
59:57behavior-nya sama kayak inner HTML.
59:59Cuma bisa, apa, dengan tambahan bisa
1:00:01pakai web component, custom
1:00:03element. Cuma sekarang jadi ada
1:00:05unsaved-nya gitu. Maksudnya, apa,
1:00:07buat menekankan bahwa silahkan
1:00:09kalau misalnya datenya dari
1:00:11sumber datenya ada unsur
1:00:13eksternal, ya silahkan sanitize sendiri.
1:00:15Apa, bukan urusan kami.
1:00:17Kayak dari segi sintaksnya.
1:00:19Memang jadi, ingat react itu sih
1:00:21dangerously set inner
1:00:23HTML. Dulu tuh pas pertama kali
1:00:25belajar, terus pakai tuh kayak,
1:00:27"Ini bercanda apa beneran?" Dangerously
1:00:29set inner
1:00:31HTML.
1:00:33Iya.
1:00:35Banyak tuh.
1:00:37Kalau react itu dia memang
1:00:39ciri hasilnya gitu ya. Huru besar semua. Terus kadang-kadang
1:00:41ada yang mau deprecated, dia tulis dulu kan.
1:00:43Will be deprecated, bla-bla-bla kan.
1:00:45Biar gak
1:00:47banyak yang pakai.
1:00:49Dulu kan kalau line terakhir itu
1:00:51ada yang gak boleh dihapus,
1:00:53ada komennya.
1:00:55If you delete this, the sky will fall.
1:00:57Atau apa-apanya, ada komen,
1:00:59ada bagian yang gak boleh
1:01:01delete.
1:01:03Lupa.
1:01:05Oke.
1:01:07Oke. Nah,
1:01:09ada lagi web API yang baru?
1:01:11Di 2024 atau sebelumnya?
1:01:13Ini aja. Belum kesampaian.
1:01:15Interop aja.
1:01:17Siapa tahu ada yang menarik.
1:01:19Yang Zoom.
1:01:21Kita udah bahas Interop 2024
1:01:23belum ya?
1:01:25Udah kayaknya. Kan sempat yang kita bahas
1:01:27apa yang akan masuk di Interop 2024
1:01:29itu pernah. Sudah, sudah, sudah.
1:01:31JPEC,
1:01:33JPEC Excel,
1:01:35itu sempat di
1:01:37tempat mode ini,
1:01:39tapi gak, gak, gak, gak,
1:01:41gak.
1:01:432024 ya?
1:01:45Itu di link gue kan ada, tuh.
1:01:47Oh, di chat, chat,
1:01:49private chat.
1:01:51Oke.
1:01:53Yang sudah stable aja
1:01:59atau
1:02:01kita bahas.
1:02:03Yang mengenaskan tuh
1:02:07custom property.
1:02:09Di Firefox.
1:02:11Ini kayak gimana?
1:02:13Firefox gak mau ya.
1:02:15Ayo.
1:02:17Ayo lah.
1:02:19CSS custom property.
1:02:21Far.
1:02:23Variable.
1:02:25Serius.
1:02:27Firefox gak mau.
1:02:29Gak, yang apa dulu kan
1:02:31banyak nih bagiannya. Coba aja.
1:02:33Nah, itu add property animation.
1:02:35Jadi yang buat animasi atau buat
1:02:37apa? Oh, gak ada
1:02:39apa?
1:02:41Tau yang mana dia.
1:02:43Variable untuk
1:02:45maksudnya kan
1:02:47CSS custom property tuh banyak.
1:02:49Add property, add property
1:02:51gitu loh.
1:02:53Oh, decorator.
1:02:55Decorator.
1:02:57Kayak decorator gini kan.
1:02:59Kayak decorator, bukan decorator.
1:03:01Kayak, kayak.
1:03:03Ada banyak, kan.
1:03:05Ada berapa.
1:03:07Gak, gak itu.
1:03:09Property cascade.
1:03:11Property.
1:03:13Oh, dia gak support.
1:03:15Property, property schedule.
1:03:17Semua gak.
1:03:19Ya, itu kelihatannya 1.
1:03:21Mesti 1 paket deh. Maksudnya itu fitur-fitur
1:03:23yang sebenarnya harus kerja bareng, kan.
1:03:25Padahal Firefox dulu tuh
1:03:27kalau soal CSS, apa
1:03:29image-nya, apa
1:03:31identiknya. Firefox yang paling
1:03:33pertama ya. Kayak grid dulu.
1:03:35Chrome pun belum support grid.
1:03:37Firefox udah support duluan.
1:03:39Ini gaman apa ya?
1:03:41Ini Linux. Ini apa ya?
1:03:43Itu Chrome
1:03:45di Linux, maksudnya.
1:03:47Yang ini?
1:03:49Kayak React gitu, tapi bukan sih.
1:03:53Kayak Logo React.
1:03:55Windows, bukan.
1:03:57Apa ini?
1:04:01Task Cluster Logo.
1:04:03Task Cluster.
1:04:05Apa itu Task Cluster?
1:04:07Coba aja.
1:04:09Runner-nya dia kali.
1:04:11Tahu deh.
1:04:13Apa lagi?
1:04:15Interop 24/O ini ya?
1:04:17Yang tadi ya?
1:04:19Atau TPS URL
1:04:27socket tuh kayaknya udah
1:04:29stable tuh.
1:04:31Firefox sama Safari yang
1:04:33paling duluan?
1:04:35Popover tadi udah kita bahas ya.
1:04:37CSS nesting juga nyaris.
1:04:43Ini experimental loh.
1:04:49Top experimental.
1:04:51Kalau mau top stable,
1:04:55itu, itu, itu.
1:04:59CSS nesting tuh
1:05:01soon kayaknya. Coming soon
1:05:03to the most stable.
1:05:05Index DB udah
1:05:07bisa dibilang udah ya selesai ya.
1:05:09Udah selesai.
1:05:11Ini ya.
1:05:15Firefox udah duluan.
1:05:17Firefox, Safari paling atif.
1:05:21Cuma nyusul kok.
1:05:23Tadi kan experimentan
1:05:25udah hampir selesai.
1:05:29Oke.
1:05:31Text udah balanced.
1:05:33Firefox udah duluan.
1:05:35Iya.
1:05:37Oke.
1:05:39Oke, sip. Ada lagi?
1:05:43Mari kita tidur.
1:05:47Mari kita tidur.
1:05:49Ya, jadi itu dia.
1:05:53Mungkin daftar
1:05:55apa ya? Web API baru.
1:05:57Atau yang tidak terlalu baru.
1:05:59Yang bisa dicoba.
1:06:01Atau baru masuk baseline.
1:06:03Baru stabil di semua
1:06:05browser.
1:06:07Bahkan tadi kita bahas yang top annotation
1:06:09itu bahkan masih stage 1 artinya
1:06:11masih perdebatan, tapi belum tahu.
1:06:13Cuma ya itu bisa jadi kontroversi
1:06:15dan menarik dikutih ya.
1:06:17Tapi menarik buat
1:06:19lihat cara mikirnya, maksudnya argumentnya.
1:06:21Terus kayak pro kontranya.
1:06:23Kalaupun nanti nggak diadopsi,
1:06:25kita punya
1:06:27kita punya insight ke situ lah.
1:06:29Mau update sekalian?
1:06:31Hari ini.
1:06:33Kemarin kan gue nyoba
1:06:35Paski.
1:06:37Waktu tahun lalu, waktu ngasih
1:06:39presentasi, Paski itu masih
1:06:41nge-bug di Firefox.
1:06:43Dan belum support. Bahkan fatal error.
1:06:45Sekarang sudah
1:06:47lancar jaya.
1:06:49Paski sudah lancar jaya
1:06:51di Firefox. Iya.
1:06:53Web Auton
1:06:55sudah stabil.
1:06:57Sudah stabil di Firefox.
1:06:59Thank you Firefox.
1:07:01Akhirnya saya bisa.
1:07:03Begitu sudah coba, sudah bisa?
1:07:05Oke, berarti sedang
1:07:07mempersiapkan beberapa materi.
1:07:09Iya materinya
1:07:11saya kerjakan ini proposal, jadi
1:07:13saya mau submit salin ke klien.
1:07:15Ayo, makin pasti.
1:07:17Gopi saya.
1:07:19Dua tahun lalu
1:07:21saya mulai kerjakan,
1:07:23setahun lalu saya promosikan. Sekarang baru bisa
1:07:25dipakai.
1:07:27Tau lalu, itu semua tentang
1:07:29Paski WordPress lagi nih.
1:07:31Iya.
1:07:33Oke.
1:07:35Nah.
1:07:37Mudah-mudahan, apa ya. Masih banyak sih
1:07:39yang bisa kita kulik sih sebenarnya.
1:07:41Cuman ini yang menurut kita menarik ya.
1:07:43Kalau menurut teman-teman apa. Yang dinanti
1:07:45nanti apa sih. Boleh
1:07:47dikolom komentar. Meskipun kita tidak live.
1:07:49Tapi kita akan baca.
1:07:51Komentar juga boleh kita
1:07:53teman-teman kirimkan
1:07:55kesana.in. Silahkan ngobrolin web.
1:07:57Topik
1:07:59atau narasumber atau
1:08:01apapun. Bisa kirim kesana
1:08:03nanti kita diskusi-diskusi juga.
1:08:05Jadi untuk malam ini, sekian
1:08:07dulu.
1:08:09Kita ketemu lagi minggu depan.
1:08:11Mudah-mudahan minggu depan kita bisa live. Karena ini
1:08:13tidak live. Tadi lupa ngomong ya.
1:08:15Langsung masuk ke
1:08:17materi. Ya, malam ini kita tidak live.
1:08:19Karena satu dan lain hal.
1:08:21Nanti mudah-mudahan
1:08:23minggu depan kita bisa live lagi dengan
1:08:25topik yang berbeda. Kalau gitu, udahan dulu.
1:08:27Selamat malam. Selamat
1:08:29istirahat. Bye-bye.
1:08:31Bye.
Suka episode ini?
Langganan untuk update episode terbaru setiap Selasa malam!
Episode Terkait
31 Mar 2025
Ngobrolin Lebaran - Ngobrolin WEB
Selamat Idul Fitri. Mohon maaf lahir dan batin! -----------------------------------------------------------------------...
24 Sep 2024
Ngobrolin FOMO - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...
4 Jun 2024
Ngobrolin NextJS - Ngobrolin WEB
Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. ...