---
title: "JavaScript"
version: 5.0
locale: id
source: https://docs.djangoproject.com/id/5.0/internals/contributing/writing-code/javascript/
canonical: https://djangodocs.dev/id/5.0/internals/contributing/writing-code/javascript/
---
# JavaScript

Selagi kebanyakan inti Django adalah Python, aplikasi penyumbang `admin` and `gis` mengandung kode JavaScript.

Silahkan mengikuti standar pengkodean ketika menulis kode javaScript untuk penyertaan di Django.

## Gaya kode

- Harap konfirmasikan gaya lekukan didiktekan dalam berkas `.editorconfig`. Kami menganjurkan menggunakan penyunting teks dengan dukungan [EditorConfig](https://editorconfig.org/) untuk menghindari masalah lekukan dan ruang kosong. Kebanyakan berkas-berkas JavaScript menggunakan 4 spasi untuk lekukan, tetapi ada beberapa pengecualian.
- Ketika memberi nama variabel, gunakan `camelCase` daripada `underscore_case`. Berkas-berkas JavaScript berbeda terkadang menggunakan gaya kode berbeda. Harap coba tegaskan pada gaya kode dari setiap berkas.
- Use the [ESLint](https://eslint.org/) code linter to check your code for bugs and style errors.
  ESLint will be run when you run the JavaScript tests. We also recommended
  installing a ESLint plugin in your text editor.
- Jika memungkinkan, tulis kode yang akan bekerja bahkan jika struktur halaman terakhir dirubah dengan JavaScript. Sebagai contoh, ketika mengikat sebuah penangan klik, gunakan $('body').on('click', selector, func)\` daripada `$(selector).click(func)`. Ini membuatnya lebih mudah untuk memperpanjang perilaku awalan Django dengan JavaScript.

## Tambalan JavaScript

Django's admin system leverages the jQuery framework to increase the
capabilities of the admin interface. In conjunction, there is an emphasis on
admin JavaScript performance and minimizing overall admin media file size.

## Percobaan JavaScript

Django's JavaScript tests can be run in a browser or from the command line.
The tests are located in a top level [js\_tests](https://github.com/django/django/blob/stable/5.0.x/js_tests) directory.

### Menulis percobaan

Percobaan JavasScript Django menggunakan [QUnit](https://qunitjs.com/). Ini adalah sebuah contoh percobaan modul:

```javascript
QUnit.module('magicTricks', {
    beforeEach: function() {
        const $ = django.jQuery;
        $('#qunit-fixture').append('<button class="button"></button>');
    }
});

QUnit.test('removeOnClick removes button on click', function(assert) {
    const $ = django.jQuery;
    removeOnClick('.button');
    assert.equal($('.button').length, 1);
    $('.button').click();
    assert.equal($('.button').length, 0);
});

QUnit.test('copyOnClick adds button on click', function(assert) {
    const $ = django.jQuery;
    copyOnClick('.button');
    assert.equal($('.button').length, 1);
    $('.button').click();
    assert.equal($('.button').length, 2);
});
```

Please consult the `QUnit` documentation for information on the types of
[assertions supported by QUnit](https://api.qunitjs.com/assert/).

### Menjalankan percobaan

Percobaan JavaScript dapat berjalan dari perambah jaringan atau dari baris perintah.

#### Dicoba dari sebuah perambah jaringan

To run the tests from a web browser, open up [js\_tests/tests.html](https://github.com/django/django/blob/stable/5.0.x/js_tests/tests.html) in your
browser.

Untuk mengukur cakupan kode ketika menjalankan percobaan, anda butuh melihat berkas itu melalui HTTP. Untuk melihat cakupan kode:

- Menjalankan `python -m http.server` dari akar direktori (bukan dari dalam `js_tests`).
- Buka [http://localhost:8000/js\_tests/tests.html](http://localhost:8000/js_tests/tests.html) di perambah jaringan anda.

#### Percobaan dari baris perintah

Untuk menjalankan percobaan dari baris perintah, anda butuh mempunyai [Node.js](https://nodejs.org/) terpasang.

After installing `Node.js`, install the JavaScript test dependencies by
running the following from the root of your Django checkout:

```console
$ npm install
```

*Windows*

```doscon
...\> npm install
```

lalu jalankan percobaan dengan:

```console
$ npm test
```

*Windows*

```doscon
...\> npm test
```
