Skip to content

Commit a65571d

Browse files
andriawanmazipan
authored andcommitted
Translate event handling page (#58)
* translate event handling page * fix typo and grammar * improvement from feedback * - change word "key" to italic - change word "browser" to "peramban" * - change word "statement" to statemen - change word "browser" to peramban
1 parent d234ed3 commit a65571d

File tree

1 file changed

+92
-92
lines changed

1 file changed

+92
-92
lines changed

src/v2/guide/events.md

Lines changed: 92 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,92 @@
11
---
2-
title: Event Handling
2+
title: Penanganan Event
33
type: guide
44
order: 9
55
---
66

7-
## Listening to Events
7+
## Memantau Event
88

9-
We can use the `v-on` directive to listen to DOM events and run some JavaScript when they're triggered.
9+
Kita dapat menggunakan `v-on` direktif untuk memantau event DOM dan menjalankan beberapa JavaScript ketika dipicu.
1010

11-
For example:
11+
Contoh:
1212

1313
``` html
14-
<div id="example-1">
15-
<button v-on:click="counter += 1">Add 1</button>
16-
<p>The button above has been clicked {{ counter }} times.</p>
14+
<div id="contoh-1">
15+
<button v-on:click="counter += 1">Tambah 1</button>
16+
<p>Tombol diatas telah ditekan {{ counter }} kali.</p>
1717
</div>
1818
```
1919
``` js
20-
var example1 = new Vue({
21-
el: '#example-1',
20+
var contoh1 = new Vue({
21+
el: '#contoh-1',
2222
data: {
2323
counter: 0
2424
}
2525
})
2626
```
2727

28-
Result:
28+
Hasil:
2929

3030
{% raw %}
31-
<div id="example-1" class="demo">
31+
<div id="contoh-1" class="demo">
3232
<button v-on:click="counter += 1">Add 1</button>
33-
<p>The button above has been clicked {{ counter }} times.</p>
33+
<p>Tombol diatas telah ditekan {{ counter }} kali.</p>
3434
</div>
3535
<script>
36-
var example1 = new Vue({
37-
el: '#example-1',
36+
var contoh1 = new Vue({
37+
el: '#contoh-1',
3838
data: {
3939
counter: 0
4040
}
4141
})
4242
</script>
4343
{% endraw %}
4444

45-
## Method Event Handlers
45+
## Metode Event Handler
4646

47-
The logic for many event handlers will be more complex though, so keeping your JavaScript in the value of the `v-on` attribute isn't feasible. That's why `v-on` can also accept the name of a method you'd like to call.
47+
Bagaimanapun Logika untuk banyak _event_ _handler_ akan terlihat rumit, jadi menempatkan kode JavaScript Anda dalam atribut `v-on` tidaklah tepat. Itulah mengapa `v-on` dapat juga menerima nama metode yang ingin dijalankan.
4848

49-
For example:
49+
Contoh:
5050

5151
``` html
52-
<div id="example-2">
53-
<!-- `greet` is the name of a method defined below -->
52+
<div id="contoh-2">
53+
<!-- `greet` adalah nama metode yang telah didefinisikan di bawah -->
5454
<button v-on:click="greet">Greet</button>
5555
</div>
5656
```
5757

5858
``` js
59-
var example2 = new Vue({
60-
el: '#example-2',
59+
var contoh2 = new Vue({
60+
el: '#contoh-2',
6161
data: {
6262
name: 'Vue.js'
6363
},
64-
// define methods under the `methods` object
64+
// mendefinisikan metode dibawah `methods` object
6565
methods: {
6666
greet: function (event) {
67-
// `this` inside methods points to the Vue instance
67+
// `this` di dalam metode merujuk ke Vue instance
6868
alert('Hello ' + this.name + '!')
69-
// `event` is the native DOM event
69+
// `event` adalah bawaan DOM event
7070
if (event) {
7171
alert(event.target.tagName)
7272
}
7373
}
7474
}
7575
})
7676

77-
// you can invoke methods in JavaScript too
78-
example2.greet() // => 'Hello Vue.js!'
77+
// Anda juga dapat memanggil metode dalam JavaScript
78+
contoh2.greet() // => 'Hello Vue.js!'
7979
```
8080

81-
Result:
81+
Hasil:
8282

8383
{% raw %}
84-
<div id="example-2" class="demo">
84+
<div id="contoh-2" class="demo">
8585
<button v-on:click="greet">Greet</button>
8686
</div>
8787
<script>
88-
var example2 = new Vue({
89-
el: '#example-2',
88+
var contoh2 = new Vue({
89+
el: '#contoh-2',
9090
data: {
9191
name: 'Vue.js'
9292
},
@@ -102,19 +102,19 @@ var example2 = new Vue({
102102
</script>
103103
{% endraw %}
104104

105-
## Methods in Inline Handlers
105+
## Metode dalam Handler Sebaris
106106

107-
Instead of binding directly to a method name, we can also use methods in an inline JavaScript statement:
107+
Dari pada menempatkan nama metode secara langsung, kita juga dapat menggunakan metode dalam sebuah JavaScript statemen sebaris:
108108

109109
``` html
110-
<div id="example-3">
110+
<div id="contoh-3">
111111
<button v-on:click="say('hi')">Say hi</button>
112112
<button v-on:click="say('what')">Say what</button>
113113
</div>
114114
```
115115
``` js
116116
new Vue({
117-
el: '#example-3',
117+
el: '#contoh-3',
118118
methods: {
119119
say: function (message) {
120120
alert(message)
@@ -123,7 +123,7 @@ new Vue({
123123
})
124124
```
125125

126-
Result:
126+
Hasil:
127127
{% raw %}
128128
<div id="example-3" class="demo">
129129
<button v-on:click="say('hi')">Say hi</button>
@@ -141,7 +141,7 @@ new Vue({
141141
</script>
142142
{% endraw %}
143143

144-
Sometimes we also need to access the original DOM event in an inline statement handler. You can pass it into a method using the special `$event` variable:
144+
Terkadang kita juga butuh akses ke event DOM bawaan dalam statemen _handler_ sebaris. Anda dapat menempatkan variabel khusus `$event` ke dalam sebuah metode:
145145

146146
``` html
147147
<button v-on:click="warn('Form cannot be submitted yet.', $event)">
@@ -153,18 +153,18 @@ Sometimes we also need to access the original DOM event in an inline statement h
153153
// ...
154154
methods: {
155155
warn: function (message, event) {
156-
// now we have access to the native event
156+
// sekarang kita memiliki akses ke event bawaan
157157
if (event) event.preventDefault()
158158
alert(message)
159159
}
160160
}
161161
```
162162

163-
## Event Modifiers
163+
## Pengubah (Modifier) Event
164164

165-
It is a very common need to call `event.preventDefault()` or `event.stopPropagation()` inside event handlers. Although we can do this easily inside methods, it would be better if the methods can be purely about data logic rather than having to deal with DOM event details.
165+
Merupakan kebutuhan umum memanggil `event.preventDefault()` atau `event.stopPropagation()` di dalam event _handler_. Meskipun kita dapat melakukannya dengan mudah di dalam metode, akan lebih baik jika metode murni hanya berisi logika data dari pada menangani rincian event DOM.
166166

167-
To address this problem, Vue provides **event modifiers** for `v-on`. Recall that modifiers are directive postfixes denoted by a dot.
167+
Untuk menyelesaikan masalah ini, Vue menyediakan **pengubah event ** untuk `v-on`. Penggunaan pengubah tersebut ialah dengan tambahan direktif diawali dengan simbol titik.
168168

169169
- `.stop`
170170
- `.prevent`
@@ -174,115 +174,115 @@ To address this problem, Vue provides **event modifiers** for `v-on`. Recall tha
174174
- `.passive`
175175

176176
``` html
177-
<!-- the click event's propagation will be stopped -->
177+
<!-- perambatan event klik akan dihentikan -->
178178
<a v-on:click.stop="doThis"></a>
179179

180-
<!-- the submit event will no longer reload the page -->
180+
<!-- event submit tidak lagi memuat ulang halaman -->
181181
<form v-on:submit.prevent="onSubmit"></form>
182182

183-
<!-- modifiers can be chained -->
183+
<!-- pengubah dapat ditulis berantai -->
184184
<a v-on:click.stop.prevent="doThat"></a>
185185

186-
<!-- just the modifier -->
186+
<!-- sebuah pengubah -->
187187
<form v-on:submit.prevent></form>
188188

189-
<!-- use capture mode when adding the event listener -->
190-
<!-- i.e. an event targeting an inner element is handled here before being handled by that element -->
189+
<!-- gunakan mode capture saat menambahkan event listener -->
190+
<!-- sebagai contoh, sebuah event menargetkan sebuah inner elemen ditangani disini sebelum ditangani oleh elemen tesebut -->
191191
<div v-on:click.capture="doThis">...</div>
192192

193-
<!-- only trigger handler if event.target is the element itself -->
194-
<!-- i.e. not from a child element -->
193+
<!-- handler hanya dipicu jiks event.target adalah elemen itu sendiri -->
194+
<!-- sebagai contoh, tidak dari elemen anak -->
195195
<div v-on:click.self="doThat">...</div>
196196
```
197197

198-
<p class="tip">Order matters when using modifiers because the relevant code is generated in the same order. Therefore using `v-on:click.prevent.self` will prevent **all clicks** while `v-on:click.self.prevent` will only prevent clicks on the element itself.</p>
198+
<p class="tip">Urutan penting saat menggunakan pengubah karena kode yang bersangkutan dibentuk dengan urutan yang sama. Maka dari itu, menggunakan `v-on:click.prevent.self` akan mencegah **semua klik** sementara `v-on:click.self.prevent` hanya akan mencegah klik pada elemen itu sendiri.</p>
199199

200-
> New in 2.1.4+
200+
> Baru pada versi 2.1.4+
201201
202202
``` html
203-
<!-- the click event will be triggered at most once -->
203+
<!-- click event akan dipicu paling banyak sekali -->
204204
<a v-on:click.once="doThis"></a>
205205
```
206206

207-
Unlike the other modifiers, which are exclusive to native DOM events, the `.once` modifier can also be used on [component events](components-custom-events.html). If you haven't read about components yet, don't worry about this for now.
207+
Tidak seperti pengubah lainnya, yang khusus untuk event DOM bawaan, `.once` modifier juga dapat digunakan pada [komponen event](components-custom-events.html). Jika anda belum membaca tentang komponen, jangan khawatir tentang ini untuk sekarang.
208208

209-
> New in 2.3.0+
209+
> Baru pada versi 2.3.0+
210210
211-
Vue also offers the `.passive` modifier, corresponding to [`addEventListener`'s `passive` option](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters).
211+
Vue juga menawarkan pengubah `.passive`, sesuai dengan [opsi `addEventListener`'s `passive`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Parameters).
212212

213213
``` html
214-
<!-- the scroll event's default behavior (scrolling) will happen -->
215-
<!-- immediately, instead of waiting for `onScroll` to complete -->
216-
<!-- in case it contains `event.preventDefault()` -->
214+
<!-- perilaku bawaan event scroll (scrolling) akan terjadi -->
215+
<!-- segera, dari pada menunggu `onScroll` selesai -->
216+
<!-- jika memuat `event.preventDefault()` -->
217217
<div v-on:scroll.passive="onScroll">...</div>
218218
```
219219

220-
The `.passive` modifier is especially useful for improving performance on mobile devices.
220+
pengubah `.passive` secara khusus berguna meningkatkan performa pada perangkat mobile.
221221

222-
<p class="tip">Don't use `.passive` and `.prevent` together, because `.prevent` will be ignored and your browser will probably show you a warning. Remember, `.passive` communicates to the browser that you _don't_ want to prevent the event's default behavior.</p>
222+
<p class="tip">Jangan menggunakan `.passive` dan `.prevent` bersamaan, karena `.prevent` akan diabaikan dan peramban Anda kemungkinan akan menampilkan peringatan. Ingat, `.passive` berkomunikasi dengan peramban yang mana anda tidak ingin mencegah perilaku bawaan event.</p>
223223

224-
## Key Modifiers
224+
## Pengubah (Modifier) Key
225225

226-
When listening for keyboard events, we often need to check for specific keys. Vue allows adding key modifiers for `v-on` when listening for key events:
226+
Saat memantau keyboard event, kita sering membutuhkan untuk memeriksa _key_ tertentu. Vue mengizinkan penambahan pengubah _key_ untuk `v-on` saat memantau _key_ events:
227227

228228
``` html
229-
<!-- only call `vm.submit()` when the `key` is `Enter` -->
229+
<!-- hanya memanggil `vm.submit()` saat `key` adalah `Enter` -->
230230
<input v-on:keyup.enter="submit">
231231
```
232232

233-
You can directly use any valid key names exposed via [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values) as modifiers by converting them to kebab-case.
233+
Anda dapat secara langsung menggunakan nama _key_ yang valid via [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values) sebagai pengubah dengan mengubahnya ke kebab-case.
234234

235235
``` html
236236
<input v-on:keyup.page-down="onPageDown">
237237
```
238238

239-
In the above example, the handler will only be called if `$event.key` is equal to `'PageDown'`.
239+
Pada contoh di atas, _handler_ hanya akan dipanggil jika `$event.key` sama dengan `'PageDown'`.
240240

241-
### Key Codes
241+
### Key Code
242242

243-
<p class="tip">The use of `keyCode` events [is deprecated](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode) and may not be supported in new browsers.</p>
243+
<p class="tip">Penggunaan `keyCode` event [telah usang](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode) dan mungkin tidak didukung pada peramban-peramban baru.</p>
244244

245-
Using `keyCode` attributes is also permitted:
245+
Menggunakan atribut `keyCode` juga diperbolehkan:
246246

247247
``` html
248248
<input v-on:keyup.13="submit">
249249
```
250250

251-
Vue provides aliases for the most commonly used key codes when necessary for legacy browser support:
251+
Vue menyediakan alias untuk _key_ code umum jika dibutuhkan untuk mendukung peramban lama:
252252

253253
- `.enter`
254254
- `.tab`
255-
- `.delete` (captures both "Delete" and "Backspace" keys)
255+
- `.delete` (menangkap baik "Delete" dan "Backspace" _key_)
256256
- `.esc`
257257
- `.space`
258258
- `.up`
259259
- `.down`
260260
- `.left`
261261
- `.right`
262262

263-
<p class="tip">A few keys (`.esc` and all arrow keys) have inconsistent `key` values in IE9, so these built-in aliases should be preferred if you need to support IE9.</p>
263+
<p class="tip">Beberapa kunci (.esc dan semua tombol arah) memiliki nilai _key_ yang tidak konsisten pada peramban IE9, jadi alias yang telah tersedia di atas lebih disarankan jika Anda butuh dukungan untuk peramban IE9.</p>
264264

265-
You can also [define custom key modifier aliases](../api/#keyCodes) via the global `config.keyCodes` object:
265+
Anda juga dapat [mendefinisikan pengubah kustom alias key](../api/#keyCodes) melalui global config.keyCodes object:
266266

267267
``` js
268-
// enable `v-on:keyup.f1`
268+
// Mengaktifkan `v-on:keyup.f1`
269269
Vue.config.keyCodes.f1 = 112
270270
```
271271

272-
## System Modifier Keys
272+
## Sistem Pengubah (Modifier) Key
273273

274-
> New in 2.1.0+
274+
> Baru pada versi 2.1.0+
275275
276-
You can use the following modifiers to trigger mouse or keyboard event listeners only when the corresponding modifier key is pressed:
276+
Anda dapat menggunakan pengubah di bawah untuk memicu mouse atau keyboard event listener hanya pada saat pengubah tertentu ditekan:
277277

278278
- `.ctrl`
279279
- `.alt`
280280
- `.shift`
281281
- `.meta`
282282

283-
> Note: On Macintosh keyboards, meta is the command key (⌘). On Windows keyboards, meta is the windows key (⊞). On Sun Microsystems keyboards, meta is marked as a solid diamond (◆). On certain keyboards, specifically MIT and Lisp machine keyboards and successors, such as the Knight keyboard, space-cadet keyboard, meta is labeled “META”. On Symbolics keyboards, meta is labeled “META” or “Meta”.
283+
> Note: pada keyboard Macintosh, meta adalah command _key_ (⌘). Pada keyboard Windows, meta adalah Windows _key_ (⊞). Pada keyboard Sun Microsystems, meta ditandai dengan solid diamond (◆). Pada keyboard tertentu, khususnya keyboard mesin MIT and Lisp dan penerusnya, seperti the Knight keyboard, space-cadet keyboard, meta diberi label “META”. Pada keyboard Symbolics, meta diberi label “META” atau “Meta”.
284284
285-
For example:
285+
Contoh:
286286

287287
```html
288288
<!-- Alt + C -->
@@ -292,41 +292,41 @@ For example:
292292
<div @click.ctrl="doSomething">Do something</div>
293293
```
294294

295-
<p class="tip">Note that modifier keys are different from regular keys and when used with `keyup` events, they have to be pressed when the event is emitted. In other words, `keyup.ctrl` will only trigger if you release a key while holding down `ctrl`. It won't trigger if you release the `ctrl` key alone. If you do want such behaviour, use the `keyCode` for `ctrl` instead: `keyup.17`.</p>
295+
<p class="tip">Perhatikan bahwa pengubah _key_ berbeda dengan _key_ pada umumnya dan saat digunakan dengan `keyup` event, _key_ tersebut harus ditekan saat event dijalankan. Dengan kata lain, `keyup.ctrl` hanya akan dipicu ketika Anda melepas _key_ saat masih menekan `ctrl`. Hal tersebut tidak akan dipicu jika Anda melepas `ctrl` _key_ sendiri. Jika Anda tidak ingin perilaku seperti itu, gunakan `keyCode` untuk `ctrl` alih-alih: `keyup.17`.</p>
296296

297-
### `.exact` Modifier
297+
### Pengubah (Modifier) `.exact`
298298

299-
> New in 2.5.0+
299+
> Baru pada versi 2.5.0+
300300
301-
The `.exact` modifier allows control of the exact combination of system modifiers needed to trigger an event.
301+
Pengubah `.exact` mengizinkan kontrol kombinasi eksak sistem pengubah yang dibutuhkan untuk memicu event.
302302

303303
``` html
304-
<!-- this will fire even if Alt or Shift is also pressed -->
304+
<!-- baris ini akan mengeksekusi metode bahkan jika tombol Alt atau Shift juga ditekan -->
305305
<button @click.ctrl="onClick">A</button>
306306

307-
<!-- this will only fire when Ctrl and no other keys are pressed -->
307+
<!-- baris ini hanya akan mengeksekusi metode saat tombol Ctrl ditekan tanpa diikuti tombol lain -->
308308
<button @click.ctrl.exact="onCtrlClick">A</button>
309309

310-
<!-- this will only fire when no system modifiers are pressed -->
310+
<!-- baris ini hanya akan mengeksekusi metode saat tidak menekan sistem modifier keys -->
311311
<button @click.exact="onClick">A</button>
312312
```
313313

314-
### Mouse Button Modifiers
314+
### Pengubah (Modifier) Tombol Mouse
315315

316-
> New in 2.2.0+
316+
> Baru pada versi 2.2.0+
317317
318318
- `.left`
319319
- `.right`
320320
- `.middle`
321321

322-
These modifiers restrict the handler to events triggered by a specific mouse button.
322+
Pengubah ini membatasi _handler_ pada event saat dipicu oleh tombol mouse tertentu.
323323

324-
## Why Listeners in HTML?
324+
## Mengapa Listener di dalam HTML?
325325

326-
You might be concerned that this whole event listening approach violates the good old rules about "separation of concerns". Rest assured - since all Vue handler functions and expressions are strictly bound to the ViewModel that's handling the current view, it won't cause any maintenance difficulty. In fact, there are several benefits in using `v-on`:
326+
Anda mungkin menyoroti bahwa keseluruhan pendekatan event listening menyalahi aturan lama tentang "separation of concerns". Kebanyakan meyakini itu - sejak semua fungsi-fungsi dan ekspresi Vue _handler_ terikat secara terbatas pada ViewModel yang mana menangani view yang berhubungan, hal itu tidak akan mempersulit pemeliharaan. Faktanya, terdapat beberapa keuntungan penggunaan `v-on`:
327327

328-
1. It's easier to locate the handler function implementations within your JS code by skimming the HTML template.
328+
1. Mempermudah penempatan implementasi fungsi _handler_ diantara baris kode JS dengan menelusuri sekilas HTML templat.
329329

330-
2. Since you don't have to manually attach event listeners in JS, your ViewModel code can be pure logic and DOM-free. This makes it easier to test.
330+
2. Sejak Anda tidak membutuhkan peletakkan event listeners dalam JS secara manual, baris kode ViewModel menjadi berisi murni logika dan bebas DOM. Ini memudahkan dalam pengujian.
331331

332-
3. When a ViewModel is destroyed, all event listeners are automatically removed. You don't need to worry about cleaning it up yourself.
332+
3. Saat ViewModel dihapus, semua event listener secara otomatis dihapus. Anda tidak perlu khawatir tentang membersihkan event yang ada.

0 commit comments

Comments
 (0)