EP 29

Ngobrolin Templating Language - Ngobrolin WEB ep30

Bagikan:

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://bit.ly/ngobrolinweb Pembahasan: * Apa itu templating language * Beberapa conto & use cases * Beberapa opsi templating language * Kenapa butuh bahasa untuk templating? * Apa itu Domain Specific Language * Berbagi pengalaman menggunakan berbagai templating language ------------------------------------------------- Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Transkrip Bantu Koreksi

0:00Halo, halo, halo. Selamat malam semuanya. Selamat hari Selasa. Selasa waktunya? Waktunya ngobrolin.

0:13Pertama kita mau mengecepen selamat lebat. Oh ya, selamat Ibu Pitering, mohon maaf lahir batin.

0:22Kalau kita banyak-banyak salah, ya banyak sih salahnya. Oh jelas.

0:28-Tolong, dimaafkan. -Mungkin kita sotau ya, tolong dimaafkan dan tolong dikoreksi.

0:34Atau bikin itu mungkin. Atau salah ngasih info mungkin, nah kalau salah ngasih info, dikoreksi aja di komen ya.

0:42Kita butuh kalian buat... Sama-sama belajar, ya.

0:46Kita sama-sama belajar di sini, dan ini adalah episode ke-30 kita.

0:50Oh. Tidak berasa ya. Sebenarnya ke-31 dong, berarti.

0:55Ke-31 sebenarnya. Oh iya ya.

1:00Sudah lebih dari setengah tahun ya, Wati ya.

1:03-Setengah tahun ya? -Ya.

1:05-Udah lebih ya. -Kenapa?

1:07-Lebih. -Iyalah.

1:08-Tahun ke-52. -Tahun ke-52 kan satu tahun ke-52.

1:10-52 minggu ya? -Iya.

1:12-Iya iya iya. -Iya.

1:16-25 ya berarti ya. Ini 20-an. -Okay.

1:20-26. -Berarti episode ke-50 kita harus ini ya.

1:25-51 umpangan. -Celebrasi.

1:27-Celebrasi. -Iya.

1:29-Celebrasi, pakai balon. -Mengapain kita ya, nantilah kita pikirin ya.

1:32Kalau temen-temen ada idea boleh ya, boleh.

1:34Langsung dituangkan ke kolom komentar atau ke bit.ly/mobrolinweb.

1:39Kira-kira episode ulang tahun kita, ulang tahun dan tanda kutip, kita nanti ngapain?

1:45Apakah kita ngobrol sama temen-temen semua?

1:48-Nanti diundang semuanya masuk ke YouTube. -Iya, itu lucu sih.

1:53-Bisanya ya. -Discord kali ya?

1:56Ya mungkin. Live di Discord mungkin.

1:59-Bisa juga. -Atau ada itin lain?

2:02Ada yang mau ngesponsorin, bikin offline event?

Lihat transkrip lengkap

2:05Offline event? Wah itu juga boleh tuh.

2:08-Tapi... -Siapa tahu.

2:10-Siapa tahu. -22 minggu lagi berarti ya.

2:13Mas Jalan mau bilang "hello".

2:18Semangat, semangat, semangat, bisa.

2:21Masih bisa.

2:23Oke, dan edisi malam ini kita akan membahas tentang...

2:28-English language. -English language.

2:31Ya, kalau temen-temen familiar dengan framework seperti React.

2:36Atau Vue.js, atau Angular, atau Spelt.

2:39Atau apa pun, Laravel, ROR, gak bakal lepas dari templating language.

2:45-Ya, yang backend juga ada. -Yang backend ada?

2:48-Oh, baru tahu. -Yang ROR itu kan backend.

2:53Ada R, Laravel.

2:57-Blade. -Tapi kan itu untuk markupnya.

3:02Betul, tapi kan di-serve-nya framework yang request-respond dari server.

3:10Server side rendering lah.

3:12Yes, kalau misalkan yang tadi saya sebutkan seperti React, Vue, Angular itu kan yang front-end only kan.

3:20Kalau ada yang familiar dengan JSX, walaupun JSX, claim-nya adalah JS JavaScript.

3:28-Walaupun sebenarnya tidak. -Beda ya, beda.

3:31Vue.js juga pakai v-something-nya kan. Ada v-sieve, ada v-apalagi, banyak ya.

3:39Di-swele, ada curly brace, pager, if-else-nya kan pakai, dia punya syntax sendiri.

3:46Nah, itu semua bisa dianggap templating language.

3:49Nah, yang mau kita bahas adalah templating language itu apa, kemudian kenapa butuh.

3:56Dan apa ya, kayaknya kalau ditarik garis kira-kira itu kayaknya mirip-mirip lah ya.

4:07Walaupun syntax-nya mungkin ada perbedaan, ada fitur yang berbeda, tapi tujuannya tetap sama kan.

4:12Tujuannya sama, syntax-nya lain semua, pusing kalau kita harus context switching.

4:18Dari satu jenis templating language ke templating language lain.

4:22-Susah ya memang itu. -Iku susahnya.

4:25Plating language pertama kalian apa?

4:27-Apa ya? -Saya dulu pakenya Smarty.

4:34-Sama, saya dulu pakenya Smarty. -Untuk me-hp ya.

4:38Smarty. Udah lama banget ini Smarty.

4:44-Tapi masih aktif loh, bisa lihat. -Masih, 2022.

4:49Kita lihat ya dimana sentaknya.

4:55-Zoom in, zoom in. -Zoom in, oke.

4:59-Websitenya juga website ini ya. -Iya.

5:05Tapi intinya kok sponsornya kasino-kasino begini ya?

5:09Oh dia bertahan karena sponsornya aneh-aneh.

5:14-Apa? -Oh itu di-hack ya kayaknya, oh enggak itu partner ya ampun.

5:20-Kirain di-hack. -Sonsor loh.

5:22-Mungkin ya. -Ku-install ya.

5:25-Example app kok enggak? -Commentation.

5:28-Iya. -Udah lama banget ya.

5:32Iya, installation basic syntax, nah kita lihat ya.

5:36Nah ini dia pakai urung kurawal, jintang.

5:40Nah ini dia, jadi mengingat masa lalu ya.

5:45Ada include, ada macam-macam ya, ada for juga.

5:49Nah tapi sebelum kesitu mungkin kita bahas dulu tentang,

5:53ini templating lenjuts ini kan bagian, salah satu bagian dari

5:57istilahnya domain spesifik lenjuts kan.

6:00Jadi ada beberapa lenjuts yang mungkin bisa dikategorikan lenjuts dan tanda kutip gitu.

6:05Bahasa, tapi bahasanya simple.

6:08Jadi khusus untuk, ya itu domain spesifik, khusus untuk

6:12sesuatu yang sangat spesifik.

6:15Misalkan tadi untuk menjejret HTML, templating lenjuts.

6:19Ada juga kalau misalkan teman-teman pakai ORM misalkan,

6:24itu juga ada domain spesifik lenjutsnya.

6:26Misalkan mau definisikan skema database, itu kan pakai syntax tertentu kan.

6:32Bukan misalkan pakai syntaxnya Laravel,

6:36bukan pakai syntaxnya PISP, bukan pakai syntaxnya Ruby, dan lain-lain.

6:40Tapi itu berbeda, sedikit berbeda.

6:42Nah itu juga domain spesifik lenjuts.

6:44Ada file konfigurasi juga ada.

6:47Kayak YAML, TOML, dan belakangnya markup lenjuts lainnya juga

6:52itu bagian dari domain spesifik lenjuts.

6:55Domain spesifik lenjuts itu kependekannya DSL bukan sih?

6:59DSL, iya.

7:01Dan kita akan bahas salah satunya adalah templating lenjuts,

7:07dan juga template engine kali ya.

7:09Karena itu sepasang ya, di mana ada language, ada syntax khusus,

7:14ya di situ harus ada engine yang memproses si syntax, si karakter-karakter nggak jelas itu.

7:20Jadi kali ya diparsing, jadi masuk ke workflow-nya entah itu diparsing lagi ke HTML atau JavaScript atau apa pun.

7:29Nah itu tuh definisinya oke sih tuh, simple then.

7:33Singkat pada jelas di kalimat pertama.

7:37Jadi data, itu tadi kan contohnya entah dari database, atau dari apa lah sistem,

7:43misalnya dari PHP atau apa pun gitu.

7:47Dimasukkan ke structured format.

7:52Udah, itu doang.

7:54Contoh-contohnya kan tadi sebagian udah dibahas tuh.

7:58Iya, ada ERB, ada Hummel, ada Slim, terus ada Django, ada moustache atau handlebar.

8:10Ada banyak sekali.

8:12Nanti kita akan berbagi pengalaman kita pernah pakai templating lenjuts apa.

8:18Weh, ada ini ya.

8:23Featuring.

8:25Ada featuring ya.

8:27Coba ditanya tuh, favorite language-nya apa deh.

8:32Hello world-nya pakai bahasa apa.

8:36Oke.

8:37Nah, jadi tujuan si templating lenjuts adalah untuk mengkompilasi yang tadinya sinta-sinta HTML kan,

8:46karena HTML itu tidak ada logika di sana.

8:49Kita nggak bisa pakai for, nggak bisa pakai if, gitu kan.

8:53Kita bisa pakai logika yang biasa kita gunakan untuk komodaman, gitu.

8:58Jadi satu solusinya adalah menggunakan templating language.

9:02Jadi memudahkan, sebenarnya kan apapun templating language-nya yang pasti ada itu ngerender value-nya variable.

9:11Itu udah jelas.

9:13Kalau nggak bisa satu ini, ya udah ngapain ada templating language.

9:17Terus look.

9:19Ya, apa logic computation dimasukin ke markup intinya kan itu tadi.

9:28Jadi ada variable, ada kalkulasi, mungkin kalkulasi simple kan ya.

9:33Terus ada conditional, looping, kadang ada partial, udah intinya kan cuma itu.

9:40Partial atau include.

9:42Kita lihat sejarahnya ya, kayak templating engine-nya kayak jaman dulu itu, kalau moding PHP yang versi 4 ke bawah ya,

9:52yang dia masih pakai syntax-nya itu masih kayak tanda-tanya sama dengan, gitu ya.

10:00Oh, ada contohnya tuh buka yang warang file deh.

10:03Sama VbScrip jaman dulu tuh, saya masih ingat tuh VbScrip tuh masih pakai sikur-sikur persen sama dengan itu.

10:13Itu kan tau contohnya?

10:15Iya.

10:16Nah dulu tuh PHP, ya sebenarnya bisa, cuma kan kayak agak clunky ya, agak berentatan aja.

10:25Nah, bandingin bawahnya pakai templating language blade, ya relatif lebih rapih lah.

10:32Iya.

10:34Nah, ini sebenarnya kenapa kita butuh templating language?

10:40Supaya lebih rapih tadi ya, jawabannya.

10:43Supaya nggak banyak repeating element kan.

10:48Jadi kalau misalnya kita, iya.

10:51Jadi bisa modular salah satunya.

10:54Modular, bisa include ya.

10:56Ya, templating, kita bisa modular, jadi kita bikin satu header aja, satu footer aja,

11:02nanti bisa rame-rame semua.

11:04Kalau mau loop juga bentuknya bagus, kalau mau kondisional, kodonya bagus, lebih rapih.

11:11Intinya, view-nya kan, presentation.

11:14Presentation, iya.

11:16Model, view, controller, jadi view.

11:18Controller, ini untuk view.

11:20Iya, kita fokus di view-nya aja, jadi view itu nggak perlu proses business logic,

11:27hanya untuk mengambilin data, seperti benar-benar separation, kalau bahasa ini, separation of concern.

11:34Jadi, bahkan template-nya sudah kita, oke, kalau misalnya mau untuk user table ya di situ,

11:41kalau mau untuk user login ya di situ, header di situ.

11:45Jadi, ngedibaginya juga gampang.

11:50Tapi nanti kita cerita apa pain point packet dan piping engine ya, nanti kita cerita.

11:54Yang mana sebenarnya, dibalik layer kan, diprosesnya oleh engine-nya kan,

11:59jadi sebetulnya ada satu lapisan pemprosesan lagi sih.

12:03Sama jika dipindahkin, biar mungkin developer yang bikin front-end,

12:09yang bikin view layer markup-nya lebih simple, ngetiknya.

12:15Nah, apa yang terjadi kalau kita tidak menggunakan template engine atau templating language?

12:21Yang terjadi adalah semuanya kita tulis di controller.

12:25Kalau tadi kita omong model view controller kan, dari model dapat datanya di controller,

12:31kita return string-nya, string HTML-nya kan, mulai dari HTML, buka sampai HTML tutup.

12:37Jadi kalau di PSP dulu, pakai petik 1 misalkan,

12:41abis itu di concatenasi dengan datanya, abis itu di for loop misalkan.

12:47Kalau PSP tadi itu kayak contoh yang atas itu kan.

12:51Kalau JavaScript sekarang mungkin ketolong, udah ada template literal ya.

12:56Di ECMAScript sendiri udah ada template literal.

13:00Jadi kalau mau looping, ya looping kayak JavaScript biasa aja.

13:04Tapi ya tetap aja. Tetap aja harus concatenate lah.

13:09Intinya concatenate kayak nyambung-nyambungin string yang isinya HTML.

13:13Karena bagaimanapun, harap diingat browser kan cuma bisa membaca HTML.

13:18Jadi kita mau pakai segala jenis templating engine language atau nggak pakai sama sekali,

13:24ujung-ujungnya pokoknya harus jadi string HTML.

13:28Ini kan tidak dalam untuk string kan. Kalau misalkan kita mau nggak pakai templating

13:34sama sekali, ini kita harus convert jadi string, abis itu ini di PHP-nya jadi...

13:40Di echo sih.

13:41Ujung-ujungnya adalah situation of concern.

13:44Jadinya semuanya ada di controller, jadi controllernya budaya banget itu.

13:48Satu template. Atau dia bisa baca file.

13:51Tapi kalau baca file juga mau gimana gitu.

13:54Butuh si templating engine juga kan untuk memasukkan data itu ke dalam tempat-tempatnya.

14:02Jadi file-nya HTML manual diketik satu, dibuat satu-satu.

14:07Yang kayak kita sering bahas dulu jaman static HTML file.

14:12Ya, jadi nggak efektif, nggak efisien sama sekali.

14:16Makanya muncul kebutuhan untuk templating engine dan templating language.

14:24Selanjutnya kita bahas tentang, apa lagi nih, perbandingan.

14:30Beberapa templating language yang ada ya.

14:33Biar ada bayangan aja sebagai contoh.

14:36Ini maksudnya apa sih templating, ngomongin apa gitu ya.

14:39Kalau di ekspresi itu yang paling terkenal adalah EJS.

14:41Yang terkenal ada yang built-in EJS ya.

14:45EJS yang built-in, tapi bisa diganti.

14:48Bisa pakai pack atau dulu namanya Jade. Jade ini juga cukup terkenal ya.

14:52Terkenal di Ruby Honor juga.

14:54Iya, ganti nama lah.

14:56Oh iya, pack dalam kurung formerly known as Jade.

15:01Tuh, di paragraf ketiga.

15:04Menarik Jade ini, dia modelnya kayak Python atau kayak stylus CSS preprocession.

15:12Jadi dia menggunakan spasi.

15:14Jadi ngetiknya tuh enak.

15:17Cuman ribet.

15:19Terus, rawan error.

15:23Bukan error sih, kayak formatting issue kali.

15:28Jadi pack ini salah satu yang filosofinya adalah nggak perlu tutup.

15:35Kalau tag HTML kan perlu buka, tutup kan.

15:37Tapi dia nggak perlu.

15:38Jadi dia kayak manggil function aja.

15:41Nama tagnya spasi, isinya gitu.

15:45Dan fun fact ini, sampai sekarang di CodePen pun kita masih bisa pakai pack.

15:53Misalnya kita malas nulis HTML complete nih.

15:55Di CodePen itu masih bisa pakai Hummel, Markdown, Slim atau Pack.

16:03Ya, nanti bisa dikompile jadi HTML ya.

16:06Ini contohnya, tuh menarik kan?

16:09Buat saya sih menarik ya.

16:11Itu bakal masalah nggak kalau misalnya identasinya misalnya nggak compact gitu.

16:16Ada yang pakai tag, ada yang pakai spasi.

16:19Mau lihat nggak?

16:21Kalau campur mungkin iya.

16:22Tapi kalau misalkan konsisten sih nggak harusnya.

16:26Pake editor config dong.

16:29Nah, harus kalau kerja sama orang lain, berarti harus ketat banget itunya.

16:33Harus pakai intro ya.

16:36Nah, ini dia kan kenapa nggak butuh tutup?

16:39Karena dia pakai spasi ini kan.

16:41Kalau misalkan identasinya begini, ya berarti ini adalah satu komponen kan.

16:46Itu bayang nggak sih gimana cara parsingnya ini, gimana cara nulis codenya?

16:51Ya, nulis engine-nya gitu gimana ya?

16:54Iya kan sama aja kayak kurung buka kurung tutup ya.

16:58Pokoknya dia nyari, dia ngitung jumlah identasinya aja sih.

17:03Kalau misalnya ditugaskan tuh coding tesnya atau kalau mau masuk perusahaan.

17:11Buatlah sebuah templating engine.

17:15Nggak ada yang datang.

17:16Menarik sebenarnya.

17:17Tapi menarik sih walaupun nggak jadi, gimana cara paratan didak itu, approach-nya.

17:24Tadinya kepikiran mau ini sebenarnya, mau live coding bikin templating engine sederhana.

17:30Jadi kan teori-nya ya, ini sederhananya. Ini versi paling sederhana.

17:35Kita punya string, string HTML blablabla.

17:38Terus kita punya sintaks misalkan, katakanlah kita mau coba yang handlebars.

17:46Yang kurung kurawal dua kali itu.

17:48Yaudah kita find aja, kurung kurawal dua kali isinya apa berarti itu variable-nya.

17:54String replace gitu ya.

17:56Ya entah itu berupa indentasi atau space atau kurung kurawal atau apa.

18:03Itu lebih besar lebih kecil ya, pokoknya kita cari tag-nya kan.

18:07Kalau ini berarti gimana ya?

18:10Berarti final replace, begitu ketemu body, diganti aja.

18:15Bukan tag body, terus body buka body tutup.

18:20Kita berarti detect element-nya, detect indentasi-nya, jumlah indentasi-nya.

18:28Buat nantuin apa? Kayak tree, kan bikin pohon kan, bikin tree nesting-nya.

18:34Kalau saya bukan bikin tree, ya maksudnya ada tree-nya juga.

18:40Tetapi sistemnya ini pakai balikannya si queue, stack, jadi buat pakai stack.

18:52Jadi semua diparsing, maksudnya dibaca per line.

18:57Dan setiap line, berarti ada tree.

19:01Dan masuk ke stack.

19:10Setelah masuk ke stack, baru nanti waktu dikeluarkan.

19:14Di susun lagi, di looping terus di susun.

19:17Ini bisa jadi tugas akhir.

19:24Tugas akhir bisa sih, tugas akhir.

19:29Itu aja, coding interview.

19:32Gimana cara kalian untuk membaca lojinya?

19:35Bikin templating language.

19:37Bikin templating language sendiri.

19:39Habis itu baru kan ada attribute-nya, ada value-nya.

19:42Kayak apa sih itu, class column-item, bisa ada attribute apa.

19:47Itu masih baru, yang saya jelaskan, masih baru yang ke bawah ya.

19:54Masih ada yang ke sampingnya, jadi setiap line-nya.

19:57Samping, bisa ada children, bisa ada attribute.

20:00Perlu diparsing juga.

20:03Jadi dibaca titik sama spasi.

20:07Cuma ini horror banget ya sih.

20:09String aja nggak pakai quote mark-in nih.

20:13Nggak enak banget liatnya.

20:15Openning pribadi ya, nggak enak banget liatnya sih.

20:19Nggak enak ya, oke.

20:21Uniknya adalah, kalau ada orang yang suka, dia suka banget.

20:28Tapi kalau ada orang yang suka, dia nggak suka banget.

20:31Divisive ya, ekipalanya kalau buah, durin.

20:34Maksudnya kalau aku atau jeruk kan orang, oh oke nggak.

20:38Suka banget yang nggak, sembel yang nggak.

20:41Cuma kalau dibiarkan, orang suka banget atau sembel.

20:44Atau ekipalanya itu kayak film.

20:47Kalau yang suka, udah nggak bisa menggunakan editor lain.

20:51Maksudnya setidaknya visual studio code pun pakai keybindingnya film.

20:56Sama kayak ini.

20:58Kalau dia udah kebiasaan, mau pakai templating engine lain tuh udah males.

21:02Karena udah enak begini gitu kan.

21:05Lebih singkat, yang dideteknya lebih sedikit gitu lah.

21:09Kayak ngomong aja ya kayak, each tool will come, here is the home page, blablabla.

21:18Tapi kayaknya sekarang udah jarang yang pakai karena ini,

21:21begitu kita tab atau kita enter di visual studio code, udah jadi satu tag sendiri kan.

21:26Udah ada class namenya, udah ada bantuan taggingnya, jadi lebih cukup.

21:30Jadi dia dibuat obsolete oleh teknologi intelligence ya.

21:33Teknologi tagging.

21:35Iya, betul.

21:37Bukan obsolete sih, maksudnya jadi nggak sepenting itu.

21:40Maksudnya keunggulan, yang dulunya keunggulan dia, sekarang ya jadi kayak nggak penting.

21:45Ya, competitive talent testing jadi hilang.

21:49Terus tadi Pak udah, kalau IJS, mana IJS?

21:54Nah, IJS malah yang kedua ya. IJS anggar ya, mirip-mirip kayak Black juga.

21:59Dia modelnya kayak gini.

22:01Ya, cuma karakternya aja.

22:03Sama dengan itu berarti nama variable dan nanti dia akan muncul easy variable-nya.

22:08Kalau minus itu berarti without escaping, ini maksudnya apa?

22:15Maksudnya kalau ada ATML ditampilkan apa adanya?

22:19Nggak ada filter-nya ya, nggak ada sanitize-nya.

22:23Iya, jadi misalkan ada script JavaScript yang apa?

22:30Javascript yang berbahaya, misalkan alert gitu ditampilin aja udah.

22:35Dokumen cookie.

22:37Ya, ini bahaya kalau misalkan kita menerima inputan dari user misalkan komentar kita menggunakan ini.

22:44Jangan sekali-kali, bahaya.

22:47Jadi kalau mau yang aman, menggunakan ini ya.

22:51Ya, atau maksudnya mungkin ada use case-nya ya, tapi dibalik layar harus kita sanitize dulu.

22:57Di server-side-nya ya gimana? Kerana kita harus sending dulu.

23:01Nggak, ada satu motto yang di komunitas WordPress atau security juga sanitize early, escape late.

23:12Always.

23:13Apa maksudnya? Escape itu apa?

23:15Ya itu tadi escaping.

23:17Oh, escaping-nya terakhir ya?

23:19Jadi selalu gitu ya, nggak ada pengecualian gitu, nggak boleh ada pengecualian.

23:24Use case-nya waktu baru di input oleh user di layer pertama.

23:27Sanitize, layer pertama begitu mau ketemu input dari user, sanitize.

23:33Paling terakhir, output terakhir yang mau keluar ke HTML.

23:36Pas udah di front-end banget, pas udah markup, kayak view layer, baru escape.

23:41Escape, escape, always.

23:44Oke, ini contoh tampilan dari IJS.

23:48Ini ada subjek, ini nanti dia akan berganti, bergantung subjeknya apa isinya?

23:53Nah ini kan dilihatnya lebih enaknya, opini pribadi lagi, lebih mirip dengan HTML normal.

23:58Cuma ada sintaks khususnya, indikator sintaks khususnya apa?

24:02Yaitu tadi si apa? Tanda kurung buka sama percent sama-sama.

24:07Itu namanya opinionetik.

24:11Ada yang nggak suka liat kurung-kurung begini, "Ini beresaman, nggak penting gitu, ngapain sih gue liat kurung itu?"

24:19"Ngapain sih kurung itu? Gue udah tau itu buka itu tutup, ngapain gue liat gitu?"

24:22Kan ada juga.

24:25Selera, selera.

24:27Salah satu konsiderasi dari templating lenjus adalah ngetiknya.

24:31Kalo ngetik, kurung siku percent sama dengan, itu kan pake sieve kan?

24:37Kurung siku pake sieve, percent pake sieve, sama dengan lepas sievenya.

24:42Itu ada ergonomisnya juga.

24:46Kalo misalkan pake handlebar, kurung kerawal dua kali, lebih cepet kan?

24:51Kurung kerawal dua kali, makanya kayaknya IJS nggak terlalu populer, mungkin karena orang mulai males.

24:57Mulai males.

25:00Ya itulah teknologi ya. Kalo udah ada yang, "ini kok, cape ya nulisnya ya?"

25:05Ngetiknya gitu kan, akhirnya munculah solusi-solusi lain, seperti handlebar, must test, dan temen-temennya yang mirip-mirip.

25:13Must test itu mungkin karena curly brace-nya itu mirip kumis kali ya, kumis tapi di rotate 90 derajat.

25:20Oh, terus mirip itu juga, mirip handlebars seteng sepeda kan? Seteng motor, atau sepeda.

25:29Jadi kalo dibalik kesini jadi kumis, dibalik kesini jadi stang.

25:34Ya ini contohnya lebih beranak, tapi ini contohnya terlalu sederhana ya, nggak ada for loop dan lain-lain ya.

25:45Kalo kayak Vue itu dia membuat looping-nya itu langsung di, kan ada kalo v, dash apa itu sebenernya itu template-nya kan?

26:01Ini kita belum ngomongin yang di backend, yang di server, nanti kita ngomongin yang di client.

26:07Salah satu keunggulannya tadi kita udah sebutkan, dia bisa lebih modular, jadi bisa menggunakan parcial.

26:15Bisa input deh.

26:17Bisa direcycle, bisa digunakan berkali-kali, dan kalo di handlebar itu contohnya seperti ini.

26:25Recycle, reuse.

26:28Reuse ya, sorry. Recycle kayak sampah ya.

26:32Recycle berulang ke pol plastik.

26:37Ini adalah template navigation, kemudian kita mau tampilin di halaman utama misalnya.

26:43Nah template navigation-nya dimana, ya mungkin ada settingan di /template/something gitu kan, atau parcial, nanti dia akan ditampilin disini.

26:53Begitu juga dengan templating lanjut yang lain juga biasanya ada.

26:58Oke, itu beberapa contoh ya. Ini baru dari satu environment ya, baru dari express ya.

27:07Meskipun express ada banyak yang lain, karena express itu salah satu yang...

27:12Express itu extendable.

27:15Nah buka yang express aja.

27:17Ya express aja ya, express dulu ya, udah bahas ya.

27:20Mana?

27:22Express bawah-bawah.

27:28Jadi orang, kita biasanya taunya kalo pake express.js identik sama tiga yang dibahas tadi, karena itu yang paling kaman ya, paling umum.

27:38Tapi sebenarnya express itu contoh yang didesign, dia extendable.

27:43Jadi maksudnya template engine yang lain, templating language yang lain juga bisa disambungin, di-extend ke express, itu contohnya.

27:54Ada banyak yang mengerti ya, ada HBS yang tadi ya, Endelbars disingkat HBS.

27:59Ada APA, ada namanya lucu, ada Nanjax.

28:05Ini juga saya pernah pake.

28:08Bahkan kalo iseng bisa JSX disambungin ke express, kalo mau juga bisa.

28:14Eh gimana Nanjax?

28:16Nanjax ini yang pakai Mozilla, yang bikin timnya Mozilla.

28:20Dan dia terinspirasi dari Jinja, Jinja ini adalah templating language di Python.

28:25Coba liat contohnya.

28:27Ya Nanjax terinspirasi dari Jinja, Jinja terinspirasi dari templating language-nya Django.

28:33Itu udah inspirasi tangan kedua ini ya, inspirasi tangan kedua.

28:39Itulah indahan open source, indahnya open source, forking, forking tiada henti.

28:45Nah ini contohnya, jadi bisa di-extend seperti tadi.

28:49Kalo kita mau include gitu ya, kemudian ada block-blocknya.

28:52Itu pake apa sih, curly brace sama percent.

28:55Nah gusing-gusing lah itu indikatornya.

28:58Agak sedikit ini ya, tapi ini khusus untuk seperti block-extend.

29:06Tapi kalo misalkan untuk nampilin variable, tetep menggunakan modelnya handlebar.

29:11Itu paling umum sih, kayaknya di blade, Laravel blade juga pakenya double curly brace.

29:18Karena itu yang udah paling umum.

29:20Harus di-huffle-huffle, di-huffle-huffle ya.

29:23Ya kan sekarang ada jaman IDE modern ya, ada IntelliSense.

29:30Dan ada plugin, kayaknya asal kita pakenya jangan yang aneh-aneh amat gitu.

29:34Jangan pake Whiskers atau Hummel Coffee.

29:37Kalau kita pake yang cukup umum, pengguna-nya banyak, itu hampir pasti ada plugin-nya lah.

29:42Di PS Code.

29:44Dan ternyata di NodeGaze juga ada blade.

29:47Nah ini blade yang sama dengan game Mirk.

29:51Oh ini beda deh.

29:53Kayak bukan nurunya sama ya?

29:55Tapi kitanya sama gitu.

29:57Kitanya sama gak?

29:59Gini dia.

30:01Gede.

30:02Lah ini mah kayak tadi.

30:04Kayak puk.

30:06Kayak nama jenis anjing.

30:14Iya, memang itu, logonya anjing.

30:16Inspired.

30:18J.S.X bisa dipakai.

30:26Salah satu contohnya, front-end framework yang bisa digunakan di Express sebagai templating lanjut adalah Marko.

30:34Marko ini kan?

30:36Iya.

30:37Marko.js.

30:38Jadi, common.js ya di Convert ya.

30:41Dari tulisannya.

30:43Nah ini kan Express soalnya.

30:46Ini salah satu front-end framework yang bisa digunakan di back-end untuk di Express ya.

30:53Karena dia punya templating engine yang compatible dengan Express.

30:58Dan tadi sempat ngobrol juga dengan Eka sebelum acara.

31:02Si Express ini sangat flexible, makanya dia banyak banget.

31:07Bahkan kita bisa bikin sendiri kalau kita mau.

31:09Dia udah menyediakan adaptornya, udah menyediakan spesifikasinya.

31:17Jadi bisa jadi coding test ya, atau jadi interfintest.

31:22Bikinlah templating engine, terus disungling ke Express.

31:28Nah itu loh kayak ada yang bawa seumur hidup, belum pernah denger.

31:31Spritely, a very lightweight J.S.X engine, 45 lines of code, bla bla bla.

31:38Bikin templating engine yang lebih kecil lines of code-nya daripada spritely.

31:44Begitu kerja disuruh bikin crude.

31:47Marah-marah ntar.

31:52Life coding-nya susah-susah, kerjanya gampang banget.

32:00Pas kerja cuma suruh pasang meta-tech, nyambungin analytics doang sih.

32:05Pasang tech-manager, artikanya.

32:09As a user, I want to see tech-manager load.

32:13Mana ada user yang mau lihat tech-manager.

32:17As a member of marketing team, I want to see GTM event.

32:32Berikutnya kita masuk ke environment yang berbeda, ini PSP.

32:37PSP Laraksal.

32:41Jadi disini menggunakan blade.

32:47Templating-nya namanya blade.

32:50Kalau kita tadi pernah pakai smarty, ini masih biar dulu sekali.

32:55Kalau di codeignator pakai apa? Langsung pakai gini dia kan?

33:00Gak pakai template-nya ini kan?

33:02Dia ada template parser juga.

33:05Tapi punya dia sendiri, kayak gini nih.

33:09Sama ka, beda sedikit.

33:13Ini yang bawaan tadi ada link-nya template parser.

33:19Oh ini mirip, mirip sama.

33:22Cuma ada replace-replace doang, gak pakai.

33:29Gak salah ya, gak pakai looping atau kondisional.

33:33Kalau gak salah, udah lama gak pakai, jadi lupa.

33:39Yang lebih modern mungkin Laravel sekarang ya.

33:43Ini contohnya tadi udah bahas juga, jadi lebih sederhana dibandingkan ini.

33:50Menurut teman-teman, tapi hampir yang bersama.

33:53Ini kan contoh simple-nya, coba buka Laravel yang dokumentasi khusus blade.

34:01Di chat.

34:05Ini?

34:08Kalau penggunaannya sih macam-macam, tapi ini ada satu hal yang menarik.

34:15Nggak tahu gue rasa sih ini menarik ya, karena dulunya kan kalau full-stack framework kayak Laravel atau ROR,

34:23dia kan concern-nya presentation layer-nya, pokoknya gimana caranya bisa di-render ke HTML.

34:28Dulu jaman-nya belum terlalu dinamik di JavaScript front-end kan,

34:33client-side interactivity itu hal yang belum terlalu dipikir lah.

34:37Tapi kan sekarang ini Laravel 10 ya, udah ada integrasi JavaScript front-end-nya juga.

34:44Jadi ada potensi bisa clash, terus dia bikin itu tuh sintaks-nya lucu, liat yang hello name.

34:50Jadi kalau kita depannya pakai add symbol, itu mengindikasikan bahwa curly braces sama variable name-nya itu

35:02buat diproses sama JavaScript, jadi will remain untouched by the blade engine.

35:07Jadi kalau depannya nggak pakai add, itu bakal diproses oleh server side-nya kan, PHP, Laravel,

35:17PHP, Laravel, presentation layer, blade, view-nya kan, view file-nya di-generate jadi HTML.

35:25Tapi kalau depannya dikasih add, ya udah dianggap itu urusan integrasi client-side JavaScript.

35:32Karena di Laravel yang baru kan udah nyambung sama webpack mix.

35:38Jadi kayak escape, tapi emang diindikasikan itu urusannya JavaScript client-side.

35:47Jadi ternyata templating language pun pelan-pelan berkevolusi, bahkan yang sejarahnya dari server-side sekalikun.

35:57Wah menarik, menarik. Seru ya. Terus ya itu lucu-lucu sih bisa rendering JSON lah, ya macem-macem penggunaannya.

36:05Ya karena, ya mungkin karena saya nggak, nggak sempat pakai Laravel dan beberapa full-stack framework,

36:13jadi apa namanya, endpoint-nya nggak dapat. Kalau ini kan sih, mungkin yang menggunakan Laravel pasti bingung kan.

36:20Maksudnya bingung dalam artian. Kalau dulu kan kita bikin aplikasi, cukup sederhana ya.

36:26Di server-side, udah gitu. Client-side-nya hanya buat...

36:29Yang penting, family member, bisa looping, bisa include dan sebagainya.

36:34Terus tiba-tiba sekarang si...

36:36Developer banyak mau sekarang.

36:38Jadi mau istilahnya single-page application lah, mau interaksinya kicking market gimana,

36:44mungkin itu yang menyebabkan si Laravel juga menggunakan cara seperti ini,

36:49tujuannya untuk mengakomodir ya itu, platform and staff di sana gitu ya. Seru ya.

36:57Nah, ngomongin templating language, domain specific language, ada satu media atau satu platform ya, apa ya?

37:05Satu protocol sebenarnya yang juga menggunakan templating language, ya itu adalah email.

37:15Nah, itu contoh kasusnya si SendGrid itu ya.

37:19Ya, kalau kita mau ngirim email, yang sifatnya dinamis...

37:23Ada dynamic template, nah dia kan punya teknologi server-side sendiri sebetulnya kan,

37:28di SendGrid-nya atau yang nggak harus SendGrid lah, service apapun, tapi contohnya SendGrid.

37:34Nah kalau SendGrid ini dia built-in-nya handlebars.

37:37Misalkan teman-teman pakai service, kalau ada yang pernah bikin newsletter gitu ya,

37:46bukan berlangganan, kalau berlangganan kan kita terima, kita yang ngirim gitu.

37:49Kayak misalkan pakai MailChimp atau pakai SendGrid atau pakai apapun,

37:53itu ada templating-nya sendiri untuk menampilkan misalkan "Halo Eka, selamat datang" gitu kan,

38:01di newsletter edisi ketiga misalkan.

38:04Nah itu kan dinamis kan, kita ngirimnya ke seribu orang misalkan,

38:08ya nggak mungkin kita ngirim seribu-seribunya satu-satu gitu kan.

38:12Ya kalau ngirim seribu kali, kita nggak usah pakai layanan email kan.

38:16Iya, bikin aja dari Gmail langsung ya.

38:19Nah ini namanya itu bisa dinamis ya salah satunya juga karena templating edisi.

38:24Jadi masing-masing provider juga menggunakan templating edisi untuk memudahkan.

38:29Salah satu contoh pasus penggunaan template lenzud atau domain spesifik lenzud.

38:35Kalau nggak salah, ada templating lenzud buat email yang menggunakan JSX juga,

38:46tapi kita belum bahas JSX, ngerti aja ya, MLJS kalau nggak salah ya.

38:51Nah belum pernah soalnya, kalau selama ini cuma pernah pakai SendGrid.

38:56Ya nanti lah sambil dicari-cari kalau ya.

39:02Oke, berikutnya kita bahas tentang template engine.

39:09Painful engine, apa downside menggunakan template engine?

39:16Nah, tadi kan kita bahas keuntungannya, ada nggak downside-nya yang pernah kalian rasakan?

39:25Ada.

39:27Apa itu?

39:29Jadi ini mungkin case yang mungkin tidak semua orang mengalami.

39:38Dulu saya pernah pakai sebuah templating lenzud yang sangat powerful namanya Mako dari Python.

39:45Ini powerful banget, jadi kita bisa nulis syntax Python bisa di-evaluate di template itu.

39:53Ini udah agak melawan code red sih.

39:56Nah itu, di satu sisi power kita kan gede ya, tapi di sisi yang lain itu performanya ancur.

40:04Maksudnya itu bukan tempatnya aja sih kayaknya.

40:07Bukan tempatnya, iya.

40:09Itu yang membuat si akhirnya saya nggak jadi pakai, dulu sempat pakai kan.

40:13Lama-lama ah udah lah tulis di template aja semua, jadinya si textnya di template.

40:17Jadinya kebayang nggak ya, dari server, dari Python, dia harus melakukan kongkordinasi dan lain-lain.

40:24Kemudian diavolusi lagi, kemudian baru balik lagi ke string lagi.

40:29Jadi ada dua kali proses kerjaan kan.

40:32Tapi si Mako ini digunakan oleh Reddit.

40:35Yang, ya ini, mungkin mereka harus menggunakan beberapa aturan ya.

40:42Nggak boleh ini, nggak boleh itu mungkin ya.

40:45Karena hasilnya ya lumayan.

40:48Cuman, kalau kita mau cepat, istilahnya mau, bukan cepat ya, mau apa ya.

40:53Mau simple juga ya, mau cepat jadilah gitu ya.

40:57Pragmatis lah ya, mau pragmatis.

40:59Yang penting jadi gitu.

41:01Yang penting jadi gitu kan, mau berantakan ya urusan belakangan gitu kan.

41:05Yang penting jalan dulu dah.

41:07Nah ini kalau untuk yang deadliners ini cocok gitu, karena ya udah kalau misalkan kesulitan nih.

41:15Kita mikirin logiknya di sisi, kan kadang-kadang ada susah kan.

41:20Kalau sekarang kan kayaknya datanya itu udah.

41:23Kita ngirimin API dalam bentuk array dan lain-lain bisa diproses di client kan.

41:27Kalau dulu kan di client belum bisa kan.

41:28Jadi terpaksa harus ditulis di template, template di sisi server juga.

41:32Jadi ya kita harus mikirin for loopnya, harus dimanipulasi datanya dan lain-lain.

41:37Nah kalau kesulitan, ya langsung tulis aja di sisi.

41:40Tulis di situ, atasnya ada to do, balikin ke to do.

41:44Nanti rapihin ke kode asli to do itu gak bakal dilihat lagi udah pas udah beres.

41:49Sama aja kayak apa ya, di code igniter kan di VU-nya, di HTML-nya kita bisa nelis PSP kan.

41:57Bisa diavolasi sebagai PSP code kan.

41:59Ya jadi agetik code juga sebenarnya jadinya, ujung-ujungnya.

42:03Itu downside-nya kalau dari saya.

42:07Kalau dari saya downside-nya itu ada, karena ada percent extent layer, terus kemudian kan dia dikompile.

42:13Biasanya blade, smartie, tweak segala macam itu biasanya ada dikompile menjadi file, static file.

42:23Static file?

42:24Ya jadi static file, jadi cache bahasanya sih.

42:27Jadi cache di file, jadi supaya gak di...

42:31Gak di render berulang-ulang.

42:33Iya itu.

42:34Pertama, kalo cache-nya tuh bisa full.

42:38Kalo share hosting-nya, share hosting segala macam.

42:41Penuh ya.

42:42Kalo kebanyakan penuh.

42:44Apalagi kalo nulisnya salah.

42:47Dan ada string yang dynamic dan akhirnya dia generate cache terus.

42:54Dan karena ada cache berarti ada system garbage collection.

43:00Jadi kalo misalnya si template-nya sudah out of date, biasanya dihapus.

43:07Kalo itu gak jalan, karena masalah permission lah atau apa, cache-nya bisa numpuk dan bisa error juga.

43:14Terakhir juga karena dia pake cache, masih berubah dengan cache, smartie atau apa pake cache.

43:20Karena kita udah berubah sesuatu tapi ternyata cache-nya gak ke update atau somehow gak ke update.

43:26Terus kita reverse-reverse, ini kenapa kita sudah berubah filenya, sudah berubah template-nya.

43:32Tapi hasilnya gak berubah-ubah gitu.

43:34Kenapa, kenapa akhirnya ngerimbang itu susahnya setengah mati.

43:38Karena gak tau, ternyata ini waktu cache-nya bukan template-nya.

43:42Nah itu dulu penpoint saya pake template engine.

43:47Karena case, makin susah kadang.

43:53Belum pernah ngalamin sih untungnya, pake Laravel Black pernah.

44:01Cuma keliatannya penggunaannya gak se intense itu buat gak trigger cache yang sampai ekstrim gitu.

44:10Atau mungkin by the time aku pake Laravel, mungkin cache invalidation atau apalah.

44:18Sudah bagus.

44:20Nah dan udah, sebenernya kan itu legacy code ya.

44:25Nah pelan-pelan banyak yang di kombinasi sama JavaScript based run and see.

44:32Pake React banyak yang client render.

44:34Jadi mungkin teringankan kerjaan si Blade juga. Di luar itu sih templating language-nya lebih banyak pake yang run and base.

44:44Misalnya React kan udah built-in JSX.

44:46Karena built-in ya kayak behavior segala macamnya kan yaudahlah itu urusan.

44:51Itu di handle sama React.

44:52Terus Aswell juga punya sendiri, itu kan built-in.

44:56Udah di handling sebaik mungkin sama library-nya sih.

45:02Jadi belum pernah yang sampe kejebak atau kegocek masalah templating language.

45:10Paling masalah ignore-nya sih kalau context switching.

45:14Lagi nulis Aswell, terus tiba-ibah harus pindah nulis Blade.

45:19Nah tapi kan itu masalah human error, itu human issue ya bukan masalah templating language-nya sendiri.

45:27Kayak refeks nulis curly brace dua kali.

45:32Context switching itu downside juga kan.

45:35Sama aja kayak kita biasa nulis misalkan di back-end-nya pake bahasa yang mengharuskan pake atau tidak menggunakan titik oma.

45:45Misalkan Python, terus di front-end-nya kita pake JavaScript.

45:50Terus tiba-tiba lagi nge-tick Python tiba-tiba titik oma gitu kan.

45:54Tepas titik oma itu sih agak terbantu VS Code, cuman bagaimanapun jari kita pasti lebih cepet ya.

46:01Jadi pasti ngalamin error lah.

46:06Jadi mungkin kita bisa, ini waktu yang tepat untuk memperkenalkan beberapa templating language di sisi front-end.

46:18Ya, atau di client-side ya. Salah satunya yang paling terkenal adalah GSX. Kenapa ini bahasa Indonesia ya?

46:24GSX, teman kita semua.

46:26GSX, teman kita semua.

46:28Jujur dulu waktu awal-awal React muncul itu ada penolakan dari diri sendiri.

46:35Ya pasti banyak yang penolakan.

46:38Di-brainwash kan. Wah separation of concern nih. Kita udah misahin antara logic dengan view presentation layer dan lain-lain. Sama React digabungin lagi jadi satu gitu kan.

46:50Terus mungkin ada masalah imperatif VS deklaratif.

46:53Maksudnya kan menyuruh klik element. Buatlah element yang atributnya begini-gini.

46:59Kalau deklaratif, ini harus bentuknya harus kelihatan seperti ini.

47:05Ya, ini jadi dengan GSX kita bisa menulis sintak mirip seperti HTML, meskipun itu bukan HTML ya.

47:14Mirip seperti HTML ditambah dengan bisa kita evoluasi JavaScript misalkan menampilkan variable, manggil function, apa lagi, bisa forward it with...

47:23Sintaknya itu ya.

47:27Harus ada return ya. Harus ada return value ya.

47:29Kalau kita panggil void, di sini gak bisa ya.

47:32Makanya jarang orang yang menggunakan for loop, karena for loop itu tidak return apa-apa. Makanya pakai map kan.

47:39Karena dia return nilai. Pokoknya ini harus return sesuatu.

47:44Harus deklaratif.

47:46Yes, harus deklaratif.

47:47Kemudian ada view. View JS juga punya template yang lainnya sendiri.

47:52Nah, ini unik nih. Bentuknya beda ya. Sintaknya agak beda.

47:56Bentuknya agak beda.

47:57Ini masih familiar ya. Ini paling umum ya.

48:04Curly braces.

48:06Nah, dia menggunakan property dari @HTML.

48:13Seperti fee HTML atau fee something, fee bind, fee...

48:20Bahkan kondisionalnya kalau misalnya if.

48:23Kalau misalnya juga pakai itren.

48:27Ya, dia bisa kondisional, bisa looping, bisa.

48:33Oh, bisa begini juga ya.

48:38Itu aneh lagi.

48:41Kalau ini scene-nya sama dengan true, maka dia bisa muncul.

48:46Kalau scene-nya sama dengan false, dia hilang. Paragraph ini tidak dirender.

48:50Nah, di sini value scene-nya kan string ya.

48:53Tapi itu berarti dia dibalik layar mencari variable JavaScript lokal namanya scene.

49:00Kalau kemudian apa lagi? Spell. Spell juga punya sendiri.

49:06Sama mirip kayak si ini juga kan?

49:09Mirip, mirip.

49:10Ya, rata-rata mirip ya. Ini modelnya mirip-mirip sama view.

49:14Yang berbeda sendiri adalah si React ya.

49:17React dan temen-temennya. Preact, Inferno, Solid juga kayak React.

49:25Solid, ya. Solid pakai JSX juga.

49:29JSX juga ya.

49:31Nah, ini agak sedikit berbeda walaupun pakai kurung-kurawal, tapi ada menggunakan pager sebagai pembuka.

49:38Nah, itu tadi 2%. Sekarang ada pager. Kalau tengah-tengah titik 2.

49:42Kayaknya berbunyi-bunyi, berbunyi-bunyi.

49:45Ya, ini...

49:47Nah, ini.

49:49Tutup-tutup.

49:51Kalau if langsung tutup, tutupnya pakai... Eh, kok nggak bisa di-scroll?

49:57Kalau if langsung ditutup, tutupnya pakai slash, bukaannya pakai pager, tengah-tengah jangan pakai titik 2.

50:05Kalau else atau each, mau...

50:08Kalau nutup selalu slash.

50:10Tapi kalau nutup slash sih, itu logikanya, bukan logika, kebiasaannya dari HTML ya, lumayan enak.

50:18Kalau buka pakai pager, tengah pakai titik 2 tuh selalu lupa.

50:22Apa begitu ya?

50:24Iya, suka-sukanya.

50:26Gak apa-apa.

50:28Tapi kalau udah terbiasa, jadi apa ya, di otak kita tuh udah tahu.

50:33Oh, kalau mau pakai if di awal pakai pager, tutupnya pakai slash, kalau ada else-nya pakai titik 2.

50:39Mau each juga sama.

50:41Kalo langsung drop-down, swell plugin.

50:45Ya, pentingnya plugins untuk kehidupan sehari-hari developer.

50:51Apa nggak kan kita bahas IDE ya?

50:53Oh, iya. Boleh, menarik.

50:55Udah masuk.

50:57Sampai masih pakai Note 3++.

51:03Nah, tadi kan b-swept ada syntax yang menarik sih, itu juga menyesuaikan kebutuhan front-end modern.

51:10Ada a-wait, jadi kayak dia bisa asingkronus.

51:14Nah, itu hal yang nggak ada di templating language lain.

51:19Beritanya aja, sejauh.

51:21Sejauh ini belum ada yang aku modir ya.

51:24Cuma dia bikin shorthand untuk asingkronus.

51:29Berarti ini di-load dia...

51:33Oh, berarti ngeloadnya...

51:36Swap itu membaca semua dari awal.

51:38Sebelum di-compile.

51:40Iya, tapi dia punya keuntungan, maksudnya swell punya keunggulan.

51:44Dia kan nggak runtime ya.

51:46Jalan-nya bukan dadakan dinantang.

51:48Dia compil dulu.

51:50Dia compil dulu, jadi dia udah tahu ada itu.

51:54Itu salah satu, ini cukup berguna kalau untuk ngerjain ini ya.

51:59Panggil API, nungguin data masuk, ini sangat berguna.

52:04Dibandingkan kita harus back-and-forth dari JavaScript-nya.

52:13Ini langsung di template.

52:15Nah, ada beberapa lagi yang lain, tapi silahkan cari sendiri aja.

52:19Angular juga menggunakan yang berbeda.

52:22Ada apa lagi? Ada framework banyak sekali.

52:25Angular punya ya?

52:27Mithosis atau nemithosis?

52:29Nah, ini yang menarik sebenarnya kemarin kita bahas di minggu lalu.

52:35Kita bahas builder.io.

52:37Dia punya satu converter template.

52:41Gila ya, mereka tuh semua bagian dari ekosistem disambil ya.

52:46Jadi kayak Quick dari meta framework-nya Quick.

52:50Terus drag-n-drop dari CMS, kayak low-code builder, dia punya ya itu builder.io.

52:57Bahkan ini templating ada mithosis.

53:00Misalkan kita punya sintaks JSX atau kita punya komponen React.

53:05Kita mau migrasi ke Vue JS atau Vue Quick atau mithosis JSX.

53:12Jadi bisa.

53:15Dia dipersing, apa? Dia nge-compile langsung ya?

53:20Iya, ke-svelte juga bisa nih seperti ini.

53:23Jadi dia lihat div-nya disini, dia bikin div-nya disini.

53:26Terus ada binding-nya, karena ada on-change, ada set name.

53:30Dia bisa lihat lah, gitu-gitu ya.

53:33Oh makanya builder.io kemarin sebagai CMS kan, dia CMS yang...

53:38framework atmostik kan, dia bisa ngambil, dia bisa punya komponen dari berbagai UI apa, front-end framework.

53:46Gila ya, dia teknologinya modular gitu di pisah-pisah.

53:50Kita mau pakai ini doang, mithosis ini doang.

53:53Kalau emang cuma itu yang kita perluin ya boleh-boleh aja.

53:56Tapi semua di-combine jadi produk-pomeril si builder.io itu.

54:01Ini bisnis modelnya bisa dicontoh nih ya.

54:04Ini contoh yang bagus buat bisnis model ya.

54:07Komponen-komponennya open-source semua, tapi layanan yang ininya berbayar.

54:13Dan itu bisa mendukung, saling mendukung ya satu sama lain.

54:17Nah, svelte-osis kebalikannya.

54:20Jadi dari-svelte bisa ke yang lain.

54:24Ke React.

54:27Jadi Quick.

54:29Quick ini juga kayak pakai JSX kan, walaupun dia menggunakan engine yang berbeda.

54:33Sama nggak engine-nya?

54:35Belum berapa ya Quick sih?

54:37Belum berapa, sama.

54:39Bisa rake native, wuih.

54:42Canggih ya.

54:44Bisa rake server-komponen?

54:46Enggak, Nen.

54:47Ah, RSC.

54:49Ini belum sampai ke situ.

54:51Esplorasinya.

54:52Nah, ini mithosis juga baru ketemu kemarin.

54:55Pas lihat.

54:56Keren, keren, keren.

54:57Kalau misalkan ada yang kesulitan.

54:59Karena salah satu JSX yang bikin agak memusingkan adalah

55:07ketika kita disediakan template-nya dari misalkan kita download.

55:12Template dari woodstrap something gitu ya.

55:15Itu kan harus 20 plus name.

55:17Iya, ini kan terlalu banyak, harus find and replace kan.

55:21Ada kemungkinan salahnya juga cukup besar kan.

55:25Downside-nya lah.

55:27Kalau ini, kalau view, harus tambahin vsomething, vsomething.

55:33Oh, kalau itu sih, itu kan interactivity.

55:37Sebenarnya yang nggak enak JSX doang kalau kopas dari PureHTML ya.

55:41Kalau yang lain aman ya.

55:42Kalau swell, view aman.

55:44Swell pernah, soalnya pernah halamin, apa,

55:48convert template yang PureHTML, kopas, aman.

55:53Tapi ya, kalau dynamic, kayak buat, ya itu tadi, keperluan nameplating language kan.

55:58Variable lah, dynamic, copying, ya itu mau nggak mau kan,

56:02harus dikasihkan sendiri.

56:03Kelas lagi harus jadi kelas nih, kan, kalau diri ya.

56:06Nah, kalau jadi kelas, iya.

56:07Masih, masih dipertahankan ya?

56:11Masih lah, kan itu JavaScript.

56:13Nggak boleh, nggak boleh tabrakan.

56:16Nggak boleh tabrakan protected keyword.

56:19Oke, nah, ngomongin yang tadi, email.

56:22Nah, ini ketemu nih namanya MJML.

56:25MJML, wow.

56:27Iya, jadi kalau kita mau bikin service yang bisa ngirim email,

56:32nah, ini kita bisa pakai template engine-nya,

56:34template language-nya seperti JSX kayaknya ya.

56:38Jadi pakai komponen-komponen.

56:40Contohnya...

56:41Lebih cepatnya, lebih kayak jadi custom element.

56:44Custom component, nanti di-rendernya jadi itu, jadi email.

56:50Karena kan email tricky sekali ya.

56:52Kita nggak bisa pakai CSS.

56:53Harus pakai CSS inline, kan, satu.

56:56Itu udah penyusahkan sekali.

56:58Terus kemudian nggak bisa pakai layout yang kekinian, kayak pakai float.

57:05Kayak flex grid.

57:06Flex grid, float mungkin bisa ya.

57:08Harus pakai table, kan.

57:10Jadi itu rumit-rumit.

57:13Makanya butuh kayak ini.

57:16Basic layout, section, misalkan kan.

57:20Caranya gimana?

57:22Nah, ini.

57:24Udah tinggal tulis begini aja.

57:25Ada section, nanti dia akan jadi seperti...

57:28Kenapa nggak ada contohnya?

57:30Nah, ini.

57:31Ini section, mungkin header, ada arrow, ada body, dan lain-lain.

57:38Tapi dia bisa buat dynamic data nggak sih?

57:41Bisa ya?

57:42Harusnya bisa.

57:43Cuma syntax custom element dua.

57:47Coba kita lihat ya.

57:50Komponen.

57:53Gimana ya caranya?

57:54Nggak ada ya?

57:55Ini kan mungkin templatingnya doang.

57:57Mungkin untuk ininya...

57:59Bisa partial?

58:02Oh, oh iya tuh.

58:04Include?

58:05Include-as.

58:07Include, file inline.

58:09Kalau non-dynamic, misalnya tadi tuh newsletter, "Halo Eka, terima kasih sudah membeli kopi..."

58:19Itu kan berarti harus masukin customer name sama produknya.

58:28Variable apa?

58:31Kayaknya emang nggak.

58:33Kayaknya nggak ada ya.

58:35Tapi dia semacam custom element aja, dan bisa include.

58:39Kalau nggak salah, variable itu kan diproses sama si engine-nya, si email provider kan.

58:46Jadi konten.

58:47Oh, servicenya.

58:48Oh, kalau ini nggak nempel ke service apapun ya?

58:51Ini cuma bisa...

58:52Oh, iya.

58:53Ini iya, betul-betul.

58:55Jadi bisa, dia harus ada temannya nih kayak React, Komponen, atau pakai Ruby, atau pakai Python, PHP.

59:03Ini Laravel MJML.

59:08Jadi udah dibawa apa namanya, variable-nya.

59:13Ya nggak tahu ya, kita belum pernah pakai soalnya.

59:15Jadi belum dapat use case-nya yang cocok mungkin ya.

59:20Mungkin teman-teman di chat ada yang pernah pakai?

59:23Boleh ya bagi-bagi pengalamannya.

59:26Siapa tahu ada yang lebih berpengalaman dalam hal ini?

59:30Kita cuma tahu gitu-gitu doang, seandainya belum pernah pakai.

59:34Pertama, pernah pakai send grid sih sebenarnya kalau buat email.

59:37Lebih gampang aja.

59:39Nah, terakhir nih, penutup.

59:43Penutup kita akan bahas tentang...

59:45Dari HTML, yang baru itu ada yang namanya HTML Templatech kan.

59:50HTML, bukan.

59:52Oh, bukan.

59:54Bukan.

59:55Bukan, ini HTML Murni sih.

59:58Murni, Murni.

59:59Oh, ini maksudnya.

1:00:01Ini kayak custom element kan.

1:00:03Ini udah lama kali.

1:00:05Iya, tapi kan banyak yang nggak tahu juga.

1:00:08Oh, iya, iya.

1:00:10Kita ingat aja lagi.

1:00:12Gue pakai ini tahun berapa ya?

1:00:15Udah lama banget gue pakai ini template.

1:00:17Karena underscore itu bisa membaca template.

1:00:21Karena template ini nggak dirender kan.

1:00:24Jadi template ini kayak HTML template.

1:00:27Ada di markup, tapi nggak direnderkan dong.

1:00:31Jadi lebih menguntungkan pakai template daripada pakai element, tapi kita display now.

1:00:38Karena display now masih dirender.

1:00:40Kalau template jadi...

1:00:41Nambah-nambahin kerjaan.

1:00:43Karena ini bisa di skip.

1:00:45Iya.

1:00:46Underscore pakai ini.

1:00:48Salah satu kenapa kita menggunakan templating LNG adalah...

1:00:53Kan kalau kita mau bikin data tabular, pokoknya yang ada for loop, itu kan susah ya.

1:00:57Harus memenuhi JavaScript tadi kan.

1:00:59Atau templating engine kan.

1:01:01Kali dengan ini kan sebenarnya bisa.

1:01:03Tapi ternyata ini natively maksudnya dalam arti browser udah langsung bisa memproses ya.

1:01:09Enggak perlu pakai library tambahan.

1:01:12Contohnya disini misalkan ada table gitu kan.

1:01:15Terus kemudian dalamnya table isinya itu kan kita harus render satu persatu kan.

1:01:20Misalkan ada seribu row.

1:01:22Masing-masing row.

1:01:24Data-nya harus dimasukin ke seribu row.

1:01:27Wow.

1:01:28Nah kita pakai template.

1:01:30Pakai template dengan cara manual ini.

1:01:33Ini sangat manual ya.

1:01:34Makanya agak panjang gitu ya.

1:01:36Kita pen-pen.

1:01:38Kemudian baru di...

1:01:40Vanilla.

1:01:42Oh iya.

1:01:43Kalau manual ini murahan gitu ya.

1:01:46Vanilla.

1:01:47Frame bombnya vanilla.

1:01:49Oke.

1:01:53Nah cuman ini kayak yang kita omongin di episode web component sih.

1:01:57Custom elements sebenarnya oke bagus.

1:01:59Ini kan oke banget udah natively supported di browser.

1:02:03Tapi itu kayak nggak enak dilihat aja sih.

1:02:06Kayaknya rata-rata developer yang kecuali kepepet ya.

1:02:09Di luar kasus kepepet.

1:02:10Kalau lihat ini, aduh kok sintaksnya gitu.

1:02:13Tetap bisa juga kan dia.

1:02:15Maksudnya bukan...

1:02:17Ini kan dia cuma jadikan template dan itu jadi bisa di-clone.

1:02:21Jadi waktu mau language-nya apa aja sebenarnya bisa sih.

1:02:25Moja query.

1:02:27Ma... sorry.

1:02:28Language.

1:02:29Maksudnya pakai library Java segala apapun tetap bisa.

1:02:32Framework, UI framework apapun juga bisa.

1:02:36Iya.

1:02:37Dia kayak jadi dokumen, get element idea aja sebenarnya.

1:02:40Terus dapat HTML elementnya.

1:02:43Kita parsing atau inject...

1:02:48Value-nya.

1:02:50Udah jadi HTML element tinggal di append child kemana gitu.

1:02:54Kalau pakai library apapun sebenarnya bisa.

1:02:58Nah ada satu tambahan lagi kali ya.

1:03:06Untuk apa namanya.

1:03:08Mungkin ini tidak terlalu berhubungan sama templating language.

1:03:12Ini framework juga.

1:03:14I'll find.

1:03:15Ini adalah...

1:03:18Ini lagi Xdata.

1:03:20Button, add, click.

1:03:22Xdata.

1:03:24Ada Xdata, ada Xdata.

1:03:26Iya ini apa ya.

1:03:28Secara tidak langsung replacement dari jQuery.

1:03:32Jadi kalau misalkan butuh interactivity yang sederhana, ringan.

1:03:38Yang pasti client-side.

1:03:40Iya yang pasti client-side.

1:03:42Kita cukup menambahkan script SRC LPJS.

1:03:47Kemudian kita sudah bisa pakai templating language-nya dia.

1:03:50Termasuk onclick.

1:03:52Onclick-nya pakai add, click.

1:03:54Yang di sini Xdata.

1:03:56Xtool.

1:03:58Terus itu langsung kayak jaradin JavaScript di dalam string ya.

1:04:02Jadi kayak string open, 2 false.

1:04:06Itu kan berarti dia mau modifikasi, nge-declare, re-declare value-nya variable open.

1:04:12Iya.

1:04:14"Think of it as powerful as hell."

1:04:18Nah ini juga mungkin subjektif.

1:04:22Cuma dilihat kan randa gimana ya.

1:04:24Bisa.

1:04:26Ini ada kebutuhan.

1:04:28Contohnya kita cuma mau buat landing page yang simple aja.

1:04:32Cepet aja kan gak butuh sampai harus...

1:04:34Ngapain pakai CreateJS atau Next.js kan.

1:04:39Nah cuma ini subjektif lagi.

1:04:43Sekarang JavaScript juga udah bagus.

1:04:45Edmascript yang baru udah bagus.

1:04:47Landing page doang.

1:04:48Yaudah HTML JavaScript.

1:04:50Biasa aja lah.

1:04:52Kan butuh dibuat interaktif ceritanya.

1:04:54Interaktif.

1:04:56Masukin email.

1:04:57Jadi setiap diketik itu email-nya ada animasi apa?

1:05:01Dokumen.query selektor.

1:05:05Iya, iya, iya.

1:05:08Kembali lagi subjektif ya.

1:05:10Contoh mau bikin akordion.

1:05:13Akordion, tab item, atau simple slider kan lebih...

1:05:18Kalau ada kayak gini kan lebih cepet ya.

1:05:21Ya, ini akhirnya diantara vanilla dan framework.

1:05:27Jadi dia di tengah-tengah lah.

1:05:29Belum terlalu butuh framework, tapi vanilla udah agak susah.

1:05:32Kira-kira gitu.

1:05:34Gak tahu butuhannya kapan.

1:05:36Pasti ada kok.

1:05:38Akordion bener kan?

1:05:40Akordion, modal.

1:05:42Oh, persis akses.

1:05:44Oh, ini berbayarnya ya.

1:05:46Oh, kelebihannya.

1:05:48Maksudnya kelebihannya adalah dia udah bikin komponen-komponennya.

1:05:52Jadi tinggal masukin aja udah.

1:05:55Tinggal kelpas.

1:05:57Iya.

1:05:59Tapi lumayan banyak juga ya.

1:06:01Ada teleport.

1:06:03Oh.

1:06:05Ada magic.

1:06:07Kayak react portal kali ya.

1:06:09Jadi kayak apa?

1:06:11N-nya bukan di situ, tapi N-nya bisa random.

1:06:14Bisa di luar lah. Bisa di body atau tempat lain.

1:06:18Oh, bisa masking.

1:06:20Yang buat ini buat...

1:06:25Betul.

1:06:27Ya, jadi kalau...

1:06:31Misalkan awalnya kan tadinya kita bikin landing piece atau bikin tema sederhana.

1:06:36Oh, butuh kebutuhan ini.

1:06:38Mau convert HTMLCCS itu ke react atau ke spell.

1:06:43Kayaknya terlalu jauh jalannya kan.

1:06:45Ya, pakai ini aja.

1:06:47Jalan tengahnya.

1:06:49Jadi agak niche ya ini ya.

1:06:53Si frame of ini ya.

1:06:55Enggak juga ya. Sebenarnya kalau kayak...

1:06:58Membangun...

1:07:00Apa ya, ibaratnya ya.

1:07:02Dashboard.

1:07:04Ini aja bangun dashboard yang kita punya server side rendering.

1:07:08Masih server side rendering.

1:07:10Terus di aplikasi...

1:07:12Misalnya kita...

1:07:14Sales report untuk point of sales lah.

1:07:19Jadi bagi pengguna yang untuk lihat tampilan...

1:07:23Cuma lihat sales chart, lihat table-nya.

1:07:26Kayaknya pakai kayak gini cukup ya.

1:07:28Cukup ya.

1:07:30Atau ada lagi sih use case-nya.

1:07:32Gimana, gimana?

1:07:34Nah, use case-nya adalah...

1:07:37Programmer atau developer yang bukan...

1:07:40Yang ga suka, yang ga jarang pakai front-end...

1:07:43Mundirin sama sekali.

1:07:45Gak mau belajar react, ga tertarik.

1:07:47Mungkin emang bukan kerjaannya gitu lah.

1:07:49Misalnya mungkin selama ini ada lebih banyak focus back-end.

1:07:52Tapi pepet harus bikin front-end...

1:07:54Cepet dan ga mau belajar...

1:07:56Maksudnya ga minat...

1:07:58Ngedelemin ekosistem react dan lain-lain.

1:08:01Cuma pengen yang cepet jadi plug-and-play.

1:08:04Phone-nya kalo di-click, ini buka kalo di...

1:08:07Itu tadi masking input, misalnya...

1:08:09Gimana caranya biar format-nya...

1:08:11Format inputnya, date, month, year.

1:08:14Gak tertarik teknologi front-end apapun itu lainnya.

1:08:18Sebagai contohnya, kayak...

1:08:21Framework PHP, contohnya yang YI.

1:08:24YI framework tuh, yang sudah menyediakan...

1:08:27Cerutnya by core gitu.

1:08:31Cerutnya sudah jadi.

1:08:33Kebutuhan datanya sudah jelas.

1:08:35Table-nya sudah jelas, sudah tau.

1:08:37Hanya tuh tinggal menampilkan table data...

1:08:39Yang sebagai cakep dan ada interactivity-nya.

1:08:43Ngapain pusing pakai Next.js gitu.

1:08:46Dibuat headless, contohnya ya.

1:08:49Setup-setup...

1:08:51Buat tabelnya...

1:08:53Kata-kata... Seperti dulu mungkin ya...

1:08:57Project ERP 2 minggu kelar, gitu.

1:08:59Contoh.

1:09:01Ya bener-bener.

1:09:03Kan bisa juga kan?

1:09:05Iya. Maksudnya yang gak butuh...

1:09:07Gak butuh apa ya? Gak butuh di...

1:09:09Transpilasi dan lain-lain kan butuh...

1:09:11Banyak ini kan.

1:09:13Kalo Alpine tetap butuh di Transpile kan?

1:09:15Dia tetep ada prosesnya kan?

1:09:17Enggak.

1:09:18Enggak ya? Langsung?

1:09:19Enggak.

1:09:20CDN Unpacked tadi langsung pakai interactivity-nya jadi?

1:09:24Iya.

1:09:25Itu salah satu penggulannya dia CDN aja.

1:09:27Jadi cuma drop aja langsung jadi gitu.

1:09:30Jadi ya lumayan lah buat menambah-nambah...

1:09:34Perbenaraan Library.

1:09:37Jadi jangan langsung jump in ke Library yang terlalu besar.

1:09:40Karena juga berpengaruh ke performa juga ujung-ujungnya.

1:09:43Tapi tetep mengerti tujuannya.

1:09:46Mengerti concert-nya.

1:09:48Di belakang kasusnya.

1:09:50Cara kerjanya.

1:09:51Dipakailah teknologi yang sesuai dengan kebutuhan.

1:09:54Iya, jangan berlebihan.

1:09:56Iya, tadi bener sih.

1:09:58Setuju dengan Eka tadi.

1:10:00Ada tipikal orang yang backend banget.

1:10:04Dan dia gak mau jadi host tech, gak mau belajar front-end.

1:10:06Yaudah pakai...

1:10:08Atau kelamaan, maksudnya dikejar waktulah.

1:10:10Masa belajar front-end dulu?

1:10:12Orang program yang perlu jadi sekarang?

1:10:14Gak cair. Nanti PHR gak cair.

1:10:18Saya kan lebih sering urusannya sama backend dan JavaScript.

1:10:23Kalau sudah disuruh CSS pusing kepala saya.

1:10:25Ya, tailwindin aja.

1:10:27Ya, tailwindin aja gitu ya.

1:10:29Kalau saya harus belajar...

1:10:31Masanya belajar lebih banyak mengenai...

1:10:33CSS.

1:10:35Konsepsi CSS yang mendalam.

1:10:37Butuh waktu.

1:10:39Waktu adalah uang.

1:10:41Sedangkan...

1:10:43Saya...

1:10:45Sulit banget.

1:10:47Artnya belum sampai gitu.

1:10:49Ya, udahlah pakai tailwind aja.

1:10:51Oke.

1:10:53Bahkan pun tailwindnya pun...

1:10:55Kalau misalkan ada budget...

1:10:57Bisa pakai yang tailwind component UI itu.

1:10:59Tailwind UI, tinggal copy paste, copy paste jadi.

1:11:01Walaupun nanti ujung-ujungnya...

1:11:03Website-nya mirip-mirip sama yang lain.

1:11:05Sama kayak...

1:11:07Contohnya library untuk bikin chart.

1:11:09Kalau mau canggih, bikin aja chart sendiri.

1:11:12Cukup pakai.

1:11:14Tapi kalau saya, mah enggak.

1:11:16Saya tinggal kasih tau klien.

1:11:18Saya buka chart yang paling mahal.

1:11:20High chart, cakep.

1:11:22Beli license-nya, tinggal pasang.

1:11:24Pakai, sesuaikan option-nya.

1:11:26Jadi deh, cakep.

1:11:28Mungkin kalau dibalik nih.

1:11:32Kebalikannya juga kayak misalnya...

1:11:34Sekarang kan banyak tuh yang kayak kita bahas kemarin.

1:11:36Backend as a service.

1:11:38Terus kayak ORM yang segala ada.

1:11:40Kayak Prisma, itu kan...

1:11:42Mungkin kalau orang yang...

1:11:44Ngedalemin banget backend, mungkin...

1:11:46Itu ya, nggak sesuai...

1:11:48Nggak sesuai selera.

1:11:50Cuma kalau buat orang yang kayak frontend.

1:11:52Atau nggak terlalu ngedalemin.

1:11:54Nggak bisa my SQL.

1:11:56Nggak terlalu ngerti database.

1:11:58Ya kan, biar cepet.

1:12:00Jadi ya...

1:12:02Pake superbase, udah tinggal panggil...

1:12:04Atau kemarin tuh, pakai directis.

1:12:10Direktis.

1:12:12Direktis.

1:12:14Direktis.

1:12:16Direktis.

1:12:18Terutusnya direktus.

1:12:20Bacanya direktis.

1:12:22Ya itu.

1:12:24Itu kan intinya biar kita bisa...

1:12:26Get up and running, memproduksi MVP.

1:12:28THR cair.

1:12:30Ya.

1:12:32Siap, siap, siap.

1:12:34Oke, kalau gitu.

1:12:36Untuk ngobrolin templating language.

1:12:38Mungkin udahan dulu.

1:12:40Terima kasih buat teman-teman yang sudah nonton.

1:12:42Terima kasih juga yang sudah...

1:12:44Bagi-bagi ideal.

1:12:46Buat topik.

1:12:48Jangan lupa, kita masih menunggu.

1:12:50Topik-topik menarik dari teman-teman.

1:12:52Kira-kira teman-teman ingin...

1:12:54Kita membahas apa.

1:12:56Mengobrolin apa.

1:12:58bisa ke bit.ly/ngobrolin

1:13:00Terus juga...

1:13:02Mungkin...

1:13:04Minggu depan kita bahas apa.

1:13:06Ya tunggu aja.

1:13:08Jangan lupa di subscribe juga channel-channel kita.

1:13:10Di youtube-youtube terdekat.

1:13:12Terdekat.

1:13:14Sampai jumpa.

1:13:18Minggu depan di hari Sulasa.

1:13:20Kembali lagi.

1:13:22Mulai episode ini dan episode berikutnya kita...

1:13:24Balik lagi ke jam 8.

1:13:26Karena puasanya sudah lewat.

1:13:28Di Sulasa malam jam 8.

1:13:30Minggu depan kita bakal live lagi ya.

1:13:32Minggu depan kita bakal live lagi karena...

1:13:34Minggu ini kita masih dalam...

1:13:36Sulasana lebaran jadi kita...

1:13:38Diburan dulu lah.

1:13:40Maksudnya...

1:13:42Ngobrol terus.

1:13:44Sampai jumpa di episode berikutnya.

1:13:46Bye.

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Rahasia Dibalik Konfigurasi File: INI, XML, JSON, YAML, TOML - Mana yang Terbaik? - Ngobrolin WEB
EP 62

19 Des 2023

Rahasia Dibalik Konfigurasi File: INI, XML, JSON, YAML, TOML - Mana yang Terbaik? - Ngobrolin WEB

Video ini akan membawa Anda dalam petualangan menjelajahi berbagai format file konfigurasi yang populer di dunia teknolo...

Alat Desain AI - Ngobrolin WEB
EP 167

19 Mei 2026

Alat Desain AI - Ngobrolin WEB

🕸️ Selasa malam waktunya #ngobrolinweb Semenjak era AI, developer yang tadinya punya desiign skill issue mendadak bis...

Bedah Web - Ngobrolin WEB
EP 166

12 Mei 2026

Bedah Web - Ngobrolin WEB

Berhubung banyak yang submit, malam ini kita akan kembali membedah beberapa situs. Penasaran gimana pendapat para pakar ...

Komentar