03 JavaScript Standar Library
03 JavaScript Standar Library
Library
Eko Kurniawan
Khannedy
Eko Kurniawan
Khannedy
- Technical architect at one of the
biggest ecommerce company in
Indonesia
- 10+ years experiences
- www.programmerzamannow.com
- youtube.com/c/
ProgrammerZamanNow
Eko Kurniawan
Khannedy
● Telegram : @khannedy
● Facebook : fb.com/ProgrammerZamanNow
● Instagram :
instagram.com/programmerzamannow
● Youtube : youtube.com/c/ProgrammerZamanNow
● Telegram Channel : t.me/ProgrammerZamanNow
● Email : [email protected]
Sebelum
Belajar
● HTML
● CSS
● JavaScript Dasar
● JavaScript Object Oriented
Programming
Agenda
● Number
● String
● Array
● Object
● JSON
● Dan lain-
lain
Number
Number
● Number merupakan function yang digunakan untuk melakukan konversi ke tipe data
number
● Jika data tidak bisa dikonversi ke number, secara otomatis hasilnya adalah NaN
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
Kode :
Number
Number Static
Properties
● Number memiliki banyak static properties, seperti :
● Number.MIN_VALUE untuk mendapat number minimal
● Number.MAX_VALUE untuk mendapat number maksimal
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#s
tatic_properties
Kode : Number Static
Properties
Number Static
M ethod
● Number memiliki banyak static method, seperti :
● Number.isNaN(value) untuk mengecek apakah value NaN atau bukan
● Number.isInteger(value) untuk mengecek apakah value berupa integer atau bukan
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#s
tatic_methods
Kode : Number Static
M ethod
Number Instance
M ethod
● Number memiliki banyak instance method, seperti :
● Number.toLocalString(locale) untuk mengubah number menjadi string sesuai
locale :
https://www.lansweeper.com/knowledgebase/list-of-currency-culture-codes/
● Number.toString(radix) untuk mengubah number menjadi string sesuai radix
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#i
nstance_methods
Kode : Number Instance
M ethod
String
String
● Tipe data String sudah kita bahas pada materi JavaScript Dasar
● Namun kita belum membahas instance method atau juga instance properties yang
terdapat di String
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
String Instance Method dan
Properties
● String sendiri memiliki banyak sekali instance method dan properties
● Hal ini menjadikan untuk memanipulasi data String sangat mudah di JavaScript, seperti
mengubah menjadi lowercase, UPPERCASE, memotong string menjadi array dan lain-lain
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#inst
ance_methods
Kode : String Instance M ethod dan
Properties
Array
Array
findIndex(value => boolean) : number Mencari data index sesuai dengan kondisi
ance_methods
Object
Object
● Tipe data object sudah sering sekali kita bahas di JavaScript Dasar dan JavaScript OOP
● Pada materi ini, kita akan bahas banyak static method yang terdapat pada Object
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
Object Freeze &
Seal
● Secara default, object bisa diubah atau dihapus properties nya
● Jika kita ingin mengubah sebuah object menjadi object yang tidak bisa diubah atau dihapus,
kita bisa menggunakan beberapa static method
● Object.freeze() digunakan untuk mengubah object menjadi object yang tidak bisa diubah
atau dihapus attribute nya
● Object.seal() digunakan untuk mengubah object menjadi object yang tidak bisa dihapus
attribute nya
Kode : Object
Freeze
Object Assign
● Kadang kita ada kasus menggabungkan semua attribute dari sebuah object ke object
lain
● Hal ini bisa kita lakukan dengan menggunakan Object.assign(target, source)
Kode : Object
Assign
Object Property N ame &
Value
● Object juga memiliki static method untuk digunakan mengambil semua properties names
dan values
● Object.values() digunakan untuk mengambil semua property value
● Object.getPropertyNames() digunakan untuk mengambil semua properti name
Kode : Object Property N ame &
Value
Dan Function Lain-
Lain
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object
JSON
Pengenalan JSON
● JavaScript mendukung konversi data dari String json ke Object ataupun sebaliknya
● JSON.stringify() digunakan untuk melakukan konversi dari Object ke String
● JSON.parse() digunakan untuk melakukan konversi dari String ke Object
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON
Kode :
JSON
BigInt
BigInt
● BigInt merupakan tipe data Number yang bisa mencakup data angka lebih
dari Number.MAX_SAFE_INTEGER
● Untuk kasus number yang lebih dari itu, sangat disarankan menggunakan
tipe data BigInt
● Cara penggunaan BigInt sama saja dengan penggunaan Number dan juga
operator nya
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_
Objects/BigInt
Kode :
BigInt
Date
Date
● JavaScript memiliki tipe data untuk representasi waktu dan tanggal, yaitu Date
● Date merupakan representasi milisecond sejak tanggal 1 Januari 1970, atau dikenal dengan
Epoch & Unix Timestamp
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
Membuat Object
Date
Untuk membuat object Date, kita bisa menggunakan new Date(), dimana terdapat constructor
parameter
new Date() Membuat date saat ini
new Date(year, month, date?, hour?, Membuat date dengan parameter sampai
minute?, second?, milis?) milis
● Kita juga bisa melakukan parsing membuat date dari string menggunakan
method Date.parse(value)
● Format string harus YYYY-MM-DDTHH:mm:ss.sssZ
● Dimana jika kita hanya membuat date berisi tanggal saya, kita cukup gunakan
YYYY-MM-DD
● Jika date dengan tanggal dan waktu, gunakan YYYY-MM-DDTHH:mm:ss.sss
● Jika date dengan tanggal, waktu dan timezone, gunakan YYYY-MM-
DDTHH:mm:ss.sssZ
● Hasil parsing adalah unix timestamp, bukan object date
Format
Date
YYYY Tahun
MM Bulan
DD Tanggal
HH Jam
mm Menit
ss Detik
sss Milidetik
Z Timezone
Kode : Parsing
Date
Date Getter dan
Setter
● Date juga memiliki banyak sekali method untuk mendapatkan informasi date dan juga
mengubah informasi date, atau istilahnya adalah getter dan setter
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#insta
nce_methods
Kode : Date Getter dan
Setter
M ath
M ath
● Math merupakan class di JavaScript yang berisikan static property dan method untuk
operasi matematika
● Ada banyak sekali static property dan method di Math
● Math hanya bisa digunakan untuk tipe data Number, tidak bisa digunakan untuk tipe data
BigInt
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math
Kode :
M ath
Boolean
Boolean
Pertama dibuat, tidak memiliki key Karena memiliki prototype, jadi bisa jadi
memiliki default key ketika pertama dibuat
Key bisa tipe data apapun Key hanya bisa string atau symbol
Jumlah key bisa diketahui dengan mudah Tidak bisa diketahui, harus manual
dengan attribute size menggunakan iterasi
Secara default tidak bisa dikonversi ke Bisa dikonversi ke JSON secara otomatis
JSON
Map Instance Method &
Property
Method & Property Keterangan
● Set merupakan implementasi dari struktur data yang berisikan data-data unique
● Set mirip seperti Array, hanya saja isi datanya selalu unique
● Jika kita menambahkan data yang sama, maka data hanya akan diterima satu saja
● Set mengimplementasikan kontrak iterable, sehingga bisa diiterasi secara default
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set
Set Instance Method &
Property
Method & Property Keterangan
● Symbol merupakan tipe data yang digaransi akan selalu unique setiap kali kita membuat
data symbol
● Symbol kadang banyak digunakan untuk membuat key pada object
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symb
ol
Kode :
Symbol
Symbol
For
● Kadang agak sulit membuat symbol harus selalu menggunakan variable
● Pembuatan symbol juga bisa menggunakan static method Symbol.for(key)
● Jika kita menggunakan key yang sama, Symbol yang sama akan sekalu
dikembalikan
Kode : Symbol
For
RegExp
RegExp
replaceAll(regex, value) Mengubah semua data dengan value yang sesuai regex
● Proxy merupakan fitur yang bisa digunakan sebagai wakil sebuah data
● Dengan menggunakan proxy, semua interaksi ke data akan selalu melalui Proxy terlebih
dahulu
● Dengan ini, kita bisa melakukan apapun sebelum interaksi dilakukan ke data yang dituju
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
Proxy
Handler
● Pembuatan Proxy perlu menggunakan handler, dimana dalam handler, kita bisa membuat
function yang dinamakan interceptor yang digunakan ketika mengambil data atau mengubah
data ke target
● Untuk membuat Proxy, kita bisa menggunakan new Proxy(target, handler)
Kode : M embuat
Handler
Kode : M embuat
Proxy
Proxy dan
Handler
● Saat kita mengubah data proxy, secara otomatis data akan dikirim ke target melalui handler
dengan memanggil function set(target, property, value)
● Saat kita mengambil data proxy, secara otomatis data akan diambil dari target melalui
handler dengan memanggil function get(target, property)
● Artinya, jika kita ingin melakukan sesuatu sebelum dan setelah nya, bisa kita lakukan di
handler
Kode : Log
Handler
Reflect
Reflect
● Saat kita menulis URL, kadang kita ingin menambahkan informasi tambahan seperti
query parameter misalnya
● URL sendiri sudah memiliki standard encoding penulisan URL
● Standard encoding ini dilakukan agar penulisan URL aman ketika diterima oleh server
● Aman disini dalam artian informasi URL tidak berubah
● Contoh paling sederhana, misal, walaupun kita bisa mengirim spasi dalam url, tapi
disarankan untuk di encode agar nilai spasi tidak benar-benar terlihat seperti spasi pada
URL nya
Contoh M asalah Jika Tidak M enggunakan
Encode
● Misal ada query parameter dengan nama data, lalu kita ingin mengirimkan nilai kesana
● Misal nilainya adalah &eko=eko&, alhasil URL nya akan seperti berikut
● http://contoh.com?data=&eko=eko&
● URL diatas terlihat tidak ada masalah, tapi sebenarnya ketika diterima oleh server, parameter
data bernilai kosong, kenapa? karena & dianggap sebagai pemisah antar parameter
● Artinya tanda seperti & dan lain-lain perlu di encode, agar tidak terjadi kesalahan data yang
kita kirim
Encode Function
Function Keterangan
● Base64 merupakan binary to text encoding, representasi binary data dalam format string
● Base64 merupakan format text data yang aman untuk dikirimkan di web
● Base64 merupakan encoding yang biasanya digunakan ketika perlu mengirim data dari client
ke server
● Karena encoding Base64 merupakan text, oleh karena itu sangat aman digunakan pada
query param URL atau text body dalam form
● https://developer.mozilla.org/en-US/docs/Glossary/Base64
Base64
Function
JavaScript memiliki function bawaan untuk melakukan encode Base64 atau decode
base64
Function Keterangan
● Eval merupakan function yang digunakan untuk mengeksekusi kode JavaScript dari String
● Fitur ini sangat menarik, namun perlu hati-hati ketika menggunakannya
● Jika sampai salah penggunaan, maka bisa jadi kita malah mengeksekusi kode program yang
bisa menyebabkan masalah keamanan di website kita
● https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
Kode :
Eval
M ateri
Selanjutnya
M ateri Selanjutnya
● JavaScript Modules
● JavaScript Document Object
Model
● JavaScript Async
● JavaScript Web API