Uploaded by Me_Takoyaki

01. Pengantar JavaScript

advertisement
Pengantar JavaScript
Mari kita lihat apa yang istimewa tentang JavaScript, apa yang bisa kita capai dengan JavaScript, dan
teknologi apa yang cocok dengan JavaScript.
Apa itu JavaScript?
JavaScript awalnya dibuat untuk “membuat halaman web menjadi hidup”.
Program-program dalam Bahasa ini disebut script. Mereka dapat ditulis pada halaman web HTML dan
berjalan secara otomatis saat halaman dimuat.
Script disediakan dan dieksekusi sebagai teks biasa. Script tidak perlu persiapan atau kompilasi khusus
untuk dijalankan.
Dalam aspek ini, JavaScript sangat berbeda dari Bahasa lain yang disebut Java.
Mengapa disebut JavaScript?
Ketika JavaScript dibuat, awalnya memiliki nama lain “LiveScript”. Tetapi Java sangat popular pada saat itu,
sehingga diputuskan bahwa memposisikan Bahasa baru sebagai “Adik” java akan sedikit membantu.
Tetapi seiring perkembanganya, JavaScript menjadi Bahasa yang sepenuhnya independen dengan
spesifikasi sendiri yang disebut ECMAScript, dan sekarang tidak ada hubunganya dengan Java sama sekali.
Saat ini, JavaScript dapat dijalankan tidak hanya pada browser, tetapi juga pada server, atau sebenarnya
di perangkat apa pun yang memiliki program khusus yang disebut JavaScript Engine.
Browser memiliki mesin tertanam yang kadang disebut “JavaScript Virtual Machine”. Mesin yang berbeda
memiliki “Kode Nama” yang berbeda. Misalnya :
•
•
•
V8 – pada Chrome, Opera dan Edge.
SpiderMonkey – pada Firefox.
… ada kode nama lain seperti “Chakra” untuk IE, “JavaScriptCore”, “Nitro” dan “SquirrelFish” untuk
Safari, dll.
Istilah-istilah di atas perlu untuk diingat karena digunakan dalam artikel developer di dalam dunia internet.
Kami akan menggunakanya juga. Misalnya, jika “fitur X didukung oleh V8”, maka itu mungkin berfungsi di
Chrome, Opera dan Edge.
Bagaimana cara kerja mesin?
Mesin itu rumit. Tetapi pada dasarnya mudah.
1. Mesin (disematkan jika pada browser) membaca (“mengurai”) script.
2. Kemudian mengubah (“meng-compile”) script menjadi kode mesin.
3. Dan kemudian kode mesin berjalan, cukup cepat.
Mesin menerapkan optimasi pada setiap langkah prosesnya. Ia bahkan melihat script yang dikompilasi saat
berjalan, menganalisis data yang mengalir melaluinya, dan selanjutnya mengoptimalkan kode mesin
berdasarkan pengetahuan itu.
Apa yang bisa dilakukan JavaScript dalam browser?
JavaScript modern adalah Bahasa pemrograman yang “aman”. JavaScript tidak membuka akses tingkat
rendah ke memori atau CPU, karena pada awalnya dibuat untuk browser yang tidak memerlukan hal
tersebut.
Kemampuan JavaScript sangat bergantung pada lingkungan tempat JavaScript berjalan. Misalnya, Node.js
mendukung fungsi yang memungkinkan JavaScript untuk membaca/menulis file apapun, melakukan
permintaan jaringan, dll.
JavaScript dalam browser dapat melakukan segala sesuatu yang berkaitan dengan manipulasi halaman
web, interaksi dengan pengguna, dan web server.
Misalnya, JavaScript dalam browser dapat:
•
•
•
•
•
Menambahkan halaman HTML baru, merubah isinya, memodifikasi gaya HTML tersebut.
Bereaksi terhadap Tindakan pengguna, berjalan pada respon klik mouse, Gerakan pointer, tekanan
tombol.
Mengirim permintaan melalui jaringan ke server jarak jauh, mengunduh dan mengunggah file,
(disebut AJAX dan COMET).
Mendapatkan dan mengatur cookie, menanyakan pertanyaan kepada pengunjung, menampilkan
pesan.
Mengingat data pada client-side (“penyimpanan pesan”)
Apa yang tidak bisa dilakukan JavaScript dalam browser?
Kemampuan JavaScript di browser terbatas bertujuan untuk melindungi keselamatan pengguna. Tujuanya
adalah untuk mencegah halaman web jahat mengakses informasi pribadi atau merusak data pengguna.
Contoh pembatasan tersebut meliputi:
▪
JavaScript pada halaman web tidak boleh membaca/menulis file sembarangan pada hard disk,
menyalinnya atau menjalankan program. JavaScript tidak memiliki akses langsung ke fungsi OS.
Browser modern memungkinkan JavaScript bekerja dengan file, tetapi aksesnya terbatas dan
hanya disediakan jika pengguna melakukan tindakan tertentu, seperti “dropping” file ke jendela
browser atau memilihnya melalui tag HTML <input>.
Ada beberapa cara untuk berinteraksi dengan kamera/mikrofon dan perangkat lain, tetapi
memerlukan izin eksplisit dari pengguna. Jadi halaman JavaScript-enabled mungkin tidak dapat
diam-diam mengaktifkan kamera web, mengamati lingkungan dan mengirim informasi ke NSA.
▪
Tab/jendela yang berbeda umumnya tidak saling mengenal satu dengan lainnya. Tapi terkadang
mereka melakukannya, misalkan Ketika satu jendela menggunakan JavaScript untuk membuka
yang lain. Tetapi bahkan dalam kasus ini, JavaScript dari satu halaman mungkin tidak mengakses
halaman lain jika mereka berasal dari situs yang berbeda (dari domain, protocol, atau port yang
berbeda).
Hal ini disebut “Same Origin Policy”. Untuk mengatasinya, kedua halaman harus menyetujui
pertukaran data dan harus berisi kode JavaScript khusus yang menanganinya. Kita akan
membahasnya pada tutorial.
Keterbatasan ini sekali lagi, demi keselamatan pengguna. Halaman http://anysite.com tidak boleh
mengakses tab browser lain dengan URL http://gmail.com misalnya, dan mencuri informasi dari
sana.
▪
JavaScript dapat dengan mudah berkomunikasi melalui internet ke server. Tetapi kemampuanya
untuk menerima data dari situs/domain lain dilumpuhkan. Meskipun mungkin, itu membutuhkan
persetujuan eksplisit (dinyatakan pada header HTTP) dari sisi remote. Sekali lagi, itu adalah
batasan keamanan.
Batasan seperti itu tidak ada jika JavaScript digunakan di luar browser, misalnya di server. Browser modern
juga memungkinkan plugin/ekstensi yang mungkin meminta izin tambahan.
Apa yang membuat JavaScript unik?
Setidaknya ada tiga hal hebat tentang JavaScript :
1. Integrasi penuh dengan HTML/CSS.
2. Hal-hal sederhana dilakukan dengan sederhana.
3. Didukung oleh semua browser dan aktif secara default.
JavaScript adalah satu-satunya teknologi browser yang menggabungkan ketiga hal ini. Itulah yang
membuat JavaScript unik. Itulah mengaoa ini adalah alat yang paling luas untuk membuat antarmuka
browser.
Dapat dikatakan, JavaScript dapat digunakan untuk membuat server, aplikasi seluler dll.
Bahasa “Diluar” JavaScript
Sintaks JavaScript belum tentu sesuai dengan kebutuhan setiap orang. Orang yang berbeda menginginkan
fitur yang berbeda.
Itu yang diharapkan, karena proyek dan kebutuhan setiap orang berbeda.
Jadi, baru-baru ini sejumlah besar bahasa baru muncul, yang ditransplantasikan (dikonversi) ke JavaScript
sebelum berjalan di browser.
Alat modern membuat transplantasi sangat cepat dan transparan, memungkinkan pengembang untuk
membuat kode dalam bahasa lain dan mengubahnya secara otomatis “under the hood”.
Contoh Bahasa tersebut:
a. Cofeescript adalah “gula sintaksis” untuk JavaScript. CofeeScript memperkenalkan sintaks yang
lebih pendek, memungkingkan kita untuk menulis kode lebih jelas dan lebih tepat. Biasanya,
pengembang ruby menyukainya.
b. TypeScript berkonsentrasi pada penambahan “pengetikan data yang ketat” untuk
menyederhanakan pengembangan dan dukungan system yang kompleks. TypeScript
dikembangkan oleh Microsoft.
c. Flow juga menambahkan pengetikan data, tetpau dengan cara yang berbeda. Dikembangkan oleh
facebook.
d. Dart adalah Bahasa mandiri yang memiliki mesin sendiri yang berjalan di lingkungan non-browser
( seperti aplikasi seluler), tetapi juga dapat ditransplantasikan ke JavaScript. Dikembangkan oleh
Google.
e. Brython adalah traspiler Python ke JavaScript yang memungkinkan penulisan aplikasi dengan
python murni tanpa JavaScript.
f. Kotlin adalah Bahasa pemrograman moden, ringkas, dan aman yang dapat menargetkan browser
atau Node.
Masih ada lagi. Tentu saja, bahkan jika kita menggunakan salah atu Bahasa transpiled ini, kita juga harus
tahu JavaScript untuk benar-benar memahami apa yang kita lakukan.
Ringkasan
a. JavaScript awalnya dibuat sebagai Bahasa browser saja, tetapi sekarang digunakan di banyak
lingkungan lain juga.
b. Saat ini JavaScript memiliki posisi unik sebagai Bahasa browser yang paling banyak diadopsi,
sepenuhnya terintegrasi dengan HTML/CSS.
c. Ada banyak bahasa yang bisa “ditranpilasi” ke JavaScript dan menyediakan fitur-fitur tertentu.
Disarankan untuk melihatnya, setidaknya sebentar, setelah menguasai JavaScript.
Download