# Tugas 2

### Target Pembelajaran <a href="#target-pembelajaran" id="target-pembelajaran"></a>

* Mengerti tentang Selektor pada DOM
* Mengerti dan mengaplikasikan event pada DOM

### Petunjuk Pengerjaan <a href="#petunjuk-pengerjaan" id="petunjuk-pengerjaan"></a>

Terdapat sebuah template html bernama index.html. Halaman ini adalah sebuah mini-ecommerce sederhana. Pada halaman tersebut sudah tersedia beberapa element awal yaitu navbar dan bagian content utama. Tugas kamu adalah melengkapi halaman tersebut agar menjadi lebih interaktif menggunakan DOM Javascript.

```
 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Latihan DOM</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
    <script defer src="https://use.fontawesome.com/releases/v5.8.1/js/all.js" 
    integrity="sha384-g5uSoOSBd7KkhAMlnQILrecXvzst9TdC09/VM+pjDTCM+1il8RHz5fKANTFFb+gQ" crossorigin="anonymous"></script>
</head>
<body>
    <div class="container">
        <nav class="navbar navbar-light bg-light">
            <a class="navbar-brand">Mini Ecommerce</a>
            <form class="form-inline" id="formItem">
                <input class="form-control mr-sm-2" type="search" placeholder="Search"  id="keyword" aria-label="Search">
                <button class="btn btn-outline-success my-2 my-sm-0" type="submit" id="searchItem">Search</button>
            </form>
            <button class="btn btn-primary" id="cart"><i class="fas fa-shopping-cart"></i>(0)</button>
        </nav>
        <div class="row">
            <div class="row col-md-12 mt-2"  id="listBarang" >
                
            </div>
        </div>
    </div>
     <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
</body>
</html>
```

#### Release 0 <a href="#release-0" id="release-0"></a>

Halaman index html ketika pertama diload akan menampilkan seluruh barang yang tersedia di mini-ecommerce. Misalkan terdapat data yang kita peroleh dari Database seperti berikut:

```
var items = [
    ['001', 'Keyboard Logitek', 60000, 'Keyboard yang mantap untuk kantoran', 'logitek.jpg'], 
    ['002', 'Keyboard MSI', 300000, 'Keyboard gaming MSI mekanik', 'msi.jpg'],
    ['003', 'Mouse Genius', 50000, 'Mouse Genius biar lebih pinter', 'genius.jpeg'],
    ['004', 'Mouse Jerry', 30000, 'Mouse yang disukai kucing', 'jerry.jpg']
]
```

&#x20;

Tampilkanlah setiap barang tersebut dengan menggunakan Card yang sudah ditentukan seperti berikut:

```
<!-- Component Card dari Bootstrap --> <div class ="col-4 mt-2"> <div class="card" style="width: 18rem;">
    <img src="..." class="card-img-top" height="200px" width="200px" alt="...">
    <div class="card-body">
        <h5 class="card-title" id="itemName">Nama</h5>
        <p class="card-text" id="itemDesc">Deskripsi barang</p>
        <p class="card-text">Rp Harga</p>
        <a href="#" class="btn btn-primary" id="addCart">Tambahkan ke keranjang</a>
    </div>
</div></div>
```

&#x20;

Petunjuk : Lakukan looping/perulangan terhadap items yang menghasilkan element Card. Setiap Card berisi data sesuai dengan data di variable items.

File gambar-gambar item bisa kamu download dari sini :

[folder gambar](https://drive.google.com/drive/folders/1r0kDUMbTc2H07fd9Bb0B1QdtzE-S6OsG?usp=sharing)

#### Release 1 <a href="#release-1" id="release-1"></a>

Ketika semua item berhasil tampil selanjutnya kamu diminta agar User dapat melakukan pencarian item melalui form search pada Navbar. Misalkan ketika User mengetik “Mouse” maka akan ditampilkan item Mouse saja. Jika mengetik “Keyboard” maka akan ditampilkan item Keyboard saja. Selain itu tidak akan menampilkan apapun.

Petunjuk : Tangkaplah event `submit` pada form id=”formItem”. Di dalam event tersebut dapatkan value dari input search. Setelah itu lakukan filter pada items yang nama itemnya sesuai dengan kata kunci pencarian.

&#x20;

#### Release 2 (Opsional) <a href="#release-2-opsional" id="release-2-opsional"></a>

Pada Card Item terdapat button “Tambahkan ke Keranjang”, buatlah event ketika diklik button tersebut maka pada button Icon keranjang di navbar (`id = "cart"`) akan bertambah +1.

#### Simulasi Hasil Release 0 dan Release 1 <a href="#simulasi-hasil-release-0-dan-release-1" id="simulasi-hasil-release-0-dan-release-1"></a>

Berikut contoh hasil untuk release 0 dan release 1:

Release 0 dan Release 1 : Menampilkan barang dengan DOM dan memfilternya melalui form search

![](https://blog.sanbercode.com/wp-content/uploads/2020/06/release-1-dom-challenge.gif)

#### Simulasi Hasil Release 2 <a href="#simulasi-hasil-release-2" id="simulasi-hasil-release-2"></a>

Berikut contoh hasil untuk release 2 (Opsional)

Release 2: menambahkan barang ke keranjang

![](https://blog.sanbercode.com/wp-content/uploads/2020/06/release-2-dom-challenge.gif)
