EP 142

Fundamental JavaScript - Ngobrolin WEB

Bagikan:

🗣️🕸️ Selasa malam waktunya #ngobrolinWEB! Malam ini kita akan membahas tentang berbagai topik fundamental JavaScript. Tentu saja bersama Ivan dan Eka. 🔔 Akan mulai mengudara pukul 20:00WIB ya. Yuk mari diramaikan! Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Ringkasan Episode

Bantu Koreksi

Episode ini membahas konsep fundamental JavaScript yaitu Closure. Para host menjelaskan secara mendalam apa itu closure, bagaimana cara kerjanya, dan mengapa konsep ini penting untuk dipahami oleh developer JavaScript. Diskusi dimulai dengan penjelasan bahwa JavaScript adalah bahasa dengan first-class function yang memungkinkan function dipassing sebagai parameter. Pembahasan mencakup konsep lexical scope, outer scope vs inner scope, dan bagaimana closure memungkinkan sebuah function mengakses variabel dari scope luarnya. Contoh kode praktis juga ditunjukkan untuk membantu pemahaman, termasuk perbandingan dengan bahasa lain seperti PHP versi lama dan C yang tidak mendukung first-class function.

Poin-poin Utama

  • Closure adalah teknik untuk implementasi lexical scope name binding dalam bahasa dengan first-class function
  • JavaScript adalah bahasa first-class function di mana function bisa dijadikan parameter (higher order function)
  • Closure memungkinkan function mengakses outer scope-nya, yaitu variabel di luar function tersebut
  • Berbeda dengan PHP lama (sebelum versi 7) atau C yang tidak mendukung callback di dalam function
  • Closure sering ditanyakan dalam interview JavaScript sebagai pertanyaan fundamental
  • Konsep enclosed mereferensi surrounding state, memungkinkan akses ke variabel di dalam scope tertentu
  • Pemahaman closure penting untuk memahami konsep lanjutan seperti memoization dan React hooks
Transkrip Bantu Koreksi

0:00[musik]

0:07[musik]

0:11Halo semuanya

0:16mana sih?

0:18ya ada semuanya

0:20ya semua

0:21lebih-lebih lama-lama

0:23[musik]

0:26lagi pada capek kerjaya

0:28iya

0:30biar semangat

0:32iya nih

0:34saya nggak ngantuk

0:36[musik]

0:38oke

0:39buat nanti bikin teh nih

0:40buat nanti bikin teh anget

0:42supaya

0:43teh dari China

0:44baru aja

0:46baru aja kerja ya

0:48iya nih baru

0:49baru selesai di set down

0:51nah nih gue tutup nih

0:53nah

0:54selamat malam mas Ricky

0:56halo

0:58curhat nih ceritanya curhat

1:00curhat ya

1:02tapi salah bikin teh kamu mill

1:04malah ngantuk

1:06teh kamu mill itu bikin ngantuk ya

1:08lebih bikin tenang

1:10oh bikin tenang

1:11bukan ngantuk

1:12bikin relax

1:14bikin relax ya

1:15kalau capek plus relax sama dengan ngantuk lah

1:17ngantuk

1:19beli teh nggak di China kemarin

1:21di Shanghai

1:23beli dong

1:25banyak jual di mana-mana

1:27di Beijing

1:29liat harga tehnya

1:31mahal-mahal

1:33ada yang teh

1:35setan aja deh

1:37balik ke teh

1:39teh itu

1:41takut ketagihan

1:43dia banyak teh ininya mas

1:45banyak teh

1:46di emperannya tuh

1:48jualnya tuh sudah teh yang campur-campur gitu

1:50ada yang teh bunga

1:52ada teh bunga

1:54jadi tehnya banyak

1:56di mix

1:58yang di Shanghai kemarin ya

2:00yang di Beijing tuh

2:02waktu minum teh

2:04waktu malam yang pertama kali

2:06kita minum tuh malam yang pertama

2:08kan dikasih

2:10teh malam pertama

2:12teh hitam ya

2:14black tea ya black tea

2:16itu enak banget

2:18baru nyampe trus minum itu aduh enak banget

2:20bukan black tea

2:22itu kan

2:24kalau yang dina pertama itu

2:26dinner-dinner

2:28oh

2:30entah

2:32karena yang malam yang pertama itu

2:34saya kan sama Pak Dika

2:36dalam

2:38Diza Nebe

2:40oh bagi kedua

2:42yeah acara resmi pertama

2:44oh acara resmi pertama

2:46yang kita ketemu

2:48temen-temen yang lain

2:50udah ngumpul semua

2:52lupa

2:54itu luar biasa enak

2:56trus pas hari terakhir yang

2:58kita mau cari oleh-oleh begitu masuk ke toko teh

3:00waduh ini harganya

3:02maru

3:04itu yang toko

3:06yang kita sengaja nyari

3:08soalayan muslim gitu kan ya

3:10soalayan halal gitu kan

3:12yang apa

3:14yang isinya

3:16gak tau apa aja tuh bingung

3:18kayak barang-barang disusun

3:20berceseran gitu bingung juga

3:22mau beli yang itu

3:24iya

3:26ya gitu lah pokoknya selama disana

3:28minum teh tuh enak banget

3:30saking enaknya gak perlu pakai gula

3:32pun udah enak banget gitu kalau disini harus ditambah

3:34gula baru berasanya

3:36kalau disana kayaknya

3:38malah tabu ya pakai gula karena jadi

3:40kayak mengubah rasanya

3:42mengubah rasa

3:44kalau disini kalau gak ditambah gula ya

3:46karena mungkin itu kan

3:48sama aja kayak kopi kurang

3:50kalau kopi yang enak

3:52gak pakai gula juga udah enak

3:54gak kayak gue mau cari teh

3:56tanpa gula di Thailand itu

3:58gak bisa

4:00minta teh dikasihnya teh susu

4:02teh bukan

4:04teh susu kental manis

4:06teh susu gak pakai gula

4:08tapi pakai kental manis

4:10iya dan mereka bingung

4:12"lo mau apa?"

4:14kalau minta teh biasa

4:16berarti sama gula sama kental manis juga ya

4:18pokoknya teh langsung gula kental manis

4:20udah IT gitu

4:22gak bisa minta teh tanpa gula gitu

4:24gak ada cerita

4:26sekarang bayangin

4:28bayangin orang Thailand

4:30pergi ke Tiongkok, pergi ke China

4:32kusing deh

4:34minta teh "ini apa?"

4:36dikasih teh, dikasih teh

4:38dianggup sepet lagi, udah sepet, pahit

4:40gak manis, gak ada susunya

4:42sebenarnya teh itu kalau sepet itu

4:44berarti udah lama Eka

4:46teh itu sebenarnya kalau sepet

4:50salah

4:52kalau teh itu kalau sudah sepet

4:54iya kalau sudah sepet

4:56berarti kelamaan di rendam

4:58teh itu sebenarnya enak yang paling awal

5:00iya emang ada

5:04tergantung daun-daun

5:06ada yang kayak kayu-kayuannya

5:10buat yang biasa minum kubuman

5:12dan milki kan

5:14dianggup sepet dong

5:16pasti taste

5:18natural taste dari

5:20kayu-kayuan

5:22nah kalian pada

5:24pada nge-teh

5:26kalau sambil kerja, teh apa?

5:28komentar di kolom ini

5:30dan kalian coffee person

5:34atau...

5:36kalian minum apa pas lagi kerja?

5:38iya

5:40yang kerja suka teh atau coffee?

5:42lambangnya java script kan

5:44itu kan, lambangnya java script

5:46ada teh kan?

5:48java, coffee

5:50kan java sama java script

5:56sama

5:58beda lah

6:00java script

6:02di namain java script

6:04sebagai gimmick karena java lagi trend

6:06itu ada di episode berapa ya?

6:08kita sekalian di plan episode lama

6:10ini kita buang-buang waktu

6:12karena bingung sama topik ini

6:14yang harap sabar yang nonton

6:16biasa, iya pokoknya ada deh

6:18di episode dulu

6:20kita tunggu komen temen-temen

6:22baru ada Ricky disini, yang lain

6:24komen juga lah, baru kita mulai

6:26jadi kita belum waktu, sebenarnya

6:30otak saya belum nyambung

6:32karena baru aja nge-switch

6:34antara kerjaan

6:36makan buru-buru, dan langsung mulai

6:38jadi otaknya masih

6:40lagi pada sibuk ya

6:42lagi hektik

6:44lebih tepatnya

6:46biasa, agustus kan

6:48kenapa agustus, ada apa dengan agustus?

6:50kan ada siklus kehidupan

6:52itu sih, siklus kehidupan itu

6:54quarterly

6:56quarter kan, kalau misalnya

6:58di apa

7:00kalau nanti sudah

7:02habis ini quarter 4 nih

7:04quarter 4 itu sudah adalah

7:06kalau di dunia agensi dan enterprise itu

7:08quarter 4 itu adalah

7:10suatunya menyusun

7:12planning tahun depan dan

7:14apa namanya, pembiayaan

7:16apa, prokosal

7:18jadi

7:20budgeting

7:22terus bulan 1

7:24itu biasanya masih

7:26baru layih-layih

7:28baru habis

7:30habis new year

7:32nanti quarter 1 nya itu mulai

7:34kayak

7:36prokosal mana yang

7:38harus sijalankan

7:40dan quarter 2, quarter 3 itu sibuk

7:42nanti quarter 4

7:44laporan lagi dan budgeting lagi

7:46ya ini kan quarter 3

7:48diujung, sebentar lagi

7:50ujung quarter 3 kan

7:52sebentar lagi

7:54jadi

7:56sales sudah lewat

7:58sekarang lagi delivery

8:00itulah siklus kehidupan

8:02developer

8:06apa konsultan-konsultan

8:08konsultan

8:10jadi sebenarnya

8:16malam hari ini kan kita mau bahas tentang

8:18fundamental JavaScript, spesifiknya

8:20tentang closure

8:22mungkin tambah

8:24yang lain juga hosting

8:26ya hosting

8:28mumpung nih

8:30kalau biar

8:32makin seru kali ya

8:34teman-teman yang ada di

8:36yang lagi nonton, baik itu di

8:38LinkedIn atau di YouTube, boleh dong

8:40komen kira-kira ada

8:42topik fundamental JavaScript

8:44apa yang masih

8:46belum paham atau masih bikin bingung

8:48atau

8:50mungkin ada

8:52masih ingat ada beberapa pertanyaan

8:54interview yang berhubungan

8:56dengan topik JavaScript

8:58kita pengen tahu kira-kira yang ditest apa

9:00misalkan kayak, apa itu memoization

9:02di React itu kan sering ya

9:04pakai aja use memo

9:06tapi kan Reaction 16

9:10use memo sudah mulai ditirak

9:12sudah nggak ya, mulai ditirak

9:14contoh

9:16misalkan

9:18kalau React kan paling sering kan

9:20apa itu visual DOM

9:22eh virtual DOM, kok visual

9:24virtual DOM

9:26virtual DOM

9:28aku sampai bingung, apa sih visual DOM

9:30empat gue enggak tau ya

9:32iya

9:34itu

9:36siapa tahu kita bisa diskusi bareng-bareng

9:38aja lah ya, diskusi bareng-bareng

9:40tapi kalau nggak ada nggak apa-apa, kita bahas tentang

9:42closure

9:44apa itu closure

9:46penutupan

9:48penutupan

9:50closure itu kan

9:52penutupan

9:54oh iya

9:56closing ya

9:58closing

10:00bener juga

10:02kumpen Ivan bener

10:04kumpen, jahat banget

10:06biasanya ngaco

10:08iya

10:10jadi kalau di matematika ya

10:12istilahnya istilah matematika ya

10:14atau programming

10:16lanjut ya

10:18closure itu adalah

10:20teknik

10:22untuk implementasi

10:24leksikalscope name binding

10:26apa lagi

10:28oke

10:30in a language with

10:32first class function

10:34iya

10:36jadi bahasa fungsional ya

10:38JavaScript adalah

10:40bahasa yang first class function

10:42maksudnya apa, kelihatannya ini maksudnya

10:44function itu bisa dipasang sebagai

10:46programming kan ya

10:48iya, betul

10:50higher order function

10:52bahasa di mana

10:54function itu bisa

10:56di-oper-oper ke berbagai

10:58scope kan, berarti

11:00kalau dimasukin sebagai argument

11:02function itu bisa dipanggil

11:04dijalani di dalam

11:06function di dalam function

11:08yang mana itu berbeda scope

11:10nah, sebagai

11:12pembanding

11:14gimana Irvan, sebagai pembanding

11:16php jaman dulu

11:18di 54, php

11:20mungkin temen-temen bisa

11:22salahin nanti ya, php yang sebelum

11:247 itu kita nggak bisa

11:26bikin callback di dalam functionnya

11:28php contohnya, atau di

11:30C gitu kita nggak bisa panggil

11:32function di dalam

11:34function sebagai parameter

11:36di dalam sebuah function

11:38function sebagai parameter

11:40iya, kalau di

11:42JavaScript malah ada

11:44function bisa

11:46menjadi nilai untuk

11:48return, return value kan

11:50bisa jadi function kan

11:52ya, di return, ya kalau bisa dipasukin

11:54sebagai argument, bisa

11:56dikembaliin lagi ke atas

11:58tapi itu bukan

12:00istilahnya, bukan first class

12:02function ya sebutannya ya, itu mungkin

12:04apa ya namanya ya, kayak

12:08querying, bukan ya

12:10atau partial application, ya gitulah

12:12pokoknya, jadi

12:14first class function apa?

12:16tanya, sama

12:18JPD, Jemenai

12:20JPD, Jemenai

12:22dan teman-temannya

12:24intinya kan

12:26first class function itu

12:28kalau secara harfiahnya adalah

12:30fungsi di

12:32levelnya itu setara dengan

12:34variable dan struktur data yang lain

12:36seperti

12:38jenis variable lainnya

12:40ya, jadi sama lah

12:44tingkatannya

12:46stratanya sama, jadi

12:48jangan heran kalau

12:50fungsi itu bisa dimasukkan ke dalam

12:52struktur data kayak struktur data

12:54objek

12:56kalau tidak semua

12:58bahasa bisa seperti itu

13:00first class function

13:04kalau kata JPD begini

13:06function bisa

13:08di assign sebagai

13:10variable

13:12ada numerous function, oke

13:14bukan, di assign sebagai

13:16variable, oh, beda lagi

13:18ini ada contoh

13:20kodanya biar saya tunjukin, biar

13:22enak

13:24ada, ada, ada

13:26oh

13:28stop screen

13:30say hello sama teman

13:32saya sepindahkan dulu, ya betul

13:36nah, entire screen aja

13:38biar gampang

13:40nah

13:42sudah?

13:44sudah, gedein

13:46gedein dong, sembunyiin

13:48nah, sudah

13:50iya, kan ini

13:52anonymous function, grid ini

13:54kan anonymous function

13:56disimpan ke variable

13:58buka anonymous

14:00functionnya kan gak ada nama nih

14:02jadi variable

14:04jadi variable-nya

14:06gara-gara ada variable, jadi ada namanya

14:08coba kalau gak ada grid-nya, function

14:10langsung name kan gak ada nama kan

14:12ini anonymous function

14:14itu maksudnya

14:16kalau yang nomor 2, baru ada

14:18name function, bener gak?

14:20ini name function, ya

14:22name function

14:24ya, jadi kalau

14:26first class function, tapi keliatannya

14:28point, apa, point definisi

14:30first class ya bukan anonymous atau

14:32keliatannya, tapi bisa di assign ke suatu variable kan

14:34iya, level-nya kan sama

14:36bisa dimasukin ke variable

14:38jadi kayak bisa distur

14:40bisa distur di memory maksudnya

14:42iya

14:44bisa masuk ke variable

14:46di memory, jadi bisa dipanggil grid nih

14:48grid event, gitu kan

14:50bisa dipas sebagai

14:52bisa di-over sebagai argument

14:54nah, jadi yang

14:56di-lookup ini-situ bukan

14:58name function say hello-nya sendiri

15:00tapi si argument FN itu

15:02iya

15:04kalau teman-teman familiar dengan callback

15:06lah, inilah dia callback ya

15:08callback function

15:10konsepnya dari sini

15:12maksudnya, apa, apa itu

15:14first class function

15:16itu language

15:18bahasa apapun yang men-support

15:20hal-hal seperti ini kan

15:22berarti ada bahasa di mana

15:24function cuma bisa dijalani doang

15:26tapi gak bisa disimpen, gak bisa di-over-over

15:28ke sana-sini

15:30yang ketiga

15:32yang ketiga ini, kalau misalnya

15:34fundamental-nya belum ngerti

15:36pada asal pakai aja mungkin

15:38kalau di framework ya, nah ini tuh

15:40masih return function from another function

15:42kita lihat nih ya, multiplier ada

15:44faktor, dan dia return function

15:46x, dan x kali factor

15:48jadi si multiplier itu diisi

15:502, berarti kan faktornya 2 nih

15:52yang dipakai di dalam

15:54function return-nya

15:56iya kan

15:58nah, terus double itu kan

16:00berarti jadi function, karena

16:02return dari multiplier itu kan

16:04function ini kan

16:06iya kan, yang di mana

16:08faktornya 2

16:10pengali nya 2

16:12terus tinggal dipanggil double

16:145

16:16jadi kalau misalnya mau setup

16:18triple, berarti multiplier

16:203, triple

16:22x, eh

16:24berapapun lah ya

16:26jadi bisa dibikin

16:28ya function, return function

16:32dan function itu dipanggil

16:34bingung kan

16:36itulah first class

16:38ya sebetulnya, kayak

16:40itu kan fungsinya buat

16:42tujuannya buat bisa

16:44access atau bisa ngejalanin function yang

16:46di dalam itu tuh, yang di dalam

16:48multiplier, tanpa

16:50kayak, tanpa mengexpose lah

16:52tanpa mengexpose

16:54dalamannya multiplier itu kayak gimana

16:56apanya bagi yang

16:58manggil dari luar, yaudah

17:00panggil apa, bikin function-nya

17:02pakai multiplier aja

17:04betul

17:08atau bisa dipanggil langsung, pakai

17:10apa namanya, pakai kurung bulet 2 kali

17:122 kali, pertama kali

17:14ketemu itu, bingung tuh

17:16multiplier, malah bingung ya

17:18malah bingung ya

17:20dua, multiplier, dua

17:22dalam kurung lagi

17:24ya, karena kan

17:26fungsinya ada dua nih

17:28makin ke dalam, bisa-bisa

17:34begini lagi, kalau makin banyak return

17:36kalau ada lagi, return lagi ya

17:38nah

17:40closure itu

17:42yang konsep yang ketiga nih, ya mana tadi

17:44oh, udah-udah

17:46biarin, biarin

17:48ke definisi closure berarti

17:50nah, closure itu

17:52seperti ini

17:54kan tadi ini kan multiplier ya

17:56ada

17:58variable

18:00dari screen saya tadi

18:02iya

18:04hebat kan

18:06hebat banget

18:08manual

18:12oke, tadi

18:14menunjukkan multiplier 2 sama 3 kan

18:16udah ya, nah

18:18yang

18:20berhubungan dengan closure adalah

18:22ini, jadi ini

18:24ada sebuah parameter

18:26yang bisa dipakai di dalam fungsi

18:28di dalamnya

18:30itulah closure

18:32jadi dia bisa dapat

18:34konteks ya, bisa dapat konteks dari

18:36parameter

18:38apa, parentnya

18:40atau orang tuanya

18:44kalau anak, sekarang mungkin

18:46ngerti nya arrow function kali ya mas Tiza

18:48arrow functionnya, multiplier, terus

18:50dibikin arrow function, terus dibikin

18:52cons, gitu ya

18:54ya, itu tidak masalah

18:56itu simptak, sama aja kan

18:58harus refresh dulu nanti error soalnya

19:00scope-nya sama gak sih

19:02skopnya sama

19:04kalau di arrow function

19:06kayaknya ada perbedaan

19:08iya, kayaknya

19:10ada deh, ada bedanya apa ya

19:12return

19:14function lagi

19:16bisa langsung, bisa

19:18x ya, ya

19:20x kali fator

19:22pake tanda kurung apa ya

19:24yang return functionnya

19:26kayaknya bisa

19:28enggak tuh, bisa

19:30bisa tuh

19:323

19:34yay

19:38karena arrow function itu dia

19:40explicit return ya, oh iya

19:42anak sekarang taunya ini

19:44bukan yang tadi ya

19:46oh enggak juga, anak sekarang kan

19:48pake itu coding assistant

19:50nah coding assistant-nya

19:52training-nya pake data lama, jadi munculnya

19:54function, pake keyword function semua

19:56anak sekarang banget

19:58itu function lagi, train itu

20:00muter

20:02sebenarnya intinya itu, jadi

20:04lebih gampang

20:06yang tadi sih kalau menjelasinnya ya

20:08jadi si fator ini kan sebenarnya

20:10hanya bisa digunakan di sini

20:12sebenarnya kan

20:14apa ya, umumnya

20:16hanya bisa digunakan di sini kan

20:18tapi ternyata

20:20di dalam sini pun dia bisa dapat

20:22dia bisa

20:24dari atas ke bawah gitu ya

20:26kalau hoisting dari bawah ke atas

20:28dia ngikut

20:30jadi si fator ini

20:32di include ke dalam

20:34context

20:36atau closure ya

20:38ke dalam sini, jadi

20:40di sini ada, di sini juga ada, bisa

20:42tapi tidak sebaliknya

20:44x di sini enggak ada

20:46apa yang terjadi kalau

20:48clash

20:52saya const

20:54lagi, jadi di dalam function

20:56x saya const

20:58saya define

21:00initial class, oh define

21:02pertanyaan bagus

21:04mari kita coba

21:06jadi di sini ada

21:08const factor ya

21:10sama dengan 5

21:1215

21:14itu

21:16apa yang terjadi

21:18multiplier

21:22fator ini bebas kan

21:242, 3 ya yang tadi ya

21:26jadi ketiban

21:28ketimpa

21:30ketimpa

21:32yang lebih kecil

21:34tidak error

21:36tapi dia bikin

21:38value baru lagi

21:40tapi kalau dipanggil sebelum

21:42return function, fator itu

21:442

21:46iya, kalau di sini masih

21:482 kan di atas sini kan

21:50redefine

21:52kalau dikasih console lock

21:54di baris setelah

21:56multiplier fator itu kan

21:58iya

22:02nah itulah kira-kira basic

22:04konsepnya itu

22:06kalau penjelasan yang lebih ramah

22:10ramah sama web dev

22:12buka di MDN aja

22:14MDN

22:16oke

22:18ya jujurlah kita kan

22:20sebenarnya apa, pelajarin ini

22:22selain biar ngerti basicnya

22:24kita biar bisa jelasin

22:26pas interview, udah kayaknya kepakenya

22:28iya, tujuannya itu sebenarnya

22:30sehari-hari kita udah pakai

22:32kalau paham soal basicnya, tadi kan udah

22:34kalau biar tahu basicnya

22:36kalau ketemu prinsipnya

22:38tapi kita harus bisa ngejelasin

22:40ulang in case interview

22:42nah ini lebih

22:44friendly ke web dev

22:46ini ya, jadi kata dasarnya ada

22:48enclosed ya

22:50enclosed

22:52enclosed itu

22:54mereferensi surrounding

22:56state, berarti

22:58kayak luarnya ya

23:00ini outer scope ya

23:02bukan, surround state itu

23:04state di dalam

23:06di dalam satu

23:08di dalamnya malah bukan di luarnya

23:10ya ini ngaruh ke, ini kan

23:14closure gives a function

23:16access to each outer scope

23:18jadi membuat

23:20si suatu fungsi bisa

23:22mengakses outer scope-nya

23:24kayak kalau tadi berarti

23:26dari argument, nipas ke

23:28multiplier ya

23:30ya, coba, tadi kan

23:32begini ya, gimana kalau

23:34apus semua faktornya itu

23:38iya, ini kita apus, misalkan

23:40saya punya

23:42A sama dengan 5

23:44eh, udah di enter, nggak bisa ya

23:48maksudnya, kemudian apa ini?

23:52misalkan disini, saya bikin function

23:54add, kemudian

23:56B, ya

23:58return A

24:00+ B, bisa nggak sih?

24:02bisa, asal, bisa

24:04tapi A-nya nggak boleh const, harus

24:06let lah

24:08coba, add

24:105, 10, bisa

24:12bisa, dia dapet kan

24:14ini kan outer scope nih

24:16A ini

24:18dikenali di dalam fungsi

24:20yang di return cuma value-nya doang, bukan function

24:22itu mah bukan closure

24:24yang di return value-nya doang, iya

24:28kan ini outer scope, ini inner scope

24:30closure

24:32A itu, A-nya dipakai kan

24:34tapi nggak ada

24:36cuma mau demonstrate

24:38outer sama inner scope ya

24:40tapi kalau ini kan

24:42berarti bukan closure ya

24:44karena nggak ada function yang di dalamnya

24:46add kan

24:48oh, kalau closure itu harus

24:50ada function di dalam

24:52nggak juga sih, nggak

24:54closure itu maksudnya

24:56gives a function access to outer scope

24:58entah itu function

25:00entah itu variable

25:02oh, nggak harus function ya berarti?

25:04nggak harus

25:06atau biar

25:08selaras gini deh

25:10function calc

25:12terus misalkan tadi

25:14ons A sama dengan 5

25:164 deh

25:18terus function

25:20add

25:22B

25:24return A

25:26plus B, gitu kan

25:28maksud EKA ya

25:30terus ini, terus ini

25:32gitu kan, sama aja kan sebenarnya

25:34iya

25:36oh iya, ini jalan doang ya

25:38dot add

25:40nggak bisa ya

25:42gimana ini cara manggil ya?

25:44nggak bisa ya?

25:46kan calcnya nggak terima argument

25:50nggak bisa

25:52nggak di return kok

25:54calcnya nggak terima argument

25:56dan functionnya jalan doang

25:58iya, salah

26:00bukan gini, bukan gini

26:02harus return function biar bisa

26:04dipakai lagi dari dua

26:06nggak, nggak

26:08maksudnya

26:10si A ini

26:12meskipun tidak di dalam function

26:14di scope yang

26:16terluar itu dia

26:18tetap bisa masuk ke function

26:20yang di bawahnya, gitu lah

26:22yang contoh tadi

26:24jadi nggak mesti fungsi

26:26nggak mesti fungsi

26:28oke, lanjut

26:30ini kan

26:34iya, ini ada contoh

26:36tuh, bener

26:38contohnya nih

26:40jadi

26:42kita punya variable

26:44ini masih pakai var lagi ya

26:46display name

26:52itu pakai

26:54variable diluar

26:56yang menjadikan ini closure

26:58iya, tetap harus ada functionnya kan

27:00berarti, walaupun functionnya nggak

27:02oh iya, functionnya nggak harus

27:04di return, si display name

27:06itu kan nggak di return, tapi

27:08dijalani aja di dalam situ

27:10iya, dipanggil

27:12tapi kurangnya itu tadi berarti ya

27:14kayaknya nggak deh, tapi ya oke lah

27:20kita tampung dulu ya

27:22nggak tau, ini juga apa

27:24pemahaman gue bisa salah

27:26kan soto-soto berdasarkan baca-baca

27:28doang juga sih

27:30ini create local variable called name

27:32and function called display name

27:34the display name function is

27:36an inner function

27:38that is defined inside

27:40init, and is available only

27:42within the key of the init

27:44jadi kan

27:46display name itu nggak bisa

27:48dijalani dari luar init

27:50iya

27:52jadi

27:56note that display name function has

27:58no local variable

28:00iya, tapi bisa

28:02mengakses name yang diluarnya

28:08gimana kalau 3 tingkat

28:10masih bisa nggak? misalkan ada name

28:12ada display name, di dalam displaynya ada

28:14return function lagi

28:16ada function something-something

28:18iya

28:20iya, harusnya nggak apa-apa, bisa-bisa aja

28:22bisa juga, tetap bisa ya

28:24oh, tapi name, ya coba aja

28:28namenya harus

28:30explicitly reoper nggak ya?

28:32oh, kayaknya gue bilang sih

28:34bisa, tapi coba aja

28:36function init

28:38let name

28:42sama dengan mozilla

28:44mozilla

28:46terus function

28:48display name

28:50display name

28:52terus console log

28:54console log name

28:56terus dalamnya function lagi

28:58terus, dalamnya function lagi

29:00return lah

29:02function display display name

29:04oh, nggak usah ya, jangan ya

29:06function return

29:08display full name

29:12display upper

29:14return function

29:18function aja, nggak usah di return

29:20iya

29:22mau return atau nggak? nggak usah?

29:24nggak, pengen nyoba

29:26persis-persis banget sama

29:28pengen nyoba persis

29:30contohnya mdn, tapi tingkat 3

29:32masih bisa

29:34mengakses name atau nggak

29:36bisa ya

29:38bisa, tetap bisa ya

29:40feeling gue juga bisa

29:42ya bisa, cuma di coba aja

29:44namenya

29:46name to upper

29:48case

29:50gitu ya

29:52lah, ilang

29:54lah, ilang

29:56yaa

29:58gimana

30:00kebanyakan pencet

30:02bawah

30:04ya nggak asik

30:06yaa

30:08nggak jadi deh

30:10langsung BT gitu

30:12udah langsung down gitu

30:14langsung down

30:16mendingin

30:18di copass aja lah

30:20balang lagi

30:22ok, masih semangat

30:24let's go

30:26function

30:28display upper

30:30name

30:32dia males gitu

30:34console log

30:36name dot

30:38to upper case

30:40ok

30:42eh, pake ini ya

30:44iya

30:46itu function dunia harus di jalan

30:48functionnya

30:50terus bawahnya

30:52jalan dun

30:54nah, iya

30:56kopass dulu, jangan sampai ilang

30:58ok

31:00eh, coba sekarang

31:02ini

31:04oh iya bisa

31:06bisa, bisa, bisa

31:08bener, bener

31:10sound effect, ok

31:12iya

31:14padahal tadi

31:16udah nebak bisa juga ya, cuma pas udah ngebuktikan

31:18bener, kayak seneng banget aja

31:20ok

31:22berarti kan maksudnya mau disusun

31:24bingket pun, ya behaviornya tetep sama

31:26maksudnya ke bawah tuh

31:28si variable namenya bakal

31:30tersedia terus di

31:32masing-masing inner-inner

31:34functionnya

31:36ada perbedaan di sini

31:38ini menarik nih

31:40karena kan sebelumnya

31:42sebelum IS-6

31:44itu hanya ada dua jenis scope

31:46function scope

31:48sama global scope

31:50variable yang dideklarasikan

31:52dengan var

31:54baik itu di function scope

31:56atau global scope

31:58maka dia akan

32:00jadi global semuanya ya, kalau var ya

32:02kalau var global

32:08jadi global scope, yes

32:10meskipun kita definisinya

32:12di dalam function pun, dia bisa diakses

32:14di luar function itu ya?

32:16enggak

32:18dia nggak hoistik

32:20hoistik ya? ok

32:22hoistik apa lagi?

32:24nanti kita bahas

32:26kalau hoistik, gue belum tahu sama sekali

32:28kalau closure-nya, ingat

32:30pernah belajar, tapi ya

32:32kalau dikasih data kan lupa

32:34ini kan

32:36X ini bisa diakses dari luar

32:38meskipun dia didefinisikan

32:40di dalam dengan menggunakan var

32:42tapi itu kan bukan function

32:44oh iya

32:46ini scope ya

32:48untuk contoh tentang scope

32:50penjelasan tentang

32:52scope dengan red line constant

32:54nah kalau yang

33:00menggunakan bahasa seperti C dan Java

33:02itu akan error katanya

33:04karena

33:06outside scope of X

33:08iya

33:10PHA juga karena turunan C++

33:12di S6

33:16ini

33:18tidak error karena dia berlaku

33:20secara global

33:22karena if ya

33:24kalau ini function

33:26kalau dia function

33:28jadi hoisting ya?

33:30bukan jadi hoisting

33:32tapi dia tersimpan

33:34sebagai global variable

33:36global variable, bisa diakses

33:38di luar ya? pokoknya sekali

33:40didefinisikan, berarti dia di bawah

33:42dia kan jalannya dari atas

33:44kebawah

33:46kalau led dan cons

33:48hanya di dalam

33:50scope tidak global

33:52jadi akan error ya

33:54tidak bisa diakses

33:56karena dia

33:58hanya

34:00berlaku di dalam

34:02scope ini saja

34:04ya di masing-masing block

34:06nah kalau teman-teman mau melakukan ini

34:08biasanya deklarasi dulu di atas

34:10led X sama dengan 0

34:12atau sama dengan 0

34:14led X doang

34:18abis itu baru disini diubah

34:20abis itu baru disini bisa diakses

34:22X sama dengan 1, X sama dengan 2

34:24nah ini cuma ilustrasi saja

34:26jadi C-style

34:28C-style

34:30nah ini baru closure

34:32nah tadi atasnya ada pengaruhnya tuh

34:34atas sedikit, scroll atas sedikit

34:36nah in addition blablabla

34:38closures are able to capture variable

34:40in all these scopes

34:42berarti disemua scope

34:44bisa diakses oleh

34:46bisa diakses ya

34:48ok contoh ada name tadi

34:50ini sama ya

34:52ada name kemudian ada function display name

34:54kemudian kita bisa return display name

34:56return berarti ini return function ya

34:58oh makanya tadi

35:00pemahaman gue tadi kayaknya gara-gara

35:02pelajarnya disini deh

35:04bukan lah

35:06mempasing function

35:08return function ya

35:10kayak tadi contoh kita

35:12yang pertama banget

35:14return function langsung sebenarnya bisa kan ya

35:16bingung kan

35:20make func

35:22ya ini persis kayak contoh chat jpt tadi

35:24gue juga dulu belajarnya dari ini

35:26makanya berasumsi maksudnya closure ya

35:28harus ada function

35:30di dalam function

35:32function di dalam function nya itu bisa dijalani

35:34dari luar function

35:36ini sama aja dengan init tuh

35:38ini sama aja dengan init

35:40cuman caranya berbeda

35:42hasilnya sama

35:44oh yang berbeda adalah

35:46display name inner function

35:48itu return

35:50dari outer function

35:52sebelum di execute

35:54jadi maksudnya contoh yang baru ini

35:56kalau yang di init tadi kan display name nya

35:58langsung dijalani di dalam

36:00function itu sendiri

36:02ya yang ini yang bawah ini

36:04kalau ini belum dikembaliin

36:06di return function nya doang

36:08tapi nggak di execute belum dijalani

36:10jadi kalau di bahas

36:12di behind the scene nya itu

36:14dia cuma di return pointer

36:16aja

36:18jadi kalau misalnya kita

36:20di console lock kan

36:22nanti dia F hasilnya cuman F doang

36:24yang kayak tadi kan apa tadi

36:30multiplier ya

36:32makanya kayak ya multiplier ya

36:34persis kayak contoh awal dari

36:36set GPT itu

36:38init tapi nggak pake kurung

36:40maksudnya ya init nggak pake kurung

36:42nah

36:44ini tandanya adalah sebuah function

36:46ini yang nonton

36:54udah makin bingung apa

36:56makin jelas

36:58kayaknya makin bingung deh

37:02nah ini

37:04berikutnya adalah contoh

37:06make adder

37:08oh iya

37:10yang tadi ya

37:12sama persis kayak contoh

37:14event set GPT tadi

37:16multiplier lah

37:18add 5, make adder 5

37:20kalau orang yang belum

37:22tau konsep closure atau belum

37:24menghasilkan bingung add 5 itu

37:26dikira bakal add 5

37:28kalau di console lock itu value padahal nggak

37:30itu juga function juga kan

37:32ternyata ada yang

37:36ada yang ngikutin ya

37:38makin jelas

37:42jelasnya huru besar semua lho

37:44itu sarkas

37:48atau gimana ya

37:50secur juga gitu

37:52kita meneluhas secara harfiah

37:54ya kita terima

37:56terima kasih

37:58tapi

38:00ini

38:02kayak

38:04gini

38:06oke ini kan

38:08kita punya fungsi

38:10yang menerima satu parameter

38:12kemudian meretun fungsi

38:14yang menerima satu parameter

38:16kemudian itu ditambahkan

38:18sebenernya kan sama aja kayak gini kan

38:20function add

38:22a, b return

38:24a + b

38:26atau x, y sama aja ya

38:28kan sebenernya kurang lebih fungsinya

38:30mirip kan seperti itu kan

38:32cuman ini

38:36dia bisa dieksekusi

38:38per satu parameter

38:40satu parameter nggak langsung dua

38:42bener kan

38:44ini bukannya partial ya

38:46atau querying ya

38:48nggak tau, selalu itu nyerah

38:52belum nyampe situ

38:54belum ya

38:56coba ya

38:58tanya aja di chat gpt lagi aja

39:00gimana tuh ini kasus ini

39:02coba gini

39:06kari

39:08makanan kari

39:10kuri

39:12c-u-r-r-y

39:14istilah matematika

39:22partial function

39:24iya partial function

39:26atau partial application

39:30iya betul

39:38bener kan

39:40itu kari

39:42mau dong

39:44kari

39:46yang di search kari makanan

39:50nggak, saya nanya ini

39:52saya nanya si

39:54chat gpt

39:56saya

39:58cuma mau mengatakan

40:02chat gpt-nya

40:04di approve dari

40:06saya pakai account company, jadinya

40:08enak ya, nggak perlu bayar lagi

40:10enak

40:12ya, terus

40:14karing means, terus kan kalau standard

40:16function-nya kayak Mas Liza bilang tadi kayak gini

40:18ya bener tuh

40:20versi kuri-nya

40:22function, function, dan terakhir

40:24terus panggil kayak gini

40:26dan kalau error function-nya kayak gini

40:28why kuring

40:32partial application, you can preset some argument

40:34and re-use the function

40:36kita bisa satu-an kan

40:38iya, jadi

40:40secara parcial

40:46berarti

40:48prinsip ini

40:50kalau function di dalam function

40:52namanya closure kan, itu yang

40:54dimaksud dengan closure, itu kalau

40:56ada function di dalam function

40:58bukan, closure itu

41:00variable-nya

41:02bukan cuma variable Mas Liza

41:04function yang di dalam bisa mengakses

41:06variable yang dari luar

41:08variable yang di atasnya

41:10ya, apapun yang di atasnya

41:12itu artinya closure ya, betul

41:14warisan-warisan

41:16bukan ya, kalau di OOP itu

41:18kan ada apa istilahnya, inheritance

41:20yes, yang kayak scoping

41:22tadi sih sebenarnya, scoping

41:24scoping ya, scoping ya

41:26apapun entah itu variable

41:28atau function

41:30atau class, dia bisa akses

41:32di dalam

41:34scope itu

41:36jadi kalau bisa di define di atas

41:38sampai ke bawah-bawah

41:40ke recursive bisa di akses

41:44nah, kalau gitu coba

41:46tanya chat GPT-nya

41:48bisa nggak generate contoh

41:50prinsip closure

41:52ya, termasuk yang mengakses variable

41:54itu, tapi jangan yang kita

41:56tanpa

41:58menggunakan inner function

42:00di dalam function

42:02contoh lainnya kayak gimana, soalnya

42:04kalau di MDN kan nggak ada

42:06gimana generate closure example

42:14yang bukan kayak gitu tadi

42:16yang bukan

42:20tanpa function

42:22di dalam function

42:24function, di dalam function

42:28kalau contoh yang tadi udah ngerti

42:32maksudnya gua udah paham, dan udah bisa

42:34ngejelasin

42:36kenapa itu closure, mana

42:38variable yang bisa di akses

42:40kalau di

42:42MDN dan lain-lain, semua contohnya

42:44bentuknya kayak gitu

42:46ada function yang jalan

42:48di dalam function, yang mana kalau dipanggil dari luar kan

42:50otomatis function yang di dalam itu

42:52ikut, dijalankan

42:54dengan

42:56argumen yang disupply dari luar

42:58kalau itu ngerti, nah coba pengen contoh lain

43:00yang bukan kayak gitu, yang bukan

43:02function di dalam function, tapi closure

43:04apapun disco parentnya bisa

43:10akses anak-anaknya

43:12tapi nggak mesti argumen kan

43:16variable pun bisa kan ya

43:18beda sih, maksudnya

43:22kalau misalnya

43:24si Eka, kalau tanpa function ya

43:26tanpa closure, itu

43:28semua bisa, semua

43:30bahasa pemograman bisa, karena

43:32misalnya kita bikin

43:34saya sambil show aja ya

43:38sambil show aja

43:40oke, kita kasih

43:44contoh dulu yang

43:46bukan yang Eka mau

43:48contohnya, delay message

43:50message sama delay

43:52terus ada set timeout

43:54message-nya apa, dan delay-nya

43:56dipanggil, ini di luar function ya, karena ini delay

43:58parameternya

44:00set timeout kan sebenarnya kan

44:02bisa dipanggil begini, delay message

44:04this is closure, 2 detik

44:06nah itu contoh

44:08contohnya, kalau yang

44:10contoh sebelumnya, kayak gini kan

44:12jadi security bisa di akses

44:14nah kalau itu kan contoh yang standar ya

44:16nah, sedangkan kalau

44:18kalau yang

44:20tanpa

44:22tanpa function ya semua pemograman

44:24bisa, contohnya ya kalau kita kayak

44:26function kayak gini

44:28misalnya, langsung

44:32grid aja kan, langsung console log

44:34aja kan

44:36jadi begini kan

44:40misalnya, atau

44:42ya kayak yang tambah-tambah tadi

44:46kayak yang pertama ya, yang pertama tadi

44:48nah, ini, itu termasuk

44:52contoh, demonstrasi, prinsip

44:54closure, atau bukan? bukan, bukan

44:56bukan, nah ya

44:58nah bukan, berarti mahamun

45:00gue udah betul kan, apa, harus

45:02ada functionnya yang membuat scope baru

45:04iya, yang membuat dia di dalam

45:08sebuah scope tersendiri, karena

45:10begini pun, kalau misalnya di bahasa pemograman

45:12lain tanpa closure

45:14if true, misalnya

45:16gitu ya, ini kan dalam sebuah

45:18sebuah block ya

45:20bukan scope ya, ini block

45:22fungisional block

45:24ini, ini kan tetap

45:26bisa

45:30tetap bisa sebenarnya, karena ya

45:32ini, di dalam sebuah

45:34namenya dianggap ada, namenya bisa

45:36di access, dari dalam

45:38sedangkan, kalau php

45:40kamu bikin begini

45:42gak bisa

45:44eh, bisa gak sih, return function

45:46function di dalam function

45:48bisa, function di dalam function

45:50tapi

45:52gak bisa begini, namenya gak ada

45:54echo name gak kan bisa

45:56di php itu

45:58unless variable name

46:00unless di php

46:02dibikin use name

46:04use name

46:06itu kan harus kipas

46:08variable name-nya, explicit

46:10ke dalam scope baru

46:12supaya

46:14ya kayak gini lah

46:16kipasin lagi

46:18kipasin

46:20jadi, jadi kaya itu ya

46:22prop drilling ya, kalau

46:24di react tuh ya

46:26hahaha

46:28gak tau prop drilling

46:30itu react jaman dulu, sebelum ada

46:32react jaman dulu

46:34yang gak pake konteks

46:36iya, masih prop

46:38dipasing, dipasing, dipasing

46:40ah, itu namanya

46:42ya cuma gak tau

46:44pake sih, tapi gak tau

46:46di setiap bagian UI kan

46:48misalnya kita mau nampilin text

46:50sesuatu, kalau user login

46:52tampilin ini, kalau nggak

46:54tampilin itu, nah itu kan

46:56berarti dari luar banget harus kayak terima

46:58terima prop, masing-masing

47:00komponen harus terima prop

47:02sebelum pakai state tuh

47:04masih ada gak ya contohnya

47:06sebelum ada state dan konteks

47:08sebelum ada state dan konteks

47:10nah gak, tapi

47:12berarti kalau balik ke prinsip kursor

47:14kalau gak ada function

47:16di dalam function, kan dia gak bikin scope

47:18baru ya, untuk

47:20mendemonstrasiin contoh itu

47:22berarti kan kayak secara gak langsung

47:24harus ada sesuatu yang bikin scope

47:26baru kan, di dalam function-nya

47:28biar itu bisa digulangkan

47:30iya, iya sih

47:36apa?

47:38itu udah, itu bukan scope

47:40itu udah, itu bukan scope

47:42itu udah, itu bukan scope

47:44itu udah, itu bukan scope

47:46itu kan berarti belum ada

47:48itu udah, itu bukan scope

47:50jadi

47:52kalau misalnya di interview kita ditanyain

47:54ini closure atau bukan

47:56kita bisa dengan yakin bilang gak kan

47:58karena gak bikin scope baru alasannya

48:00jadi mungkin alasannya bukan karena

48:02bukan cuma karena gak ada function

48:04di dalam function, tapi karena gak ada

48:06scope baru yang

48:08gak bikin scope baru yang mana

48:10bisa mengakses si variable A atau B

48:12itu kan

48:14ada gak ya

48:16chat GPT bisa dilatih, jadi pelatih

48:18interview beginian gak sih?

48:20biar PD jawabnya

48:22iya, iya menarik juga ya

48:24biasanya, ini ya temen-temen

48:26ada, mungkin ada

48:28pengalaman pertanyaan-pertanyaan

48:30interview seputar Javascript

48:32apa sih, apa aja sih yang ditanyain

48:34nah, jadi kayak yang

48:36baru-baru ini, di interview

48:38nggak, kayak yang

48:40baru-baru ini nih kita

48:42gak ribut-ribut sih, cuman

48:44kita jangkir balik otak

48:46mikir, apakah

48:48untuk disebut closure, harus function

48:50di dalam function, itu kan sebenarnya kalau di dunia

48:52nyata, ya gak penting-penting amat juga ya

48:54yang penting kita bikin unit testnya aja semua

48:56udah sesuai sama expected atau belum

48:58kita kan bakal lihat sendiri, kalau ada yang

49:00kalau yang, ya maksudnya kita

49:02pasti ngejalanin, dan kita bikin unit testing

49:04kalau ada variable yang kita expect

49:06ada, taunya gak ada, ya berarti harus

49:08ngepro, harus error, ya kan

49:10gak ada yang bakal nanya juga, ini closure

49:12atau bukan, pertanyaannya adalah

49:14ini jalan, jalan dengan

49:16ini jalan sesuai expectation atau

49:18nggak, ya cuman, maksudnya tanggung jawab kita

49:20harus bisa ngejelasin aja

49:22ini ada contohnya nih, mau coba nggak

49:24pertanyaan Javascript

49:26fundamental

49:28iya

49:30iya, yang tentang closure lah, jangan

49:32tentang lain-lainnya, topiknya lagi closure

49:34iya

49:36nggak apa-apa, nggak apa-apa

49:38kan udah jelas kan ya, closure

49:40kalau teman-teman ada pertanyaan seputar

49:42closure boleh ya

49:44boleh ditanyakan

49:46hoisting, oh beneran ada closure ya

49:50iya

49:52hoisting

49:54oh paling sering ya

49:56iya maksudnya

49:58paling umum, salah satu yang umum

50:00ini kalau A apa

50:02isinya

50:04kalau A

50:06ini

50:10kalau konsolok A apa isinya?

50:12nul, nul, nul

50:14kalau konsolok B

50:16konsolok B

50:18nul

50:20masa sih, coba

50:22undefined, karena hoisting

50:24loh kan belum didefined

50:26dimanapun

50:28tapi kan ditarik ke atas

50:30kan istilah hoisting itu kan di

50:32variable yang dideklarasikan dibawa ke atas

50:34semua, jadi ada kayak, ada solo

50:36ada let A, let B, gitu di atasnya

50:38di paling atas, bener gak?

50:40oh kalau global

50:42itu namanya hoisting

50:44B itu undefined

50:46kalau

50:48konsolok B

50:50dia malah jadi ini, reference error

50:52reference error

50:54kalau yang A enggak

50:56apa bedanya yang A sama yang B

50:58oh iya, kayaknya A itu

51:00kalau far itu

51:02langsung masuk global ya

51:04langsung hoisting

51:06dia langsung masuk ke atas

51:08ya, dia langsung masuk ke atas

51:10tetapi belum didefinizikan

51:12tetapi tidak error

51:14itu temporal dead zone namanya

51:16oh iya itu, pernah belanja

51:18kan namanya lucu

51:20namanya kayak nama buin hotel gitu

51:22kalau konsolok B

51:24fatal error

51:26karena reference gak ada

51:28dia gak hoisting

51:30karena kalau konsolok B itu harus sesuai sama

51:32ya beneran, dibaca atas ke bawah

51:34nah nih, closure

51:36baru kita jelasin lagi

51:38double 5

51:405x2=10

51:425x2 yang tadi kan

51:44iya betul

51:46ini bukannya secara intuitif

51:48udah ngerti ya

51:50X itu akan masuk ke

51:52ke dalam fungsi yang kedua ya

51:54kalau gak tadi kita bahas

51:56mungkin gue aja bisa salah

51:58nggak sih, kelihatannya

52:00pertanyaannya bukan

52:02perkara bisa jawab

52:045x2=10 cuma harus jelasin

52:06yang penting

52:08ya itu yang tadi kita bahas itu

52:10selain cuma jawab

52:12harus bisa jelasin mas Riza

52:14iya ngerti

52:16nggak, cuma kalau ngeliat kode ini

52:18mungkin yang belum

52:20terlalu mengerti pun bisa menebak

52:22setidaknya bisa menebak bahwa

52:24X itu adalah dari atas kan

52:26tapi kan

52:28ada mosek kayak yang tadi kita bikin

52:30jelasinnya itu lo multiply

52:32dalam kurung 2, dalam kurung 3

52:34nah itu kalau yang belum tahu

52:36pensip kosur kan toh

52:38dalam kurungnya 2 sih

52:40mau dilanjut nggak nih

52:42karena udah beda topik

52:44oh dis

52:46ada pertanyaan nggak

52:48pertanyaannya bagus nih

52:50mas python, mas python nanyainya

52:52javascript

52:54iya makanya baru belajar, kan udah belajar

52:56tapi kalau udah jaga javascript

52:58ngomongannya ganti jadi javascript

53:00oh iya, python.js ya

53:02tapi bingung kapan makenya

53:04kadang-kadang kita malah kebalik

53:08kadang-kadang kita malah kebalik

53:10kita udah sering pake, tapi nggak tahu maksudnya apa

53:12iya nggak tahu istilahnya apa

53:14ini kebalik ya

53:16gimana tuh

53:18kira-kira, kapan makenya

53:20kalau butuh

53:22kalau butuh

53:24tidak menjawab ya

53:26kalau function

53:28function itu

53:30ya saat butuh di ini

53:32apa, gunanya function kan

53:34reusable

53:36dan

53:38dry, gitu

53:40dan bisa dipake

53:42bisa di reshape juga bisa

53:44dengan higher

53:46order function

53:48ya, tapi kan

53:50ini contoh doang nih function

53:52mungkin ya macem-macem pensip-pensip tadi

53:54hoisting lah, temporal date zone lah

53:56bingung kapan pakenya, maksudnya isunya

53:58kayaknya ya ini apa

54:00tanya-jawab sama LLM

54:02juga membantukan apa

54:04use case in real world

54:06saya sudah

54:08mempelajari prinsip-prinsip

54:10ini, ini, ini, tolong kasih ide

54:12apa, gimana nerapin di

54:14real world application

54:16kayaknya

54:20secara alami akan

54:22kepake

54:24kalau kita sudah

54:26sudah bikin

54:28aplikasi, sudah bikin project, sudah terjun

54:30ko project, lama-lama

54:32sering baca

54:34sering baca kode-kode

54:36dari mungkin

54:38dari repository

54:40atau ya pokoknya kode orang lah ya

54:42baik itu di perusahaan

54:44kita, perusahaan yang kita

54:46kerja di situ, atau

54:48kode open source, gitu

54:50secara tidak langsung, nanti akan

54:52terekspos lah

54:54karena kalau kita

54:56lihat dari awal, oh pokoknya saya

54:58harus pakai klosur gitu, agak susah ya

55:00karena belum tentu cocok juga use case-nya

55:02gitu

55:04tapi biasanya bakal kepake sih

55:06sebenarnya, pasti kepake kan

55:08iya, cuman nggak, nggak dipaksa

55:10harus pake itu, gitu kan

55:12bukan, nggak

55:14mungkin kita aja nggak mengerti itu namanya

55:16klosur, kita nggak

55:18itu yang paling sering dan

55:20cepat atau lambat sih bakal ketemu ya

55:22cuman kan ini kasusnya misalnya

55:24baru belajar

55:26biar nempel lah, mungkin ya, biar keinget

55:28kalau biar nempel ya

55:30sebagai salah satu contoh ya

55:32saya pakai

55:34code igniter

55:36zaman dulu ya, pakai-pake aja itu

55:38misalnya itu contohnya, itu saya pakai

55:40MVC dan

55:42selalu pakai

55:44CI apa, CI apa, gitu

55:46baru tahu, setelah belajar lebih lanjut

55:48baru tahu nama metodnya itu

55:50adalah singletone

55:52singletone, padahal saya pakai

55:54gitu, tapi nggak tahu itu namanya

55:56singletone

55:58contohnya

56:00nah, ini mau dilanjut ke

56:04teka-teki ini atau kita

56:06stay to the topic

56:08tanya jawab aja, tanya jawab

56:10ada beberapa contoh yang

56:12menarik, itu dong

56:14pertanyaan chat GPT, coba kasih contoh

56:16practical

56:18real-world project yang menggunakan

56:20carrying, eh carrying

56:22closure

56:24yang di MDN ada nih

56:26contoh-contoh yang

56:28apa,

56:30related sama dom

56:32maksudnya, nggak rusa

56:34apa, relevan buat

56:36front-end

56:38yang mana

56:40di practical

56:42OOP

56:44encapsulation

56:46JavaScript

56:48didn't have private field

56:50terus?

56:52So, biar

56:56hal-hal yang private bisa tetap

56:58didalam create bank account

57:00tanpa di expose keluar, tapi

57:02bisa

57:04bisa ngedit-ngedit

57:06segala macam dengan memanggil

57:08si apa tadi, withdraw

57:10something itu, eh create

57:12bank account

57:14create bank account itu bisa

57:16written-nya itu bisa

57:18written itu object ya

57:20bukan written function ya

57:22yang ada 3

57:24function

57:26deposit, withdraw,

57:28get balance

57:30betul, jadi yang

57:32balance-nya tadi, kalau account deposit

57:34nanti bisa

57:36100 tambah 50

57:38jadi, get balance

57:40terus nggak bisa langsung diakses

57:42karena

57:44led itu private variable

57:46private, jadi hanya bisa diakses

57:48dari dalam fungsi, kalau dari luar

57:50bisa

57:52karena far dibawah

57:54di atasnya

57:56ya, dipindah

57:58ke atas kan

58:00iya

58:02even listener that remember state

58:04setup button

58:06button add

58:08save button

58:10id color

58:12nah itu contoh

58:14oh iya, oke

58:18jadi isi color ini

58:20ke bawah ya

58:22ya, kita sering bikin

58:24debounce-debounce kan, kecuali

58:26ana underscore

58:28atau ana apa itu yang pakai

58:30underscore ya

58:32underscore kan

58:34loadash, loadash

58:36loadash, nah, loadash debounce

58:38sama loadash throttle, kecuali anak

58:40yang pakai itu kan, tapi

58:42behind the scene ya begini isinya

58:44ini kayaknya mau pakai

58:46rex, mau pakai vanilla javascript

58:48kalau bikin search input

58:50yang auto-populate

58:52itu pasti harus dibounce, kalau nggak

58:54jebol api you

58:56iya, karena dia nge-hit

58:58terus menerus ya

59:02modul petard ini

59:04ini sebelum ada

59:06is modul ya

59:08kalau kita mau

59:10reacook, nah, siapa yang sering pakai reacook

59:12nah, ini contohnya

59:14contoh real

59:16dunia nyata

59:18closure, count itu

59:22bisa dipakai di dalam fungsi

59:24handle click

59:26iya

59:28walaupun tidak

59:30dipassing

59:32sebagai variable

59:34iya kan

59:36dipassing sebagai parameter

59:38atau argument

59:40dia tetap bisa dipakai

59:42di dalam function

59:44every render, oh

59:46yang dia maksud, jadi kayak tetap

59:48function di dalam function, karena every render

59:50setiap si

59:52function component itu di render

59:54jadi membuat closure baru

59:56dari value count itu sendiri

59:58nah, yang dibalikin adalah

1:00:00set count-nya untuk

1:00:02memodifikasi value-nya count

1:00:04oh, benar

1:00:06oh, ini pertanyaannya makin banyak

1:00:12bagus-bagus, lanjut-lanjut

1:00:14iya, bagus

1:00:16kalau ada yang mau nanya, silahkan

1:00:18ini malah ditawarin bikin mini project

1:00:20demo dong

1:00:22bagian material javascript apa

1:00:24yang paling kursial untuk bisa membuat

1:00:26website yang fungsional

1:00:28maksudnya website-nya berfungsi gitu

1:00:30kita tanya jawab itu, siapa yang tau itu logo apa

1:00:32ha? logo?

1:00:34itu itu

1:00:36sama mas Hanzone L

1:00:38Biohazard

1:00:40ada gamenya

1:00:42oh, ada game ya

1:00:44apa? Fallout, Fallout

1:00:46bukan? bukan

1:00:48game di Andoin yang buat virus-virus

1:00:50bakteria, itu apalah namanya

1:00:52oh, itu

1:00:54saya tau

1:00:56iya, iya namanya apa? ngasih tebakan

1:01:00lupa, lupa, lupa

1:01:02tar, tar, tar

1:01:04bentar, bentar, tunggu, tunggu

1:01:06jawab dulu ini pertanyaannya

1:01:08tuh, ada black ink

1:01:10black ink, nah itu dia black ink

1:01:12yang punya

1:01:14yang punya yang jawab

1:01:16gak main, gak main

1:01:20bagian material javascript apa yang paling kursial?

1:01:24fungsi, variable

1:01:26gak ada satu bagian yang paling kursial sih

1:01:28ya asal basic-nya

1:01:30fundamental-nya udah

1:01:32nguasain semua, kayaknya bisa ya

1:01:34iya fundamental-nya apa aja yang dibutuhkan mungkin

1:01:36fundamental apa aja

1:01:38fungsi, variable

1:01:40looping

1:01:42ya kan? kondisional

1:01:44semua dalam algoritm modern

1:01:46pemanggramannya itu

1:01:48iya, iya

1:01:50isinya cuma

1:01:52urutan

1:01:54dari atas sampai bawah

1:01:56iya

1:01:58kondisional, looping

1:02:00udah, fungsi itu adalah

1:02:02kondisional, looping

1:02:04variable

1:02:06kondisional tadi

1:02:08udah ya, iya

1:02:10struktur data, struktur data

1:02:12struktur data, struktur data

1:02:14javascript juga

1:02:16asing, bener, bener

1:02:18asingkranus, harus dipelajari

1:02:20callback asingkranus itu penting kalau untuk javascript ya

1:02:22ini deh coba

1:02:24web.dev/learn/javascript

1:02:28kayaknya udah cukup representatif deh

1:02:30nah sambil dibuka

1:02:36wait, wait, wait

1:02:38nah coba, ini ya

1:02:42nah kan introduction, scroll ke bawah aja

1:02:44data types

1:02:48number, string boolean dan lain-lain

1:02:50boolean, null undefined

1:02:52back-end, symbol, variable

1:02:54comparison, control flow itu kan

1:02:56control flow kayak if dan else

1:02:58comparison itu

1:03:00comparison itu if dan else

1:03:02logic ya

1:03:04control flow

1:03:06sama if dan else juga, fungsi

1:03:08function

1:03:10terus ini buat OOP

1:03:12return buat function juga

1:03:14dis ini yang ya

1:03:16lumayan menyebalkan

1:03:18walaupun sekarang udah jarang dipakai juga ya

1:03:20objects

1:03:22objects, disini maksudnya objek literal

1:03:24struktur data ya

1:03:26yang pakai kurung-kurawan

1:03:28semua ya

1:03:30bukan OOP kan

1:03:32disini maksudnya kan ya

1:03:34bukan, bukan, objeknya sih

1:03:36data types ya

1:03:38struktur data

1:03:40struktur data

1:03:42jadi bukan OOP

1:03:44property, accessor

1:03:46inheritance, distribution

1:03:48itu baru OOP

1:03:50cuma kelihatan ini

1:03:52gak mendalam banget sih, cuma maksudnya kan

1:03:54harus tau prinsipnya itu apa

1:03:56kayaknya untuk bisa bikin

1:03:58aplikasi web

1:04:00atau website ya

1:04:02sampai disini

1:04:04ya udah, abisin itu

1:04:06aja sih ke bawah, maksudnya apa

1:04:08yang penting kalau pernah liat

1:04:10sekilas, soalnya ke bawah

1:04:12collection kayak array gitu

1:04:14array set ya

1:04:16ini ya, collection

1:04:18index collection ya

1:04:20terus apa ya, kayak

1:04:24class atau OOP walaupun gak ngerti

1:04:26banget mendalam kan, kalau kita

1:04:28pakai SDK external misalnya

1:04:30mau

1:04:32pakai, kalau kan suka ada new apa

1:04:34kita harus instantiate objek

1:04:36gitu kan

1:04:38new something something

1:04:40far itu

1:04:42sekarang kurang praktikal, lebih

1:04:44light aja buat define variable, iya

1:04:46sekarang udah jarang dipakai, diusahakan

1:04:48kalau bisa jangan, kecuali

1:04:50tergantung

1:04:52kalau mengerti ya bisa aja

1:04:54boleh-boleh aja

1:04:56definition variable itu

1:04:58bisa naik ke atas

1:05:00kayak tadi ya

1:05:02cuma jangan dicampur sih, sebenernya

1:05:04kalau udah pakai ES6, ada light dan cons

1:05:06itu kan, maksudnya ada itu karena

1:05:08ada behavior yang spesifik yang pengen

1:05:10diraih ya, ya itu tadi

1:05:12maksudnya gak ada hoisting, jadi

1:05:14gak bingung, pokoknya dari atas ke bawah

1:05:16kayak sacot

1:05:18kayak gitu, kalau dalam project itu

1:05:20udah pakai konvensi

1:05:22seperti itu, ya udah jangan dicampur far lagi

1:05:24sih, mendingan, kecuali pakai

1:05:26codebase lama yang emang semua

1:05:28yang lain juga pakai far, ya udah pakai far

1:05:30gak apa-apa sih, asal tahu aja

1:05:32behavior-nya, bakal

1:05:34kayak gitu

1:05:36ya

1:05:38lumayan jarang

1:05:40lihat simbol yield generator

1:05:42function di codebase production, mungkin

1:05:44saya mainnya kurang jauh

1:05:46ada unpopular fitur JS

1:05:48lain

1:05:50apa ya?

1:05:52simbol, ini simbol ya?

1:05:54simbol itu apa?

1:05:56simbol ini

1:05:58menarik, karena

1:06:00kita bisa bikin

1:06:02seperti array, tapi isinya

1:06:04yang unik, ya, bisa menggunakan

1:06:06simbol, alat bantunya

1:06:08ada contohnya gak?

1:06:10itu simbol

1:06:14dash

1:06:16mana, ini

1:06:18bukan, contoh yang

1:06:22gak ada ya, shared symbol

1:06:26gak ada yang kayak

1:06:32namanya yang dari array gitu, atau dari

1:06:34oh dari objek ya

1:06:36objek ya

1:06:38proc simbol

1:06:42apa ya, kalau yang

1:06:44kalau yang jarang

1:06:46dipakai, maksudnya jarang dipakai

1:06:48di developer land yang

1:06:50kita bikin, kita bikin dom atau

1:06:52nulis JavaScript biasa, tapi

1:06:54dipakai di framework itu

1:06:56label kali ya, baru tahu ada

1:06:58konsep label

1:07:00gara-gara spell

1:07:02gara-gara spell

1:07:04tiba-tiba ada dollar

1:07:06titik 2, oh ternyata

1:07:08fitur JavaScript

1:07:10yang namanya label

1:07:12ini unpopular sih, tidak popular

1:07:14baru dipopulerkan oleh

1:07:16spelled ya, gara-gara

1:07:18dia pakai dollar ya

1:07:20mana dia label statement

1:07:24ini ya, ini bukan?

1:07:26loop 1, loop 2

1:07:28titik 2, nah itu bisa apa aja

1:07:30cuma kalau di spelled maksudnya

1:07:32convention-nya dollar kan

1:07:34itu buat indikator reaktif

1:07:36kalau break

1:07:38kita break-nya mau kemana nih?

1:07:40procsi

1:07:42procsi ya, procsi

1:07:44weak map, weak set

1:07:46procsi juga lumayan ada beberapa kali

1:07:50muncul sih, procsi

1:07:52reflect api

1:07:56reflection, reflection

1:07:58kalau di PHP namanya reflection

1:08:00reflect

1:08:02ya reflect api

1:08:04buat apa nih?

1:08:08apa itu, nggak tahu

1:08:10buat merefleksikan

1:08:12selama ini kita hidup

1:08:14berguna buat siapa aja gitu

1:08:16forwarding behavior

1:08:20in proxy, oh ada hubungan nih sama proxy ya

1:08:22oh, proxy

1:08:24saya jarang pakai

1:08:26jadi ya

1:08:28kan pertanyaan apa aja lagi tadi yang

1:08:30yang populer

1:08:32oh ini asil pertanyaan

1:08:34chat gpt ya?

1:08:36bukan, pertanyaan penonton

1:08:38pertanyaan itu

1:08:40dioper ke chat gpt

1:08:42dioper ke chat gpt

1:08:44enak sekarang ya

1:08:46apa-apa pertanyaan chat gpt ya

1:08:48ini

1:08:50balik lagi ya ke label ya

1:08:52kayak go to ya

1:08:54balik ke mana gitu ya

1:08:56kayak basic

1:08:58ada yang ngalamin ya ke basic

1:09:00cara mengakses

1:09:02pointer berarti ya

1:09:04saya pakai ini dulu pointer

1:09:06di C++

1:09:08oh iya bisa ya

1:09:10nggak tahu

1:09:12bisa

1:09:14bisa ke mana gitu

1:09:16bisa dipaksa

1:09:18menuju ke mana gitu

1:09:20exek persilnya

1:09:22kalau yield

1:09:24sama generator ini

1:09:26dimana ya

1:09:28dipakai, terakhir

1:09:30saya ingetnya

1:09:32menggunakan yield generator itu

1:09:34pada saat menggunakan framework namanya Koa

1:09:36oh Koa itu

1:09:38js kan

1:09:40sayangannya express

1:09:42abis itu selain express tuh

1:09:44sayangannya Koa kan

1:09:46bukan sayangan, Koa itu adalah

1:09:48js nya express

1:09:50jadi mereka eksperimen dulu di Koa

1:09:52kalau berhasil udah stabil

1:09:54di push ke express

1:09:56jadi versi

1:09:58kanarinya

1:10:00disini kalau nggak salah dia pakai

1:10:04generator

1:10:06kalau nggak salah nggak kelihatannya

1:10:08yield dan generator itu

1:10:10bisa juga untuk ini sih

1:10:12mempercepat web performance

1:10:14yes

1:10:16ada execution

1:10:18sebuah function yang

1:10:20cukup lama

1:10:22dia bisa kita bisa pause dulu

1:10:24execution nya jadi

1:10:26si apa namanya

1:10:28si ENP lah ya

1:10:30jadi kayak user click itu tetap

1:10:32bisa jalan

1:10:34salah satu contohnya itu

1:10:36yang di, ntar saya kasih linknya ya

1:10:38yang game yang saya

1:10:40yang saya ini tuh, kemarin

1:10:42inget nggak? yang saya game

1:10:44saya

1:10:46saya tunjukkan

1:10:48waktu

1:10:50oh si demo nya dari Chrome

1:10:52itu ya

1:10:54ini dia

1:10:58contoh nyata

1:11:00ini Mas Liza bisa

1:11:02ini aja lah saya tunjukin

1:11:04contoh nyata ya, yang pakai

1:11:06dimana penggunaan yield itu bisa

1:11:10scheduler yield

1:11:12bahasanya

1:11:14Indra, ini nggak perlu dijawab ya

1:11:16pertanyaan paling gede

1:11:18discussion of the day tapi

1:11:20pakai itu dong, pakai sound effects

1:11:22buat dibikin sound effects

1:11:24oh iya apa ya

1:11:26oh iya boleh, jadi bukan

1:11:28java spasi script

1:11:30ini penulisannya juga udah salah ya

1:11:32java script itu

1:11:34ini contohnya

1:11:38contohnya apa namanya

1:11:40contoh nyata pakai yield

1:11:42tapi di scheduler ya

1:11:44jadi ini kan ada

1:11:46supaya animasi kan pakai

1:11:48animation frame lancar ya

1:11:50tapi begitu saya

1:11:52ini nih, saya

1:11:54taro rintangannya disini nih

1:11:56tuh, langsung stop dia

1:11:58nah sebenernya ada rintangannya nih

1:12:00jalan, lihat nggak tadi

1:12:02si, si

1:12:04ada VLC ya, ada VLC

1:12:06oh iya VLC ya tuh

1:12:08nah kalau saya enable

1:12:10dan reload

1:12:14nah kalau saya enable dan reload itu

1:12:16dia akan menggunakan scheduler yield

1:12:18jadi kalau saya klik disini

1:12:20tuh, masih patah-patah tapi kalian bisa

1:12:22lihat kan ininya

1:12:24karena ada posnya

1:12:26jadi dia tetap bisa

1:12:28ngerender

1:12:30saat proses yang

1:12:32jadi bisa

1:12:34ada proses yang

1:12:36besar, terus di yield

1:12:38sampe proses yang lain

1:12:40selesai, jadi dia bisa nunggu dan

1:12:42kembali lagi

1:12:44yieldnya itu berarti nunggu

1:12:46apa, proses yang ditreadnya

1:12:48harus selesai dulu, tapi kan

1:12:50si yieldnya nggak bisa

1:12:52iya, tapi saat request animation

1:12:54frame doang ya, ini contohnya disitu sih

1:12:56scheduler yield

1:12:58bisa, temen-temen bisa belajar

1:13:00lebih lanjut apa maksudnya scheduler

1:13:02yield itu

1:13:04macam view berarti ya

1:13:06terakhir lihat yield dan function generator

1:13:08ada di Redux Saga

1:13:10saya belum main-main Redux Saga

1:13:12kurang jauh saya main

1:13:14kurang jauh

1:13:16ya mungkin juga sih

1:13:22bisa jadi, bisa jadi

1:13:24sebentar

1:13:26nah kan bener

1:13:30kalau

1:13:32kalau dicari

1:13:34ini

1:13:36QJS itu pakai generator

1:13:38contohnya ada di

1:13:40mana dia

1:13:42ini, dia pakai fungsi generator

1:13:44oh jadi bintangnya

1:13:46itu ya generator

1:13:48iya

1:13:50setiap generator harus ada yieldnya

1:13:52iya

1:13:54dia seolah-olah return itu

1:13:56return dari generator itu

1:13:58adalah yield seolah-olah ya

1:14:00kayak asing

1:14:02dan await

1:14:04await, asing-await

1:14:06asing-await, asing-await

1:14:08nah generator ini justru

1:14:10populernya itu sebelum asing-await

1:14:12begitu asing-await orang dah ini

1:14:14cuman bedanya adalah

1:14:18kalau asing-await

1:14:20kan

1:14:22gimana ya, kalau

1:14:26generator dia bisa kita

1:14:28request

1:14:30saya mau next value

1:14:32dong, gitu

1:14:34baru dikasih

1:14:36iya maksudnya by request kan

1:14:38by request ya

1:14:40by request

1:14:42jadi kalau nggak dipanggil ya dia diam aja

1:14:44iya, dia nggak

1:14:46return apa-apa sebelum dipanggil

1:14:48bingung kan

1:14:52tambah bingung kan

1:14:54bingung

1:14:56makin lama makin bingung

1:14:58contoh

1:15:00misalkan

1:15:02ada four di dalam

1:15:04function, ada sebanyak

1:15:063 kali ya, 0-2 ya

1:15:080-2 berarti 3 kan ya

1:15:10nah, pada saat kita panggil sum

1:15:12ini, kalau kita konsolok sum

1:15:14dia nggak akan return hasilnya

1:15:16tapi kalau kita sum.next

1:15:18dia akan panggil pertama kali adalah

1:15:203 ditambah

1:15:225, 8

1:15:24selesainya belum

1:15:26ya, next lagi

1:15:28berarti untuk nilai yang kedua

1:15:30yaitu 5 ditambah

1:15:321

1:15:34eh, bener nggak

1:15:36eh, bukan i ya

1:15:38a ya, a ditambah

1:15:40r, r itu apa, r itu 3

1:15:425 ditambah 3, ditambah

1:15:463 lagi ya

1:15:52yang kedua itu gimana

1:15:548 tambah 3 kan

1:15:568 tambah 3, bener

1:15:58ya itu

1:16:00nama tambah 3 doang

1:16:02terus abis itu

1:16:04next lagi

1:16:0614

1:16:08udah selesai belum

1:16:10masih jalan nih

1:16:124 nya, begitu yang keempat

1:16:14looping nya 3 kali

1:16:16nah

1:16:18ketika yang keempat baru

1:16:20value nya nggak ada

1:16:22tapi selesai

1:16:24ini kayak stream ya

1:16:26stream juga gitu kan

1:16:30ada kapan selesainya kan

1:16:32kita dikasih tau ya

1:16:34cuma ini

1:16:36based on loop

1:16:38yang kita define sendiri

1:16:40di dalam generator nya

1:16:42kalau stream kan

1:16:44isi data

1:16:50bisa begitu

1:16:52iya

1:16:54ayo, apa lagi

1:16:56wah, nur holit, halo nur holit

1:16:58terima kasih

1:17:02jadi member

1:17:04eh, udah nih, habis nih

1:17:06kita ujian dulu

1:17:10mau nggak? apa?

1:17:12ujian apa? nggak, nggak mau

1:17:14pertanyaannya sih

1:17:16sensitivity

1:17:18ujian yang tadi

1:17:20iya

1:17:22nggak mau

1:17:26nggak mau, nggak, daripada itu

1:17:28mendingan kita pilih

1:17:30topik buat minggu depan

1:17:32eh kita belum bahas hoisting, atau

1:17:34closer aja, udah kan tadi

1:17:36udah kan, cuma

1:17:38hoisting belum

1:17:40dikit doang, hoisting

1:17:42ya dikit doang, ya sudah lah, next time aja

1:17:44udah sejam sih, udah sejam sih ya

1:17:46japet ya

1:17:48oke, sebelum mudahan

1:17:50kita diskusi topik

1:17:52dulu ya, temen-temen pengen

1:17:54minggu depan topik apa

1:17:56boleh di chat juga boleh

1:17:58sebelum kita voting

1:18:00atau kita veto

1:18:02munculin dulu lah link

1:18:04github discussion nya

1:18:06kalau ada yang tidak ada

1:18:08di github juga boleh

1:18:10dokumentasi, kalah mulu

1:18:12dokumentasi, nggak ada yang mau bikin dokumentasi ya

1:18:14temen-temen sekarang ya

1:18:16pake AI lah

1:18:18sekarang semua

1:18:20pake AI ya

1:18:22ini Nurkholid nih

1:18:26nanyain Http1, VS Http2

1:18:28VS Http3

1:18:30kayaknya pernah disinggung deh

1:18:38Http1

1:18:40udah sih, iya udah

1:18:42iya

1:18:44ingat nggak yang Http3

1:18:46gue sebutnya kayak yang

1:18:48yang kalau kita naik kereta

1:18:50kereta api cepat

1:18:52ada 2 menara

1:18:54yang kita lagi pake HP

1:18:56jadi

1:18:58kalau kita pakenya TCP

1:19:00itu akan

1:19:02ilang dulu, ngedrop dulu

1:19:04iya, ngedrop

1:19:06dissolve dengan pake Http3

1:19:10UDP

1:19:12UDP ya

1:19:14wah nggak ada yang mau

1:19:18topik, topik, ada yang mau

1:19:20sombong topik nggak?

1:19:22nah itu mau hak veto

1:19:24katanya ya, hak veto

1:19:26mau hak veto, hak veto apa?

1:19:28signal, mau bahas signal, saya penasaran sama signal sih

1:19:30boleh

1:19:32signal-signal boi, signal boi

1:19:34cuma kita semua pasti nggak ada yang tau

1:19:36tentang signal kan? iya ya

1:19:38nggak ini ya

1:19:40beda situs-beda situs

1:19:42signal Javascript maksudnya

1:19:44iya kan ini yang

1:19:46awalnya kan

1:19:48SolidJS

1:19:50solid ada signal, angular ada signal

1:19:52diimplementasi

1:19:54sama yang lain

1:19:56terus sekarang Javascript udah

1:19:58mulai memasukkan signal

1:20:00sebagai API-nya

1:20:02proposal atau statusnya

1:20:04jadi penasaran

1:20:06pengen tau cara kerjanya aja

1:20:08ya boleh deh biar kepaksa belajar

1:20:10ini juga

1:20:12klosur kepaksa apa

1:20:14nggak kepaksa belajar sih, dulu pernah belajar

1:20:16terus lupa lagi

1:20:18cuma gara-gara bahas ini jadi

1:20:20inget lagi, yaudah signal biar kita

1:20:22belajar loh

1:20:24kalau nggak salah

1:20:26kalah lagi dokumentasi

1:20:28kalau nggak salah

1:20:30spelt yang baru

1:20:32yang run itu juga

1:20:34menggunakan signal ya

1:20:36gas signal

1:20:38yang run

1:20:40rendering reactivity paradigm

1:20:42signal observable

1:20:44ya observable yang jaman dulu ya

1:20:46yang RxJS

1:20:48RxJS

1:20:50masih ada reactivity

1:20:52masih lah

1:20:54ada ada, dianggular ada

1:20:56silin yang

1:20:58promotin

1:21:00ini masih perlu

1:21:02masih perlu

1:21:04voting

1:21:06voting apa gas, gas aja ya

1:21:08gas ya

1:21:10signal

1:21:12akan dibahas

1:21:14minggu depan

1:21:16nggak ada

1:21:18minggunya disini

1:21:20tanggal berapa tuh

1:21:2226+7

1:21:2433

1:21:26tanggal 33 Agustus

1:21:302 September

1:21:322 September

1:21:342025

1:21:36oke

1:21:40cukup cukup

1:21:42sepertinya kita sudah lelah

1:21:44siapa signal belajarnya pake

1:21:46GVT atau sejenisnya

1:21:48atau Jemenai deh

1:21:50Jemenai, iya tanya kalau lagi perlu

1:21:52on demand aja

1:21:54tapi belum pernah belajar yang sampai

1:21:56kayak terstruktur banget

1:21:58pengen belajar apa ya

1:22:00bikin AI agent dari awal

1:22:02yang bikin curriculum gitu

1:22:04belum pernah nyoba

1:22:06padahal sekarang harusnya udah bisa kan

1:22:08ya belum sempet

1:22:10nggak sampai sejauh, cuma saya sering pake ini

1:22:12kayak untuk nanya-nanya hal dasar

1:22:14tapi banyak membantu loh kalau nanya-nanya

1:22:16sangat membantu ya

1:22:18sama kasih contoh

1:22:20contoh B

1:22:22contoh C ya kayak tadi

1:22:24yang bisa disebut klosur mana

1:22:26sih kalau nggak ada inner functionnya

1:22:28disebut klosur, kalau bisa mana

1:22:30contohnya dan apa ya

1:22:32demonstrate mana variable yang

1:22:34bisa diakses misalnya ya lebih ke

1:22:36kalau cuma definisi kan sebenarnya

1:22:38Google biasa bisa ya, cuma kalau buat

1:22:40probing, buat explore

1:22:42prinsip-prinsipnya itu berguna banget

1:22:44sih

1:22:46nah iya persis itu tuh

1:22:48kayak komennya Mas Willa persis

1:22:50teman diskusi

1:22:52teman diskusi betul

1:22:54iya

1:22:56tetap harus

1:22:58di cek juga kebenarannya ya

1:23:00jangan langsung percaya ya

1:23:02bahaya, kadang-kadang

1:23:04suka halu, apalagi konsep-konsep

1:23:06yang baru ya mungkin dia nggak tahu

1:23:08karena dia nggak mungkin jawab saya tidak tahu

1:23:10oh bisa

1:23:12bisa dipaksa

1:23:14di sistem instruksi

1:23:16oh jadi kalau nggak tahu

1:23:18bilang nggak tahu gitu ya

1:23:20terus selalu

1:23:22misalnya ada sumber banyak

1:23:24dan berbeda-beda include link-nya

1:23:26ya biar maksudnya biar kita

1:23:28bisa investigate sendiri

1:23:30tapi kadang-kadang link-nya juga nggak

1:23:32bisa karena dia halu aja dia bikin-bikin

1:23:34sendiri kadang-kadang ya

1:23:36sekarang udah ada mendingan sih

1:23:38udah mendingan ya

1:23:40udah nggak ngarang link ya

1:23:42kalau halu udah nggak mungkin

1:23:44diilangin, cuma

1:23:46kalau dulu tuh parah banget ngarang link-nya

1:23:48ya minimal

1:23:50sekarang udah mendingan ya

1:23:52ada yang pernah

1:23:56nanya AI

1:23:58kok pas plus komen-komennya

1:24:00ada, ada, ada

1:24:02ada

1:24:06iya, ada

1:24:08kan pernah ada yang

1:24:12nggak tahu ya ini benar atau nggak ya

1:24:14karena kan itu bisa dimanipulasi juga ya

1:24:16ada yang

1:24:18screenshot

1:24:20skripsi

1:24:22yang ada tulisannya ini apa

1:24:24text ini digenerate oleh ini

1:24:26of course here is the

1:24:28yang ada awalannya gitu loh

1:24:30tentu

1:24:32ini lah jawaban untuk blablabla

1:24:34atau kadang

1:24:36yang sering gue lihat itu bukan coding sih

1:24:38bukan decoding, cuma apa review

1:24:40Google Map kan suka ada kan yang kayak joki

1:24:42buat apa

1:24:44ningkatin review bisnis di Google Maps

1:24:46itu kayak auto generated

1:24:48jadi suka place name, tau kan

1:24:50ada square bracket misalnya generate

1:24:52positive review about coffee shop

1:24:54nah terus ada square bracket

1:24:56coffee shop name, itunya nggak diganti

1:24:58sama nama tempatnya

1:25:00iya, iya, iya, iya, oke, oke

1:25:06oke kalau gitu cukup ya temen-temen

1:25:08terima kasih banyak buat

1:25:10semua interaksi dan komentarnya

1:25:12kita ketemu lagi minggu

1:25:14depan, mudah-mudahan

1:25:16yang kita bahas malam ini tidak

1:25:18tambah bingung, tapi tambah jelas

1:25:20semoga berguna, kita besok-besok

1:25:22inteku, kerjaan

1:25:24inget episode ini ya kan

1:25:26inget kita, ya inget kita

1:25:28terus ceritain

1:25:30inget kontennya tadi

1:25:32inget kontennya, terus

1:25:34ceritakan

1:25:36saya ditanya tentang closure

1:25:38terus saya jawab, terus jawabannya salah

1:25:42tapi kalau jawabannya salah kita yang salah berarti ya

1:25:44apa tuh

1:25:46sebelum tutup, kita kan

1:25:48pernah mau bikin ini tuh

1:25:50bikin, apa tuh

1:25:52episode halloween

1:25:54sudah mau halloween dulu, oh iya, satu suro

1:25:56kan ini

1:25:58episode satu, ya kan

1:26:00cerita horror kan

1:26:02cerita horror, cerita horror ya

1:26:04jadi kita kan harus mulai

1:26:06kumpulin, bikin

1:26:08guitar discussion, kita sebar-sebar dan kita mulai

1:26:10promoin tiap episode, ada, ada

1:26:12kayaknya di, ini ada deh

1:26:14cuma kayaknya kita harus nyediain

1:26:18kita nyediain mailbox

1:26:20atau semacamnya lah, kalau misalnya

1:26:22google form, apa google form aja

1:26:24google form yang sederhana, jadi gak perlu login

1:26:26ya boleh, ya boleh lah

1:26:28ok, udah mulai kita

1:26:30promote aja, jadi kalau temen-temen ada

1:26:32cerita horror, nanti kita bacain

1:26:34ya cerita horror saat

1:26:36dikerjaan, jadi ini bukan

1:26:38cerita horror

1:26:40cerita horror beneran

1:26:42cerita horror, saya delet

1:26:44production database

1:26:46itu paling sering tuh

1:26:48apalagi dunia file coding

1:26:52iya, yang berhubung dengan AI

1:26:54tiba-tiba kodenya dihapus gitu kan

1:26:56ada full request otomatis

1:26:58dimana gitu kan, ya yang horror-horor

1:27:00atau diberikan IPI key-nya

1:27:02ke link

1:27:04atau jadi .env

1:27:06kita mengerikan

1:27:08cerita seram

1:27:10.env-nya kepus ke production

1:27:12eh kepus ke repo

1:27:14node modulesnya kepus ke repo itu udah biasa ya

1:27:16zaman dulu yahoo pernah private key-nya

1:27:20di expose

1:27:22itu kan horror ya

1:27:24horror-horor, yang horror-horor lah ya

1:27:26apa, API key, open AI

1:27:30kepus ke repo, terus

1:27:32dipake, di abuse ya

1:27:34ngeri banget tuh

1:27:36tagihan

1:27:38iya, tagihan juga termasuk ya

1:27:40misalkan, pakai salah satu cloud

1:27:42tiba-tiba

1:27:44itu juga horror sih

1:27:46iya, jadi inget, saya punya horror di situ

1:27:50nanti saya ceritain

1:27:52iya, horror tagihan

1:27:54wah, saya juga ada tuh

1:27:56pengalaman

1:27:58horror tagihan

1:28:00hahaha

1:28:02belum kita belajarnya

1:28:04on the spot ya

1:28:06halloween itu tanggal berapa sih

1:28:08kita satu suruh ya

1:28:10satu suruh berapa

1:28:12tanggal berapa, gak tau

1:28:14kalau halloween itu kan 31 oktober

1:28:16satu suruh, tanggal berapa ya

1:28:18tanggal satu suruh

1:28:2015 juni, 16 juni

1:28:22udah lewat

1:28:24yaudah, ikut aja ya

1:28:2631 oktober

1:28:28yang paling dekat

1:28:30selasa klion, gak ada

1:28:32selasa klion

1:28:34hah?

1:28:36kan biasanya jumat klion

1:28:38karena acara kita selasa, jadi selasa klion

1:28:40selalu selasa malam

1:28:42ya pasti ada sih, cuma

1:28:44gak serem, gak ada konutasi

1:28:4631 oktober itu pas hari jumat

1:28:48paling tanggal 28 oktobernya aja

1:28:50kita main

1:28:52pokoknya kalau udah ada cerita

1:28:54yang di submit, kita inilah

1:28:56kita mau itu halloween

1:28:58atau gak, pokoknya

1:29:00pokoknya cerita horror

1:29:02kita pakai kostum gak

1:29:04gak usah ya

1:29:06kostum serem

1:29:08kostum serem misalnya

1:29:10apalah

1:29:12surat

1:29:14I delete database

1:29:16and production

1:29:18itu salah satu

1:29:22apa namanya

1:29:24salah satu cara untuk menjadi

1:29:26senior developer

1:29:28kalau belum database production

1:29:30belum jadi senior

1:29:32saya delete gak sih, ngedrop juga gak

1:29:34cuma update lupa aware aja

1:29:36itu pernah

1:29:38ok?

1:29:44cukup?

1:29:46ditunggu ya cerita horrornya ya

1:29:48cerita horror, dan mungkin

1:29:50sekarang sudah lucu ya, kalau dulu

1:29:52beneran horror

1:29:54dulu nangis

1:29:56nangis sampai setengah malam

1:29:58panik

1:30:00oke, kita ketemu lagi

1:30:02minggu depan dengan topik

1:30:04horror beda, selamat malam, sampai jumpa

1:30:06bye bye

Suka episode ini?

Langganan untuk update episode terbaru setiap Selasa malam!

Langganan Sekarang

Episode Terkait

Komentar