Skip to content

Commit 9d4def9

Browse files
authored
Merge pull request #38 from javascript-tutorial/sync-a0bfa924
Sync with upstream @ a0bfa92
2 parents a7f3481 + a758eff commit 9d4def9

File tree

213 files changed

+4753
-3784
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

213 files changed

+4753
-3784
lines changed

1-js/01-getting-started/1-intro/article.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@ Script tersedia dan dieksekusi sebagai sebuah teks biasa. Script tidak membutuhk
1212

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

15+
<<<<<<< HEAD
1516
```smart header="Kenapa <u>Java</u>Script?"
1617
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.
18+
=======
19+
```smart header="Why is it called <u>Java</u>Script?"
20+
When JavaScript was created, it initially had another name: "LiveScript". But Java was very popular at that time, so it was decided that positioning a new language as a "younger brother" of Java would help.
21+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
1722
1823
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.
1924
```

1-js/01-getting-started/2-manuals-specifications/article.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,19 @@
44
Buku ini adalah *tutorial*. Tujuannya membantu kamu memahami bahasa ini pelan-pelan. Tapi sekali kamu akrab dengan dasarnya, kamu butuh sumber lain.
55

66

7+
<<<<<<< HEAD
78
## Spesifikasi
9+
=======
10+
[The ECMA-262 specification](https://www.ecma-international.org/publications/standards/Ecma-262.htm) contains the most in-depth, detailed and formalized information about JavaScript. It defines the language.
11+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
812
913
**Spesifikasi ECMA-262** berisi informasi format, detil, and mendalam tentang JavaScript. Ia mendefisikan bahasa ini.
1014

15+
<<<<<<< HEAD
1116
Tapi karena menjadi formal, ia sulit dipahami di awal. Jadi jika kamu butuh sumber informasi terpercaya tentang detil bahasa, spesifikasi ini tempat yang tepat. Tapi ini bukan untuk penggunaan harian.
17+
=======
18+
A new specification version is released every year. In-between these releases, the latest specification draft is at <https://tc39.es/ecma262/>.
19+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
1220
1321
Draft terakhir ada di <https://tc39.es/ecma262/>.
1422

1-js/01-getting-started/3-code-editors/article.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,19 @@ Pada praktiknya, editor ringan bisa punya banyak plugin termasuk syntax analyzer
3131

3232
Opsi-opsi berikut patut anda perhatikan:
3333

34+
<<<<<<< HEAD
3435
- [Atom](https://atom.io/) (lintas-platform, gratis).
3536
- [Visual Studio Code](https://code.visualstudio.com/) (lintas-platform, gratis).
3637
- [Sublime Text](http://www.sublimetext.com) (lintas-platform, shareware).
3738
- [Notepad++](https://notepad-plus-plus.org/) (Windows, gratis).
3839
- [Vim](http://www.vim.org/) dan [Emacs](https://www.gnu.org/software/emacs/) sangat keren juga jika kamu tahu cara pakainya.
40+
=======
41+
- [Atom](https://atom.io/) (cross-platform, free).
42+
- [Visual Studio Code](https://code.visualstudio.com/) (cross-platform, free).
43+
- [Sublime Text](http://www.sublimetext.com) (cross-platform, shareware).
44+
- [Notepad++](https://notepad-plus-plus.org/) (Windows, free).
45+
- [Vim](http://www.vim.org/) and [Emacs](https://www.gnu.org/software/emacs/) are also cool if you know how to use them.
46+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
3947
4048
## Jangan berdebat
4149

1-js/02-first-steps/01-hello-world/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ Komen sebelum dan setelah script.
6060
//--></script>
6161
```
6262

63+
<<<<<<< HEAD
6364
Trik ini tidak lagi dipakai di JavaScript modern. Komen ini menyembunyikan kode JavaScript dari peramban tua yang tak tahu cara memproses tag `<script>`. Oleh karena peramban yang dirilis 15 tahun terakhir tak punya masalah terkait ini, komen macam ini bisa membantumu mengidentifikasi kode yang sangat jadul.
65+
=======
66+
This trick isn't used in modern JavaScript. These comments hide JavaScript code from old browsers that didn't know how to process the `<script>` tag. Since browsers released in the last 15 years don't have this issue, this kind of comment can help you identify really old code.
67+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
6468
6569

6670
## Script External

1-js/02-first-steps/04-variables/article.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ Variabel digunakan untuk menyimpan informasi ini.
1212

1313
Untuk membuat variabel di JavaScript, gunakan katakunci `let`.
1414

15+
<<<<<<< HEAD
1516
Pernyataan di bawah membuat (dengan kata lain: *declares* or *defines*) variabel dengan nama "message":
17+
=======
18+
The statement below creates (in other words: *declares*) a variable with the name "message":
19+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
1620
1721
```js
1822
let message;
@@ -237,7 +241,11 @@ Untuk mendeklarasi variabel konstan (tak berubah), gunakan `const` ketimbang `le
237241
const myBirthday = '18.04.1982';
238242
```
239243
244+
<<<<<<< HEAD
240245
Variabel dideklarasi menggunakan `const` disebut "konstan". Mereka tak bisa diubah. Jika kamu mencoba mengubahnya maka ia menghasilkan galat:
246+
=======
247+
Variables declared using `const` are called "constants". They cannot be reassigned. An attempt to do so would cause an error:
248+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
241249
242250
```js run
243251
const myBirthday = '18.04.1982';
@@ -290,7 +298,11 @@ Dengan kata lain, konstan berhuruf kapital hanya digunakan sebagai alias untuk n
290298
291299
Berbicara tentang variabel, ada satu hal yang sangat penting.
292300
301+
<<<<<<< HEAD
293302
Nama variabel sebaiknya punya arti yang bersih dan jelas, menjelaskan data yang ia simpan dengan pantas.
303+
=======
304+
A variable name should have a clean, obvious meaning, describing the data that it stores.
305+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
294306
295307
Penamaan variabel adalah salah satu keahlian yang penting dan rumit dalam pemrograman. Pandangan sekilas pada nama variabel bisa menyingkap kode yang ditulis oleh pengembang pemula versus pengembang berpengalaman.
296308

1-js/02-first-steps/06-type-conversions/1-primitive-conversions-questions/solution.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,22 @@ true + false = 1
1414
" -9 " - 5 = -14 // (4)
1515
null + 1 = 1 // (5)
1616
undefined + 1 = NaN // (6)
17+
" \t \n" - 2 = -2 // (7)
1718
```
1819

20+
<<<<<<< HEAD
1921
1. Penambahan dengan string `"" + 1` mengkonversi `1` ke string: `"" + 1 = "1"`, dan kita punya `"1" + 0`, aturan yang sama berlaku.
2022
2. Pengurangan `-` (seperti kebanyakan operasi matematika) cuma berjalan dengan angka, ia mengkonversi string kosong `""` ke `0`.
2123
3. Penambahan dengan string mengappend angka `5` ke string.
2224
4. Pengurangan selalu mengkonversi ke angka, jadi ia membuat `" -9 "` menjadi angka `-9` (mengabaikan spasi sekitarnya).
2325
5. `null` menjadi `0` setelah konversi numerik.
2426
6. `undefined` menjadi `NaN` setelah konversi numerik.
27+
=======
28+
1. The addition with a string `"" + 1` converts `1` to a string: `"" + 1 = "1"`, and then we have `"1" + 0`, the same rule is applied.
29+
2. The subtraction `-` (like most math operations) only works with numbers, it converts an empty string `""` to `0`.
30+
3. The addition with a string appends the number `5` to the string.
31+
4. The subtraction always converts to numbers, so it makes `" -9 "` a number `-9` (ignoring spaces around it).
32+
5. `null` becomes `0` after the numeric conversion.
33+
6. `undefined` becomes `NaN` after the numeric conversion.
34+
7. Space characters, are trimmed off string start and end when a string is converted to a number. Here the whole string consists of space characters, such as `\t`, `\n` and a "regular" space between them. So, similarly to an empty string, it becomes `0`.
35+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac

1-js/02-first-steps/06-type-conversions/1-primitive-conversions-questions/task.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ true + false
2121
" -9 " - 5
2222
null + 1
2323
undefined + 1
24+
" \t \n" - 2
2425
```
2526

2627
Pikirkan dengan baik, tulis dan bandingkan dengan jawaban.

1-js/02-first-steps/06-type-conversions/article.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Ada juga kasus di mana kita harus explisit mengkonversi nilai ke tipe yang dihar
1010
Di bab ini, kita takkan mengcover objek. Daripada itu, kita akan belajar primitives dulu. Lalu, setelah kita belajar tentang objek, kita akan lihat cara konversi objek bekerja di bab <info:object-toprimitive>.
1111
```
1212

13-
## ToString
13+
## String Conversion
1414

1515
Konversi string terjadi ketika kita butuh bentuk string dari nilai.
1616

@@ -30,7 +30,7 @@ alert(typeof value); // string
3030

3131
Konversi string kebanyakan jelas. `false` menjadi `"false"`, `null` menjadi `"null"`, dll.
3232

33-
## ToNumber
33+
## Numeric Conversion
3434

3535
Konversi numerik terjadi otomatis dalam fungsi dan expresi matematis.
3636

@@ -94,7 +94,7 @@ alert( '1' + 2 ); // '12' (string ke kiri)
9494
Ini cuma terjadi ketika setidaknya satu dari argumen yaitu string. Sebaliknya, nilai dikonversi ke angka.
9595
````
9696

97-
## ToBoolean
97+
## Boolean Conversion
9898

9999
Konversi boolean ialah yang paling simpel.
100100

@@ -124,14 +124,24 @@ alert( Boolean(" ") ); // spaces, also true (any non-empty string is true)
124124
```
125125
````
126126
127+
<<<<<<< HEAD
127128
128129
## Kesimpulan
130+
=======
131+
## Summary
132+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
129133
130134
Tiga tipe konversi yang paling digunakan ialah ke string, ke angka, dan ke boolean.
131135
136+
<<<<<<< HEAD
132137
**`ToString`** -- Terjadi ketika kita mengoutput sesuatu. Bisa berjalan dengan `String(value)`. Konversi ke string biasanya untuk nilai primitive.
133138
134139
**`ToNumber`** -- Terjadi di operasi matematika. Bisa berjalan dengan `Number(value)`.
140+
=======
141+
**`String Conversion`** -- Occurs when we output something. Can be performed with `String(value)`. The conversion to string is usually obvious for primitive values.
142+
143+
**`Numeric Conversion`** -- Occurs in math operations. Can be performed with `Number(value)`.
144+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
135145
136146
Konversinya mengikuti aturan ini:
137147
@@ -142,7 +152,11 @@ Konversinya mengikuti aturan ini:
142152
|<code>true&nbsp;/&nbsp;false</code> | `1 / 0` |
143153
| `string` | Stringnya dibaca "apa adanya", whitespace dari kedua sisi diabaikan. String kosong menjadi `0`. Error memberikan `NaN`. |
144154
155+
<<<<<<< HEAD
145156
**`ToBoolean`** -- Terjadi di operasi logika. Bisa berjalan dengan `Boolean(value)`.
157+
=======
158+
**`Boolean Conversion`** -- Occurs in logical operations. Can be performed with `Boolean(value)`.
159+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
146160
147161
Ikuti aturan ini:
148162

1-js/02-first-steps/07-operators/article.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ Sebelum kita lanjut, mari pahami dulu terminologi umum.
2626
alert( y - x ); // 2, minus binary mengurangi nilai
2727
```
2828

29+
<<<<<<< HEAD
2930
Formalnya, kita akan membahas tentang dua operator berbeda di sini: negasi unary (operand tunggal: membalikkan tanda) dan pengurangan binary (dua operand: pengurangan).
31+
=======
32+
Formally, in the examples above we have two different operators that share the same symbol: the negation operator, a unary operator that reverses the sign, and the subtraction operator, a binary operator that subtracts one number from another.
33+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac
3034

3135
## Konkatenasi string, binary +
3236

1-js/02-first-steps/12-while-for/7-list-primes/solution.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,8 @@ for (let i = 2; i <= n; i++) { // untuk setiap i...
2626
}
2727
```
2828

29+
<<<<<<< HEAD
2930
Ada banyak ruang untuk mengoptimalkannya. Misalnya, kita dapat mencari pembagi dari `2` ke akar kuadrat dari `i`. Tapi bagaimanapun juga, jika kita ingin menjadi sangat efisien untuk interval besar, kita perlu mengubah pendekatan dan mengandalkan pada matematika lanjutan dan algotima kompleks seperti [Quadratic sieve](https://en.wikipedia.org/wiki/Quadratic_sieve), [General number field sieve](https://en.wikipedia.org/wiki/General_number_field_sieve) dsb.
31+
=======
32+
There's a lot of space to optimize it. For instance, we could look for the divisors from `2` to square root of `i`. But anyway, if we want to be really efficient for large intervals, we need to change the approach and rely on advanced maths and complex algorithms like [Quadratic sieve](https://en.wikipedia.org/wiki/Quadratic_sieve), [General number field sieve](https://en.wikipedia.org/wiki/General_number_field_sieve) etc.
33+
>>>>>>> a0bfa924a17cad8e7fee213904b27dbf57c2dbac

0 commit comments

Comments
 (0)