diff --git a/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/solution.md b/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/solution.md
index 6d1d795c6..9d902d675 100644
--- a/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/solution.md
+++ b/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/solution.md
@@ -1,6 +1,6 @@
Jawabannya: `1` dan `2`.
-Pengendali pertama dijalankan, karena tidak di hapuskan oleh `removeEventListener`. Untuk menghapuskan pengendali kita harus meneruskan secara tepat fungsi yang telah di atur. Dan pada kode sebuah fungsi baru di teruskan, terlihat sama, tapi berbeda fungsi.
+penangan pertama dijalankan, karena tidak di hapuskan oleh `removeEventListener`. Untuk menghapuskan penangan kita harus meneruskan secara tepat fungsi yang telah di atur. Dan pada kode sebuah fungsi baru di teruskan, terlihat sama, tapi berbeda fungsi.
Untuk menghapuskan objek fungsi, kita harus menyimpan refensi ke fungsi tersebut, seperti ini:
@@ -13,4 +13,4 @@ button.addEventListener("click", handler);
button.removeEventListener("click", handler);
```
-Pengendali `button.onclick` bekerja secara sendiri dan sebagai tambahan untuk `addEvenetListener`.
+penangan `button.onclick` bekerja secara sendiri dan sebagai tambahan untuk `addEvenetListener`.
diff --git a/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/task.md b/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/task.md
index b3ec43664..11a556d66 100644
--- a/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/task.md
+++ b/2-ui/2-events/01-introduction-browser-events/03-which-handlers-run/task.md
@@ -2,11 +2,11 @@ importance: 5
---
-# Pengendali mana yang dijalankan?
+# Penangan mana yang dijalankan?
Ada sebuah tombol pada variable. Tidak ada pengedali di tombol tersebut.
-Manakah pengendali yang dijalankan pada saat klik pada kode berikut ini? Manakah `alert` yang akan ditunjukan?
+Manakah penangan yang dijalankan pada saat klik pada kode berikut ini? Manakah `alert` yang akan ditunjukan?
```js no-beautify
button.addEventListener("click", () => alert("1"));
diff --git a/2-ui/2-events/01-introduction-browser-events/04-move-ball-field/solution.md b/2-ui/2-events/01-introduction-browser-events/04-move-ball-field/solution.md
index b04cb8231..ee7cb5dc4 100644
--- a/2-ui/2-events/01-introduction-browser-events/04-move-ball-field/solution.md
+++ b/2-ui/2-events/01-introduction-browser-events/04-move-ball-field/solution.md
@@ -1,11 +1,11 @@
-First we need to choose a method of positioning the ball.
+Pertama kita perlu memilih metode untuk memposisikan bola.
-We can't use `position:fixed` for it, because scrolling the page would move the ball from the field.
+Kita tidak dapat menggunakan `position:fixed` untuk itu, karena pada saat halaman digulir bola akan berpindah dari lapangan.
-So we should use `position:absolute` and, to make the positioning really solid, make `field` itself positioned.
+Jadi kita sebaiknya menggunakan `position:absolute` dan, untuk membuat posisinya benar-benar tepat, buat lapangan(_`field`_) itu sendiri diposisikan.
-Then the ball will be positioned relatively to the field:
+Kemudian bola akan diposisikan relatif terhadap lapangan(_`field`_):
```css
#field {
@@ -16,36 +16,36 @@ Then the ball will be positioned relatively to the field:
#ball {
position: absolute;
- left: 0; /* relative to the closest positioned ancestor (field) */
+ left: 0; /* relatif ke posisi terdekat blok atas (lapangan) */
top: 0;
- transition: 1s all; /* CSS animation for left/top makes the ball fly */
+ transition: 1s all; /* Animasi CSS untuk left/top untuk membuat bolanya terbang */
}
```
-Next we need to assign the correct `ball.style.left/top`. They contain field-relative coordinates now.
+Selanjutnya kita harus mengatur dengan benar `ball.style.left/top`. Mereka memiliki koordinat relatif ke lapangan(_`field`_) sekarang.
-Here's the picture:
+Berikut ini gambarnya:

-We have `event.clientX/clientY` -- window-relative coordinates of the click.
+Kita memiliki `event.clientX/clientY` -- koordinat relatif jendela (_window_) dari klik.
-To get field-relative `left` coordinate of the click, we can substract the field left edge and the border width:
+Untuk mendapatkan koordinat kiri relatif terhadap lapangan(_`field`_), kita kurangkan dengan nilai dari ujung dan pembatas kiri lapangan:
```js
let left = event.clientX - fieldCoords.left - field.clientLeft;
```
-Normally, `ball.style.left` means the "left edge of the element" (the ball). So if we assign that `left`, then the ball edge, not center, would be under the mouse cursor.
+Biasanya, `ball.style.left` artinya "ujung kiri dari elemen" (bola). Jadi kita mengatur nilai `left`, kemudian ujung bola, bukan tengah, akan berada tepat dibawah kursor mouse.
-We need to move the ball half-width left and half-height up to make it center.
+Kita perlu memindahkan bola setengah lebar kiri dan setengah tinggi atas untuk membuatnya di tengah.
-So the final `left` would be:
+Jadi nilai terakhir `left` akan menjadi:
```js
let left = event.clientX - fieldCoords.left - field.clientLeft - ball.offsetWidth/2;
```
-The vertical coordinate is calculated using the same logic.
+Koordinat vertikal di ukur dengan menggunakan logika yang sama.
-Please note that the ball width/height must be known at the time we access `ball.offsetWidth`. Should be specified in HTML or CSS.
+Harap dicatat bahwa lebar/tinggi bola harus di ketahui pada saat kita mengakses `ball.offsetWidth`. Sebaiknya di atur pada HTML atau CSS.
diff --git a/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.md b/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.md
index 7554a2f09..26bca188d 100644
--- a/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.md
+++ b/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.md
@@ -1,48 +1,47 @@
# HTML/CSS
-First let's create HTML/CSS.
+Pertama buat HTML/CSS.
-A menu is a standalone graphical component on the page, so it's better to put it into a single DOM element.
+Sebuah menu adalah komponen tersendiri pada halaman, jadi lebih baik untuk menaruhnya kedalam satu elemen DOM.
-A list of menu items can be laid out as a list `ul/li`.
+Sebuah daftar dari item menu bisa dapat diatur kedalam daftar menggunakan `ul/li`.
-Here's the example structure:
+Ini contoh strukturnya:
```html
` has an implicit `display:block` on it, and it will occupy 100% of the horizontal width.
+Kita dapat menggunakan `` untuk judul, karena `
` memiliki `display:block`, dan akan memenuhi 100% horisontal lebar elemen.
-Like this:
+Seperti ini:
```html autorun height=50
-
Sweeties (click me)!
+
Manis-Manis (Tekan saya)!
```
-So if we set `onclick` on it, then it will catch clicks to the right of the text.
+Jadi jika kita mengatur `onclick` pada judul, maka itu akan menangkap klik diselah kanan teks.
-As `` has an implicit `display: inline`, it occupies exactly enough place to fit all the text:
+Sedangkan `` memiliki `display:inline`, dan akan memenuhi ruang yang cukup sesuai dengan teks:
```html autorun height=50
-Sweeties (click me)!
+Manis-Manis (Tekan saya)!
```
-# Toggling the menu
+# Membuka dan menutup menu
-Toggling the menu should change the arrow and show/hide the menu list.
+Membuka dan menutup menu seharusnya menganti posisi anak panah dan menunjukan atau menyembunyikan daftar menu.
-All these changes are perfectly handled by CSS. In JavaScript we should label the current state of the menu by adding/removing the class `.open`.
-
-Without it, the menu will be closed:
+Semua pergantian ini sangat sempurna untuk di tanggani oleh CSS. Pada Javascript kita harus memberi label pada kondisi menu saat ini dengan menambahkan/menghapuskan kelas(_class_) `.open`.
+Tanpanya, menu akan tetap tertutup:
```css
.menu ul {
margin: 0;
@@ -58,7 +57,7 @@ Without it, the menu will be closed:
}
```
-...And with `.open` the arrow changes and the list shows up:
+...Dan dengan `.open` anak panah akan berubah dan daftar akan kelihatan:
```css
.menu.open .title::before {
diff --git a/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.view/index.html b/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.view/index.html
index 0c1996a7e..c89025fef 100644
--- a/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.view/index.html
+++ b/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/solution.view/index.html
@@ -22,11 +22,11 @@
color: green;
}
- .menu.open .title::before {
+ .menu.buka .title::before {
content: '▼ ';
}
- .menu.open ul {
+ .menu.buka ul {
display: block;
}
@@ -35,11 +35,11 @@
diff --git a/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/task.md b/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/task.md
index 34c313710..bc8e8171a 100644
--- a/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/task.md
+++ b/2-ui/2-events/01-introduction-browser-events/05-sliding-menu/task.md
@@ -2,10 +2,10 @@ importance: 5
---
-# Create a sliding menu
+# Buat sebuah menu geser
-Create a menu that opens/collapses on click:
+Buat sebuah menu yang terbuka/tertutup pada saat ditekan:
[iframe border=1 height=100 src="solution"]
-P.S. HTML/CSS of the source document is to be modified.
+Tambahan: HTML/CSS dari dokumen harus dimodifikasi.
diff --git a/2-ui/2-events/01-introduction-browser-events/06-hide-message/solution.md b/2-ui/2-events/01-introduction-browser-events/06-hide-message/solution.md
index 022a0d977..ad3500503 100644
--- a/2-ui/2-events/01-introduction-browser-events/06-hide-message/solution.md
+++ b/2-ui/2-events/01-introduction-browser-events/06-hide-message/solution.md
@@ -1,12 +1,11 @@
-To add the button we can use either `position:absolute` (and make the pane `position:relative`) or `float:right`. The `float:right` has the benefit that the button never overlaps the text, but `position:absolute` gives more freedom. So the choice is yours.
+Untuk Menambahkan tombol kita bisa menggunakan `position:absolute` (dan membuat pane `position:relative`) atau `float:right`. `float:right` memiliki keuntung dimana tombol tidak akan perna tumpang tindih dengan teks, tetapi `position:absolute` memberikan lebih banyak kebebasan. Jadi pilihannya pada kamu.
-Then for each pane the code can be like:
+Kemudian pada setiap `pane` kodenya akan seperti ini:
```js
pane.insertAdjacentHTML("afterbegin", '');
```
-
-Then the `