Minggu, 15 Maret 2020

VUE.JS DIRECTION & LIST

Menggunakan fitur Directive dan List pada vue

A.Directive
Saya masukkan kode seperti ini:
<!DOCTYPE html>
<html>
<head>
    <title>Directive vue js</title>
    <script src="lib/vue.js"></script>
</head>
<body>
        <div id="app">
            
            <p> Berbelanja Untuk Kategori </p>
            <button v-on:click="gender = 1">
                Pria
            </button>
            <button v-on:click="gender = 2">
                Wanita
            </button>
            
            <div v-if="gender === 1" >
                <img  v-bind:src="m" width="300">
                <p>Pria</p>
            </div>
            <div v-else-if"gender === 2" >
                <img  v-bind:src="f" width="300">
                <p>Wanita</p>
            </div>
            <div v-else >
                
            </div>

        </div>
        <script type="text/javascript">
            var vm = new Vue({
                el: '#app',
                data:{
                    gender : 0,
                    m: 'images/pria.png',
                    f : 'images/wanita.png'
                }
            })
        </script>
</body>
</html>
Dari kode diatas maka akan seperti ini hasilnya:
Dari kode diatas ini menjelaskan tentang pemilihan jenis kelamin seperti pada saat kita ingin berbelanja di sebuah toko online dan memilih kategori berdasarkan gender kita.
Kemudian ada juga v-on click, jika kita klik yang Pria maka akan muncul seperti ini:
dan jika yang Wanita diklik maka akan seperti ini:


Dan kita pun bisa merubah v-if nilai 1 yang isinya male dan v-if female nilai 2.


B.List
Saya masukkan kode ini:
<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
        <script src="lib/vue.js"></script>
    <title>list</title>
  </head>
  <body>
    <h1>V E N T E L A</h1>

    <div id="app">
        <table border=315>
            <tr v-for="book of books">
                <td>
                    <img width=500 :src="'images/' + book.image" />
                </td>
                <td>
                    Produk: {{ book.Produk }} <br>
                    Deskripsi: {{ book.Deskripsi }} <br>
                    Harga: {{ book.Harga }}
                </td>
            </tr>
        </table>
    </div>
        <script type="text/javascript">
            var vm = new Vue({
        el: '#app',
        data: {
        books : [
        {
            id: 10,
            Produk: 'Public Series High',
            Deskripsi: 'Black / Natural',
            Harga: 260000,
            image: 'pubhigh.jpg'
        },
        {
            id: 13,
            Produk: 'Public Series Low',
            Deskripsi: 'Black / Natural',
            Harga: 250000,
            image: 'publow.jpg'
        },
        {
            id: 14,
            Produk: 'Retro Series',
            Deskripsi: 'Yellow / Black Stripe',
            Harga: 400000,
            image: 'retro.jpg'
        }
        ]
        }
        })
    </script>

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->

    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    <h1>VENTELA Products 2020</h1>
    
    </body>
</html>
dari kode di atas maka hasilnya akan seperti ini:



dari kode diatas sederhananya adalah membuat tampilan semacam kist atau daftar, terlihat seperti di web marketplace pada umumnya. Terdiri dari gambar dan juga ada deskripsinya. 
Pada table saya memasukkan Produk, Deskripsi dan Harga. yang dimana sebelumnya sudah dibuat variablenya di v-for="book of books"> serta juga ada gambar produknya yang dipanggil dengan nama gambar tersebut yang terletak di satu folder yang bernama "images".
Setelah itu saya juga memakai Bootstrap 4 bisa cek disini https://getbootstrap.com/

Sekian

Minggu, 08 Maret 2020

MEMBUAT KALKULATOR DENGAN VUE.JS

Membuat beberapa contoh program dengan vue.js
A. Membua kalkulator sederhana yang memiliki inputan nilai 1 dan nilai 2, dengan 4 tombol perhitungan (tambah, kurang, kali, bagi). Ketika nilai telah diinput dan tombol di klik akan tampil hasilnya.

Pertama buat file baru dengan kode seperti ini:
<!DOCTYPE html>
<html>
<head>
    <title> calculator </title>
    <script src="lib/vue.js"></script>
    <style type="text/css">
        *{
            font-family: parchment;
            font-size50px;
        }
        .row{
            margin-bottom20px;
        }
        .input1{
            margin-left20px;
            padding10px;
        }
        .input2{
            margin-left16.5px;
            padding10px;
        }
        .ml-75{
            margin-left75px;
        }
        button{
            font-familysans-serif;
            font-size30px;
            height40px;
            width40px;
        }
    </style>
</head>
<body>
    <div id="app">
        <div class="row">
            <label> Angka 1 :</label>
            <input type="number" class="angka1" v-model="angka1">
        </div>
        <div class="row">
            <label> Angka 2 :</label>
            <input type="number" class="angka2" v-model="angka2">
        </div>
        <div class=" row ml-75">
            <button onclick="vm.tambah()">+</button>
            <button onclick="vm.kurang()">-</button>
            <button onclick="vm.kali()">x</button>
            <button onclick="vm.bagi()">/</button>
        </div>
        <div class="row ml-75=">
            <label>Hasil :</label>
            <span>{{ hasil }}</span>
        </div>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el:'#app',
            data : {
                angka1:0,
                angka2:0,
                hasil:0
            },
            methods : {
                tambah(){
                    this.hasil = parseInt(this.angka1) + parseInt(this.angka2)
                },
                kurang(){
                    this.hasil = parseInt(this.angka1) - parseInt(this.angka2)
                },
                kali(){
                    this.hasil = parseInt(this.angka1) * parseInt(this.angka2)
                },
                bagi(){
                    this.hasil = parseInt(this.angka1) / parseInt(this.angka2)
                },

            }
        })
    </script>
</body>
</html>
 Pada kode berikut di atas setiap kita memasukkan angka ke variable ;Angka 1' dan 'Angka 2' maka angka di dalam itulah yang akan diproses nantinya. Variable awal dari semuanya adalah '0' dan proses tambah, kurang kali dan baginya akan diproses pada method tambah(), kurang(), kali() dan bagi(). Dan hasilnya akan seperti ini;

dan jika melakukan penghitungan akan seperti ini: (method tambah)

B. Membuat template vue yang menggabungkan property template, data raw dan data attribute.dan membuat penerapan siklus Object Vue
Buat file baru dengan kode seperti ini:
<!DOCTYPE html>
<html>
<head>
    <title>Belajar Vue</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style type="text/css">
        .title{
            coloryellow;
            }
    </style>

</head>
<body>
    <div id="app">
    <h1>{{ atas }}</h1>
    <h1 v-html="dataRaw"></h1>
    <h1 v-bind:class="kelas1"> {{ Atribute }}</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue ({
            el : '#app',
            data : {
                atas : "Hai",
                dataRaw : "<span style = 'color:blue '>Selamat Pagi</a>",
                Atribute : "Sehat Sehat Ya",
                kelas1 : "title"
            },
             
            beforeCreate () {
                console.log('before create:'+'atas='this.atas)
            },
            created () {
                console.log('created: ''atas =' + this.atas)
            },
            beforeMount() {
                console.log('before Mount'+'atas = 'this.$el.textContent)
            },
            mounted () {
                console.log(' Mounted '+' atas =' + this.$el.textContent)
            },
            beforeUpdate () {
                console.log('beforeUpdate ='+'el = ' + this.$el.textContent)
            },
            updated() {
                console.log('Updated = '+'el' + this.$el.textContent)
            },
            
            beforeDestroy () {
                console.log('before Destroy')
            },
            Destroy() {
                console.log('Destroyed')
            }
        })
        vm.$destroy()
    </script>
</body>
</html>
Pada kode diatas kita mempunyai template yang berisi tag html h1, yang akan menampilkan teks message, h1 juga mempunyai v-bind:class dengan nama kelas1 yang diambil dari data, variable kelas1 ini mempuyai value title yang artinya kelas1 sama dengan title jadi pada tag h1 ini akan memanggil class css .title, dan hasilnya akan di render pada div id=app.
- Apabila dijalankan, akan tampil seperti berikut :


Dan untuk penerapan Object Vue
- penjelasan : 
a. fungsi  Create  untuk meng create
b. fungsi mount adalah untuk meng mount : Kode diatas akan mencoba mengakses DOM dengan menggunakan fungsi bawaan js, yaitu textContent. textContent ini berfungsi untuk menampilkan konten teks yang ada di dalam el.
c. update untuk mengupdate data
d. Destroye untuk mendestroy atau meng hapus data
Tidak terjadi apapun namun di console terlihat sebelum dan sesudah script dieksekusi

Senin, 24 Februari 2020

Membuat & Menampilkan Data Diri Menggunakan Vue & JavaScript

Step 1
Kita copy kode di web https://vuejs.org/js/vue.js untuk mengaktifkan vue

Step 2 
Lalu kita membuat file JavaScript di folder lib yang dimana folder lib itu ada di dalam folder project kita dan paste kode tadi didalam file js tersebut

Step 3
Lalu kita membuat file html dengan nama "data diri.html" pada teks editor.

Step 4 
Ketikkan kode dibawah

Kode <script src="lib/vue,js></script> adalah untuk memanggil kode vue atau mengaktifkan vue tadi yang sudah kita simpan di vue.js

Yang akan muncul adalah semua yang ada di h1 dan diikuti dengan {{}} yang menandakan bahwa itu adalah variable, variable itu memiliki isi yaitu di bawahnya. Disini saya masukkan data diri saya yaitu nama, prodi, tahun angkatan dan emai.

Step 5
Jika sudah maka kita buka browser dan lihat apakah file html kita sudah dapat muncul pada browser. Jika berhasil maka akan terlihat seperti ini

Pastikan bahwa besar kecilnya huruf diperhatikan saat ingin memanggil variable.

Terimakasih :)

Minggu, 29 Desember 2019

MEMBUAT PHP LUMEN DOCUMENTATION

Untuk membuat docs generatornya kita akan menggunakan swagger.
Ikuti langkah-langkah dibawah ini:

1. Install swagger-php plugins. Pada terminal/CommandPrompt ketika command dibawah ini. composer require zircote/swagger-php
2. Membuat artisan command file. Buat file app/Console/Commands/SwaggerDocScanner.php

3. Buka file app/Console/Kernel.php, tambahkan code dibawah ini. Line 16-17.

4. Untuk tampilan User Interface nya kita perlu mebuat file html di public folder. Buat file public/api-docs.html, code nya seperti dibawah ini.

5. Run Lumen Server
6. buka localhost:8000/api-docs.html

Membuat Dokumentasi API (Get Request)
Kita akan membuat API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi API mengenai get Request, silahkan ikuti langkah-langkah dibawah ini: 
1. Buka file app/Http/Controllers/Controller.php, tambahkan code dibawah ini. Line 7-21.
2. Buka file app/Http/Controllers/Public/PostsController.php, tambahkan code dibawah ini. Line 11-25

3. buka command prompt lalu ketik php artisan swaggerdoc:scan
4. Pada browser buka http://localhost:8000/api-docs.html

Membuat Dokumentasi API (Post Request)
1. Kita akan membuat API dokumentasi untuk endpoint /register. Untuk membuat dokumentasi API mengenai Post Request, silahkan ikuti langkah-langkah dibawah ini: 1. Buka file app/Http/Controllers/AuthController.php, tambahkan code dibawah ini. Line 11-44.


class AuthController extends Controller
{
    /**
     * @OA\Post(path="/auth/register",
     *  summary="Register new user",
     *  tags={"Authentication"},
     *  @OA\RequestBody(
     *    @OA\MediaType(
     *      mediaType="application/json",
     *         @OA\Schema(
     *          @OA\Property(
     *            property="name",
     *            type="string"
     *          ),
     *          @OA\Property(
     *            property="email",
     *            type="string"
     *          ),
     *          @OA\Property(
     *            property="password",
     *            type="string"
     *          ),
     *          @OA\Property(
     *            property="password_confirmation",
     *            type="string"
     *          ),
     *          example={"name": "User Name", "email": "user@email.com", "password": "123456", 
     * "password_confirmation": "123456"}
     *          )
     *      )
     *     ),
     *      @OA\Response(
     *          response=200,
     *          description="OK"
     *    )
     * )
     */ 
    
2. Buka CMD ketik : php artisan swaggerdoc:scan
3. Pada browser buka http://localhost:8000/api-docs.html