Skip to content

Commit 497f38f

Browse files
authored
Merge pull request #20 from Hacktivating/patch-1
article.md
2 parents 20fd604 + 6b8ca15 commit 497f38f

File tree

1 file changed

+43
-42
lines changed

1 file changed

+43
-42
lines changed
+43-42
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,110 @@
11
# Pengenalan JavaScript
22

3-
Mari kita tengok apa yang spesial dari JavaScript, apa saja yang bisa kita perbuat menggunakan JavaScript, dan teknologi apa yang klop dengan JavaScript.
3+
Mari kita lihat apa yang spesial dari JavaScript, apa saja yang bisa kita buat menggunakan JavaScript, dan teknologi apa yang cocok dengan JavaScript.
44

55
## Apa itu JavaScript?
66

7-
*JavaScript* awalnya dibuat untuk *"membuat laman web menjadi hidup"*.
7+
*JavaScript* awalnya dibuat untuk *"membuat halaman web menjadi hidup"*.
88

9-
Program yang ada dalam bahasa ini disebut *script*. Mereka bisa ditulis langsung dalam laman web HTML dan berjalan otomatis saat laman diload.
9+
Program yang ada dalam bahasa ini disebut *script*. Script ini bisa ditulis langsung ke dalam kode HTML dari sebuah web dan berjalan otomatis saat halaman dimuat.
1010

11-
Script tersedia dan dieksekusi sebagai plain text. Mereka tak butuh persiapan spesial atau kompilasi untuk berjalan.
11+
Script tersedia dan dieksekusi sebagai sebuah teks biasa. Script tidak membutuhkan persiapan khusus atau kompilasi untuk dijalankan.
1212

13-
Dalam apsek ini, JavaScript sangat berbeda dari bahasa lain yang disebut [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
13+
Dalam hal ini, JavaScript sangat berbeda dari bahasa lain yang disebut [Java](https://en.wikipedia.org/wiki/Java_(programming_language)).
1414

1515
```smart header="Kenapa <u>Java</u>Script?"
16-
Saat JavaScript diciptakan, nama awalnya adalah "LiveScript". Namun saat itu Java sudah sangat popular duluan sehingga akhirnya muncul keputusan untuk mengganti nama LiveScript menjadi Javascript supaya Javascript ketularan populer seperti Java dan seolah-olah menjadi adik dari Java.
16+
Saat JavaScript diciptakan, nama awalnya adalah "LiveScript". Namun saat itu Java sudah sangat terkenal sehingga akhirnya muncul keputusan untuk mengganti nama LiveScript menjadi Javascript supaya Javascript ikut terkenal seperti Java dan seolah-olah menjadi "adik kandung" dari Java.
1717
1818
Seiring waktu, JavaScript tumbuh menjadi bahasa yang sepenuhnya bebas dengan memiliki spesifikasi [ECMAScript](http://en.wikipedia.org/wiki/ECMAScript), dan sekarang JavaScript tak punya hubungan apa-apa dengan Java.
1919
```
2020

21-
Hari ini, JavaScript bisa berjalan tak hanya pada peramban, tapi juga di server, atau di device manapun yang memiliki program spesial [JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
21+
Sekarang, JavaScript bisa berjalan tak hanya pada browser, tapi juga di server, atau di perangkat manapun yang memiliki program khusus [JavaScript engine](https://en.wikipedia.org/wiki/JavaScript_engine).
2222

23-
Peramban punya engine tertancap yang disebut "JavaScript virtual machine".
23+
Browser punya engine yang tertanam didalamnya yang disebut "JavaScript virtual machine".
2424

25-
Tiap engine punya "codename" sendiri-sendiri. Misalnya:
25+
Tiap engine punya *codename*-nya sendiri. Misalnya:
2626

2727
- [V8](https://en.wikipedia.org/wiki/V8_(JavaScript_engine)) -- di Chrome dan Opera.
2828
- [SpiderMonkey](https://en.wikipedia.org/wiki/SpiderMonkey) -- di Firefox.
29-
- ...Ada codename lain seperti "Trident" dan "Chakra" untuk versi berbeda dari IE, "ChakraCore" untuk Microsoft Edge, "Nitro" dan "SquirrelFish" untuk Safari, dll.
29+
- ...Ada juga codename lain seperti "Trident" dan "Chakra" untuk versi berbeda dari IE, "ChakraCore" untuk Microsoft Edge, "Nitro" dan "SquirrelFish" untuk Safari, dll.
3030

31-
Istilah di atas sebaiknya diingat karena mereka digunakan dalam artikel pengembang di internet. Kita akan menggunakan mereka juga. Misalnya, kalau "fitur X didukung V8", kemungkinan ia bisa jalan di Chrome dan Opera.
31+
Istilah di atas sebaiknya diingat karena akan sering digunakan dalam artikel para developer di internet. Kita akan menggunakannya juga. Misalnya, jika "fitur X didukung V8", kemungkinan ia bisa jalan di Chrome dan Opera.
3232

3333
```smart header="Bagaimana engine bekerja?"
3434
3535
Engine sangat rumit. Tapi basicnya mudah.
3636
37-
1. Engine (tertanam jika ia sebuah browser) membaca ("memparsing") script.
38-
2. Lalu ia mengkonversi ("mengkompilasi") script menjadi bahasa mesin.
37+
1. Engine (tertanam jika ia sebuah browser)bisa membaca ("memparsing") script.
38+
2. Lalu ia mengkonversi ("mengkompilasi") script tersebut menjadi bahasa mesin.
3939
3. Dan kemudian kode mesin berjalan, lumayan cepat.
4040
41-
Engine mengaplikasikan optimisasi di setiap langkah proses. Dia bahkan memperhatikan kompilasi script yang berjalan, menganalisa data yang mengalir di dalam, dan mengaplikasikan optimisasi ke kode mesin berdasarkan pengetahuan itu. Ketika selesai, script berjalan lumayan cepat.
41+
Engine melakukan optimisasi di setiap langkah proses. Dia bahkan memperhatikan script yang telah dikompilasi saat sedang berjalan, menganalisa data yang mengalir di dalam, dan melakukan optimisasi ke kode mesin berdasarkan pengetahuan itu. Ketika selesai, script berjalan lumayan cepat.
4242
```
4343

44-
## Apa yang bisa dilakukan in-browser JavaScript?
44+
## Apa yang bisa dilakukan *in-browser JavaScript*?
4545

46-
JavaScript modern merupakan bahasa pemrograman yang "aman". Ia tak menyediakan akses tingkat-rendah ke memory atau CPU, karena a awalnya dibuat untuk peramban yang tak butuh itu.
46+
JavaScript modern merupakan bahasa pemrograman yang "aman". Ia tidak menyebabkan akses tingkat-rendah ke memory atau CPU, karena memang awalnya dibuat untuk browser, yang tentunya tidak membutuhkan hal tersebut.
4747

4848
Kemampuan JavaScript sangat tergantung pada lingkungan tempat ia berjalan. Misalnya, [Node.js](https://wikipedia.org/wiki/Node.js) mendukung function yang memungkingkan JavaScript melakukan baca/tulis file apapun, melakukan permintaan jaringan, dsb.
4949

50-
In-browser JavaScript bisa melakukan apapun terkait manipulasi laman web, interaksi dengan pengguna, dan webserver.
50+
*In-browser JavaScript* bisa melakukan apapun terkait manipulasi halaman web, interaksi dengan pengguna, dan webserver.
5151

52-
Misalnya, in-browser JavaScript mampu:
52+
Misalnya, *in-browser JavaScript* mampu:
5353

54-
- Menambah HTML baru ke laman, mengganti isinya, memodifikasi gayanya.
54+
- Menambah HTML baru ke sebuah halaman, mengganti isinya, memodifikasi gayanya.
5555
- Bereaksi terhadap aktifitas pengguna, berjalan saat mouse diklik, pointer digerakkan, tombol ditekan.
5656
- Mengirim permintaan jaringan ke remote server, mengunduh dan mengunggah file (disebut teknologi [AJAX](https://en.wikipedia.org/wiki/Ajax_(programming)) dan [COMET](https://en.wikipedia.org/wiki/Comet_(programming))).
57-
- Memperoleh and mengeset cookie, bertanya ke pengunjung, menampilkan pesan.
57+
- Memperoleh and menset cookie, bertanya ke pengunjung, menampilkan pesan.
5858
- Menyimpan data pada client-side ("local storage").
5959

60-
## Apa yang TIDAK BISA dilakukan in-browser JavaScript?
60+
## Apa yang TIDAK BISA dilakukan *in-browser JavaScript*?
6161

62-
Kemampuan JavaScript pada peramban terbatas demi keamanan pengguna. Tujuannya supaya mencegah laman web jahat mengakses informasi pribadi atau merusak data pengguna.
62+
Kemampuan JavaScript yang ada di dalam browser terbatas demi keamanan pengguna. Tujuannya supaya mencegah halaman web berbahya mengakses informasi pribadi atau merusak data pengguna.
6363

6464
Contoh keterbatasan tersebut meliputi:
6565

66-
- JavaScript pada laman web tak boleh melakukan baca/tulis file semaunya pada hard disk, mengkopi atau mengeksekusi program. Ia tak punya akses langsung ke OS system functions.
66+
- JavaScript pada halaman web tak boleh membaca/mengubah file semaunya pada hard disk, mengcopy script tersebut, atau mengeksekusi program. Ia tak punya akses langsung ke OS system functions.
6767

68-
Peramban modern memperbolehkan ia bekerja dengan file, tapi aksesnya dibatasi dan tersedia hanya jika pengguna melakukan hal tertentu, seperti "menjatuhkan" file ke dalam jendela peramban atau memilih file via tag `<input>`.
68+
Browser-browser modern memperbolehkan JavaScript mengakses file, tapi aksesnya dibatasi dan tersedia hanya jika pengguna melakukan hal tertentu, misalnya seperti "menjatuhkan" file ke dalam jendela browser atau memilih file via tag `<input>`.
6969

70-
Ada cara berinteraksi dengan kamera/microfon dan device lainnya, namun mereka butuh ijin explisit pengguna. Jadi laman dengan kemampuan JavaScript tak boleh mengaktifkan web-camera, memantau sekeliling dan mengirim informasinya ke [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
71-
- Tab/window yang berbeda umumnya tak kenal satu sama lain. Terkadang mereka bisa kenal, misalnya ketika satu window menggunakan JavaScript untuk membuka window lainnya. Tapi meski demikian, JavaScript dari suatu laman tak boleh mengakses laman lainnya jika mereka datang dari situs berbeda (dari domain, protokol, atau port berbeda).
70+
Ada beberapa cara untuk berinteraksi dengan kamera/mikrofon dan perangkat-perangkat lainnya, namun mereka butuh ijin khusus pengguna. Jadi sebuah halaman yang memiliki JavaScript tidak bisa mengaktifkan web-camera, memantau sekeliling dan mengirim informasinya ke [NSA] secara diam-diam(https://en.wikipedia.org/wiki/National_Security_Agency).
71+
- Tab/jendela yang berbeda umumnya tidak ada hubungan sama sekali. Terkadang jendela yang berbeda bisa saling berhubungan juga, misalnya ketika satu jendela menggunakan JavaScript untuk membuka jendela lainnya. Tapi meski demikian, JavaScript dari suatu halaman tak boleh mengakses halaman lainnya jika mereka berasal dari situs yang berbeda (dari domain, protokol, atau port berbeda).
7272

73-
Ini disebut "Same Origin Policy". Untuk mengatasinya, *kedua laman* harus menyepakai pertukaran data dan mengandung kode JavaScript spesial yang menangani hal itu. Kita akan membahasnya dalam tutorial ini.
73+
Ini disebut "Same Origin Policy". Untuk melakukan hal tersebut, *kedua halaman* harus sepakat terhadap adanya pertukaran data dan memiliki kode JavaScript khusus yang melakukan hal tersebut. Kita akan membahasnya nanti dalam tutorial ini.
7474

75-
Batasan ini pun demi keselamatan pengguna. Satu laman dari `http://anysite.com` yang dibuka pengguna tak boleh mengakses tab peramban lainnya dengan URL `http://gmail.com` dan mencuri informasinya.
76-
- JavaScript bisa dengan mudah berkomunikasi di atas jaring ke server di mana laman berasal. Tapi kemampuannya menerima data dari situs/domain lain dilumpuhkan. Meskipun mampu, ia butuh persetujuan explisit (yang diexpresikan dalam HTTP header) dari sisi remote. Sekali lagi, itu merupakan batasan keamanan.
75+
Pembatasan ini pun demi keselamatan pengguna. Sebuah halaman dari `http://anysite.com` yang dibuka pengguna tidak akan bisa mengakses tab browser lainnya dengan URL `http://gmail.com` dan mencuri informasinya.
76+
77+
- JavaScript bisa dengan mudah berinteraksi secara online ke server di mana halaman berasal. Tapi kemampuannya menerima data dari situs/domain lain dilumpuhkan. Meskipun mampu, ia butuh persetujuan explisit (yang diexpresikan dalam HTTP header) dari sisi remote. Sekali lagi, itu merupakan pembatasan keamanan.
7778

7879
![](limitations.svg)
7980

80-
Batasan macam ini tak akan muncul jika JavaScript digunakan di luar peramban, misalnya di server. Peramban modern juga memperbolehkan plugin/extension dengan ijin tambahan.
81+
Pembatasan macam ini tidak ada jika JavaScript digunakan di luar browser, misalnya di server. Browser-browser modern juga memperbolehkan plugin/ekstensi yang membutuhkan ijin tambahan.
8182

8283
## Apa yang membuat JavaScript unik?
8384

84-
Ada minimal *tiga* hal baik dari JavaScript:
85+
Ada minimal *tiga* hal unik dari JavaScript:
8586

8687
```compare
8788
+ Integrasi penuh dengan HTML/CSS.
88-
+ Hal simpel diselesaikan dengan simpel.
89-
+ Dukungan peramban mayoritas dan aktif secara default.
89+
+ Hal sederhana diselesaikan dengan sederhana.
90+
+ Dukungan dari mayoritas web browser dan aktif secara default.
9091
```
91-
JavaScript merupakan satu-satunya teknologi peramban yang mengkombinasikan ketiganya.
92+
JavaScript merupakan satu-satunya teknologi browser yang mengkombinasikan ketiga poin di atas.
9293

93-
Itu yang membuat JavaScript unik. Itulah kenapa JavaScript menjadi alat yang paling banyak tersebar untuk membuat antarmuka peramban.
94+
Itulah yang membuat JavaScript unik. Itulah kenapa JavaScript menjadi alat yang paling sering untuk membuat antarmuka browser.
9495

95-
Sambil merencanakan belajar teknologi baru, akan menguntungkan juga untuk mengecek perspektifnya. Jadi mari kita lanjut ke tren modern yang mempengaruhinya, termasuk kemampuan peramban dan bahasa baru.
96+
Yang artinya, JavaScript memungkinkan kita untuk membuat server, aplikasi mobile, dsb
9697

9798

9899
## Bahasa "di atas" JavaScript
99100

100-
Syntax JavaScript tidak memenuhi kebutuhan tiap orang. Masing-masing orang ingin fitur yang berbeda-beda.
101+
Sintaks JavaScript tidak memenuhi kebutuhan setiap orang. Masing-masing orang ingin fitur yang berbeda-beda.
101102

102103
Itu wajar, karena proyek dan persyaratan tiap orang berbeda-beda.
103104

104-
Akhir-akhir ini muncul banyak bahasa baru, yang *ditranspile* (dikonversi) ke JavaScript sebelum mereka berjalan di peramban.
105+
Akhir-akhir ini muncul banyak bahasa baru, yang *ditranspile* (dikonversi) ke JavaScript sebelum dijalankan di browser.
105106

106-
Tool modern membuat transpilasi sangat cepat dan transparan, yang sebenarnya membuat pengembang mengkode dalam bahasa lain dan mengautokonversi itu "di balik layar".
107+
Tool-tool modern membuat transpilasi sangat cepat dan transparan, yang memungkinkan para developer menulis kodenya dalam bahasa lain dan mengautokonversi itu "di balik layar".
107108

108109
Contoh bahasa yang dimaksud:
109110

@@ -116,6 +117,6 @@ Masih banyak lagi. Tentunya, jika kita menggunakan salah satu bahasa yang ditran
116117

117118
## Kesimpulan
118119

119-
- JavaScript awalnya diciptakan sebagai bahasa khusus peramban, namun sekarang banyak digunakan di lingkungan lain.
120-
- Hari ini, JavaScript mempunyai posisi unik sebagai bahasa peramban paling banyak diadopsi dengan integrasi penuh dengan HTML/CSS.
121-
- Ada banyak bahasa yang "ditranspile" ke JavaScript dan menyediakan fitur tertentu. Disarankan untuk mempelajari mereka juga, minimal sebentar, setelah menguasai JavaScript.
120+
- JavaScript awalnya diciptakan sebagai bahasa khusus browser, namun sekarang banyak digunakan di lingkungan lain.
121+
- Sekarang, JavaScript mempunyai posisi unik sebagai bahasa browser paling banyak diadopsi dengan integrasi penuh dengan HTML/CSS.
122+
- Ada banyak bahasa yang "ditranspile" ke JavaScript dan menyediakan fitur tertentu. Disarankan untuk mempelajari mereka juga, minimal sebentar, setelah menguasai JavaScript.

0 commit comments

Comments
 (0)