Saturday 18 April 2020

Tutorial Python Cara Membuat CRUD di Python Lengkap




Haloo apakah semua, kali ini saya akan memberikan tutorial mengenai CRUD di python dan kali ini saya akan menggunakan CSV sebagai penyimpanan datanya. Menurut wikipedia Comma Separated Values atau CSV adalah suatu format data dalam basis data di mana setiap record dipisahkan dengan tanda koma (,) atau titik koma (;). Selain sederhana, format ini dapat dibuka dengan berbagai text-editor seperti Notepad, Wordpad, ataupunMS Excel.

Okee baiklah langsung saja.
Cara membuat CRUD di python
Pertama kita import dulu modul yang akan kita gunakan di program ini.

import string
import random
import csv
import os


Lalu yang kedua kalian harus membuat varibel untuk sebagai tempat untuk memanggil file csv, oke sebelumnya kalian harus membuat dulu file csvnya, saya akan membuat dua file csv yang pertama itu stok.csv yaitu untuk menyimpan data stok barang dan users.csv yaitu untuk menyimpan data user, saya membuat file csvnya di data D

Oke langsung saja buat varibelnya :
data_csv = 'D:\stok.csv'
data_csv_users = 'D:\users.csv'


Nah selanjutnya yaitu membuat sebuah fungsi untuk halaman utama kita

def halaman_awal():
    print("-"*55)
    print("|                  CRUD DENGAN CSV                        |")
    print("-"*55)
    print("1. Login \n2. Daftar \n3. Keluar")
    pilih = int(input("Masukan Pilihan : "))

    if pilih == 1:
        login()
    elif pilih == 2:
        daftar()
    elif pilih == 3:
        print("\n")
        print("*"*36)
        print("* PROGRAM DIHENTIKAN, TERIMA KASIH *")
        print("*"*36)
        exit(0)
    else:
        opsi = input("Masukan yang anda masukan salah, klik enter untuk melanjutkan ")
        if opsi == "":
            halaman_awal()
Di menu utama kita akan mempunya tiga pilihan menu yaitu Login, Daftar, dan Keluar.


Selanjutnya kita akan membuat fungsi untuk menampilkan form pendaftaran bagi user yang belum mempunyai akun.
def daftar():
    clear_screen()
    users = []
    with open(data_csv_users, mode="r+"newline=''as csv_file:
        field = ['KODE','NAMA','USERNAME','PASSWORD','LEVEL']
        tambah = csv.DictWriter(csv_file, fieldnames=field)
        a = csv.DictReader(csv_file)
        for row in a:
            users.append(row)

        print("\n=============DAFTAR================")
        nama = input("Masukan Nama \t\t: ")
        username = input("Masukan Username \t: ")
       
        if not any(username in i['USERNAME'for i in users):
            password = input("Masukan Password \t: ")
            level = "Admin"
            kode = kode_acak()
            tambah.writerow({'KODE' : kode, 'NAMA' : nama, 'USERNAME' : username, 'PASSWORD' : password, 'LEVEL' : level})
        else:
            opsi = input("  \u274c  \u274c  Username sudah dipakai, silah enter untuk coba yang lain ")
            if opsi == "":
                daftar()
    
    pilih = input("\n\u2713 pendaftaran berhasil, silahkan enter untuk lanjut login ")
    if pilih == "":
        login()


Setelah pendaftaran berhasil maka user akan langsung diarahkan ke menu login.
berikut fungsi dari menu login
def login():
    clear_screen()
    users = []

    with open(data_csv_users, mode="r"as csv_file:
        baca_csv = csv.DictReader(csv_file)
        for row in baca_csv:
            users.append(row)

    print("-"*55)
    print("|                      LOGIN                          |")
    print("-"*55)
    username = input("Username \t: ")
    password = input("Password \t: ")

    if not any(username in data['USERNAME'for data in users):
        opsi = input("| \u274c  \u274c  Username Salah, Silahkan enter untuk ulangi \u274c  \u274c  |\n")
        if opsi == "":
            login()
    else:
        for i in users:
            if (i['USERNAME'] == username and i['PASSWORD'] == password and i['LEVEL'] == 'Admin'):
                admin()


lalu setelah itu user akan diarahkan ke menu utama admin yang akan berfungsi sebagai main menu untuk halaman admin
def admin():
    # clear_screen()
    print("-"*55)
    print("|                  MENU UTAMA                        |")
    print("-"*55)
    print("1. Lihat Stok Barang \n2. Tambah Barang \n3. Update Barang \n4. Hapus Barang \n5. Cari Barang \n6. Logout")
    pilih = input("Masukan Pilihan : ")
    if pilih == "1":
        lihat_stok()
    elif pilih == "2":
        tambah_barang()
    elif pilih == "3":
        Update_barang()
    elif pilih == "4":
        hapus_barang()
    elif pilih == "5":
        cari_barang()
    elif pilih == "6":
        halaman_awal()
    else
        a = input("  \u274c  \u274c  Masukan yang anda masukan tidak sesui, klik enter untuk kembali  \u274c  \u274c  ")
        if a == "":
            admin()


sekarang kita akan membuat fungsi untuk Melihat Stok, Tambah Barang, Update Barang, Hapus Barang, Cari Barang, dan pilihan untuk Log Out.
def lihat_stok():
    clear_screen()
    barang = []
    with open(data_csv) as file_csv:
        baca_csv = csv.reader(file_csv, delimiter=",")
        for i in baca_csv:
            barang.append(i)

    if (len(barang) > 0):
        label = barang.pop(0)
        print("-"*55)
        print("|                  STOK BARANG                          |")
        print("-"*55)
        print(f"{label[0]} \t {label[1]} \t\t  {label[2]} \t {label[3]}")
        print("-"*55)
        for data in barang:
            print(f"{data[0]} \t {data[1]}   \t\t {data[2]} \t\t {data[3]}")
        pilih = input("Tekan enter untuk kembali ke menu utama ")
        if pilih == "":
            admin()
    else:
        pilih = (\u2718  Saat ini sedang tidak ada stok tersedia, tekan enter untuk kembali ")
        if pilih == "":
            admin()

def tambah_barang():
    clear_screen()
    barang = []
    with open(data_csv, mode="r+"newline=''as csv_file:
        field = ['KODE','NAMA_BARANG','BANYAK','HARGA']
        tambah = csv.DictWriter(csv_file, fieldnames=field)
        a = csv.DictReader(csv_file)
        for row in a:
            barang.append(row)

        print("-"*55)
        print("|                  TAMBAH BARANG                        |")
        print("-"*55)
        nama = input("Masukan Nama Barang \t: ").upper()
        if not any(nama in i['NAMA_BARANG'for i in barang):
            banyak = input("Masukan Banyak Barang \t: ")
            harga = input("Masukan Harga Satuan \t: ")
            kode = kode_acak()

            tambah.writerow({'KODE' : kode, 'NAMA_BARANG' : nama, 'BANYAK' : banyak, 'HARGA' : harga})
            print("\n\u2713 Tambah barang berhasil. ")
    pilih = input("klik enter untuk melanjutkan ")
    if pilih == "":
        # print("  \u274c  \u274c  Gagal menambahkan, barang sudah ada di dalam stok!")
        admin()


def Update_barang():
    clear_screen()
    barang = []

    with open(data_csv, mode="r"as csv_file:
        baca_csv = csv.DictReader(csv_file)
        for i in baca_csv:
            barang.append(i)

    print("KODE \t NAMA BARANG \t\t BANYAK \t HARGA")
    print("-" * 55)
    for data in barang:
        print(f"{data['KODE']} \t {data['NAMA_BARANG']}   \t\t 
{data['BANYAK']} \t\t {data['HARGA']}")

    data_ketemu = []
    indeks = 0

    print("-"*55)
    nama = input("Pilih barang yang akan diupdate : ").upper()

    for data in barang:
        if (data['NAMA_BARANG'] == nama):
            data_ketemu = barang[indeks]            
        indeks = indeks + 1

    if len(data_ketemu) > 0:
        banyak = input("Banyak jumlah barang : ")
        harga = input("Harga satuan terbaru : ")

        indek = 0
        for data in barang:
            if (data['NAMA_BARANG'] == nama):
                barang[indek]['BANYAK'] = banyak
                barang[indek]['HARGA'] = harga
            indek = indek + 1

        with open(data_csv, mode="w"newline=''as csv_file:
            field = ['KODE''NAMA_BARANG''BANYAK','HARGA']
            writer = csv.DictWriter(csv_file, fieldnames=field)
            writer.writeheader()
            for data_baru in barang:
                writer.writerow({'KODE': data_baru['KODE'],
'NAMA_BARANG': data_baru['NAMA_BARANG'],
'BANYAK': data_baru['BANYAK'], 'HARGA': data_baru['HARGA']}) 

        pilih = input(\u2713 Data berhasil diupdate, 
tekan enter untuk kembali ke menu utama ")
        if pilih == "":
            admin()
    else:
        pilih = input("  \u274c  \u274c   Barang tidak ditemukan, 
tekan enter untuk kembali ke menu utama ")
        if pilih == "":
            admin()

def hapus_barang():
    clear_screen()
    barang = []

    with open(data_csv, mode="r"as csv_file:
        baca_csv = csv.DictReader(csv_file)
        for i in baca_csv:
            barang.append(i)

    print("-"*55)
    print("|                  MENU UTAMA                        |")
    print("-"*55)
    print("KODE \t NAMA BARANG \t\t BANYAK \t HARGA")
    print("-" * 55)
    for data in barang:
        print(f"{data['KODE']} \t {data['NAMA_BARANG']}   \t\t
 {data['BANYAK']} \t\t {data['HARGA']}")

    print("-----------------------")

    nama = input("Hapus barang berdasarkan nama : ").upper()

    index = 0
    for data in barang:
        if (data['NAMA_BARANG'] == nama):
            barang.remove(barang[index])
        index = index + 1

    if nama == data['NAMA_BARANG']:
        with open(data_csv, mode="w"newline=''as csv_file:
            field = ['KODE','NAMA_BARANG','BANYAK','HARGA']
            a = csv.DictWriter(csv_file, fieldnames=field)
            a.writeheader()
            for data_baru in barang:
                a.writerow({'KODE': data_baru['KODE'],
 'NAMA_BARANG': data_baru['NAMA_BARANG'],
 'BANYAK': data_baru['BANYAK'], 'HARGA': data_baru['HARGA']}) 
        print("\u2713 Data sudah terhapus")
        pilih = input("Tekan enter untuk kembali ke menu utama ")
        if pilih == "":
            admin()

    opsi = input("  \u274c  \u274c  Nama barang tersebut tidak ditemukan, 
tekan enter untuk mengulangi ")
    if opsi == "":
        hapus_barang()

def cari_barang():
    clear_screen()
    barang = []

    with open(data_csv, mode="r"as csv_file:
        baca_csv = csv.DictReader(csv_file)
        for row in baca_csv:
            barang.append(row)

    print("-"*55)
    print("|                   CARI BARANG                         |")
    print("-"*55)
    nama = input("Cari berdasarkan nama barang :  ").upper()

    data_ketemu = []

    indeks = 0
    for data in barang:
        if (data['NAMA_BARANG'] == nama):
            data_ketemu = barang[indeks]
            
        indeks = indeks + 1

    if len(data_ketemu) > 0:
        print("DATA DITEMUKAN : ")
        print("-"*30)
        print(f"Kode \t\t{data_ketemu['KODE']}")
        print(f"Nama Barang \t{data_ketemu['NAMA_BARANG']}")
        print(f"Banyak \t\t{data_ketemu['BANYAK']}")
        print(f"Harga \t\t{data_ketemu['HARGA']}")
        pilih = input("Klik enter untuk kembali ke menu utama ")
        if pilih == "":
            admin()
    else:
        pilih = input("   \u274c  \u274c  Tidak ada data ditemukan, 
klik enter untuk kembali ke menu utama  \u274c  \u274c  ")
        if pilih == "":
            admin()


dan yang terakhir tambahkan kode berikut
if __name__=="__main__":
    halaman_awal()
kode ini akan berfungsi sebagai blok yang akan dieksekusi pertama kali oleh sistem sehingga kita harus memanggil fungsi halaman_awal agar langsung diarahkan ke Halaman Utama.


Itu adalah program python CRUD dengan file CSV sebagai tempat penyimpanan data, program ini tentunya bisa kalian improvisasi lagi sesuai dengan ide ide kalian. Selamat mencoba..


Sunday 4 November 2018

Tutorial Codeigniter Lengkap : Installasi Dan Konfigurasi




CodeIgniter merupakan aplikasi open source yang berupa kerangka kerja PHP dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan pengembang web untuk membuat aplikasi web dengan cepat mudah dibandingkan dengan membuatnya dari awal. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir adalah versi 3.0.6. 

Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :

  1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
  2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
  3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.

Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan.

Langkah 1 : Installasi Codeigniter
  • Pertama, download dulu package resmi codeigniter di situs resminya. Disini
  • Setelah itu, ekstrak file codeigniter yang sudah di download tadi dan arahkan ke folder C:\xampp\htdocs.
  • Terakhir, nyalakan xampp & ketikan localhost/nama_folder dibrowser.

Langkah 2 : Konfigurasi CI

1. Config.php
config.php di framwork Codeigniter terletak di nama_folder/application/config/config.php 

$config['base_url'] = 'http://localhost/nama_folder';

$config['index_page'] = 'index.php';

2. routes.php
routers.php terletak di nama_folder/application/config/routes.php

$route['default_controller'] = "";

3. database.php

file database.php jugat terletak pada lokasi folder_ci/application/config/database.php. Pada file ini yang harus kita setting hanyalah pada bagian script :
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'password database';
$db['default']['database'] = 'nama database';
silahkan isi konfigurasi database.php sesuai dengan konfigurasi pada database kalian, jika kalian tidak mengubah ubah password di mysql / xampp biarkan saja kosong ' ' pada bagian password

4. autoload.php

file autoload.php jugat terletak pada lokasi folder_ci/application/config/autoload.php. Pada file ini yang harus kita setting hanyalah pada bagian script :
$autoload['libraries'] = array('database');

Sekian Tutorial Codeigniter dari saya, sampai jumpa di tutorial selanjutnya.

Thursday 15 June 2017

Download iDealShare Videogo 6 Full Crack Dan License Key

Halo sobat, kali ini saya akan membagikan software iDealShare Video Converter 6 dan License Key. Bagi anda yang suka download film namun subtitlenya terpisah jangan khawatir karena iDealShare VideoGo 6 ini dapat menggabungkan subtitle dengan film atau video secara permanen. Aplikasi ini mempunyai banyak kegunaan yang sangat bermanfaat.


iDealShare


IDealshare VideoGo adalah perangkat lunak konversi video yang mudah digunakan yang dilengkapi dengan antarmuka yang indah dan pilihan konversi video serbaguna. IDealshare VideoGo memungkinkan Anda untuk mengkonversi satu format ke berbagai format audio dan video termasuk: mp4, mp3, flv, h.264, wav, mkv, dll dengan kecepatan tinggi dan kualitas bagus. Selain itu, iDealshare VideoGo allso memungkinkan Anda membuat konversi audio dan video untuk perangkat yang paling populer seperti: Android, PSP, iPod, iPhone, iPad, Xbox, BlackBerry, dll.



Link Download :

Cara Install :
  • Download iDealShare Videogo 6 diatas pilih salah satu link.
  • Run as Administrator.
  • Klik next sampai selesai.
  • Setelah instalasi selesai silahkan masukankan License Name & License Key yang sudah disediakan dalam folder tersebut, agar iDealShare menjadi Full Version.
Sekian pembahasan kali ini tentang "Download iDealShare Videogo 6 Full Crack Dan License Key" semoga artikel ini dapat membantu anda, Sampai jumpa kembali, Terima Kasih.

Tuesday 13 June 2017

Apa Itu BlueStacks Serta Kelebihan & Kekurangannya


Bagi anda yang sering menggunakan PC ataupun Android tentu anda sudah mengenal apa itu BlueStacks, Namun bagi anda yang belum mengetahuinya saya akan menjelaskan apa itu BlueStacks dan kelebihan kekurangannya. Bila anda belum mempunyai aplikasi BlueStacks klik Download Bluestacks

Bluestacks merupakan software yang di gunakan untuk menjembatani android agar bisa di jalankan oleh komputer. Dengan bluestacks kita juga bisa menikmati aplikasi android. Bluestacks di gunakan untuk sistem operasi windows dan juga Mac, namun bluestacks dalam sistem operasi windows masih dalam tahap percobaan meskipun begitu hasilnya pun cukup memuaskan karena saya juga telah menggunakannya.

Sebenarnya aplikasi bluestacks ini sudah lumayan lama karena sudah sejak 2010 aplikasi bluestack di kembangkan. Software yang bernama bluestacks di buat oleh seorang dari India yang bernama Rosen Sharma. Dengan anda menggunakan bluestacks di komputer anda otomatis anda bisa memasang dan mengoperasikan aplikasi dan Games yang berbasis android dengan sistem operasi windows maupun Mac.




Banyak aplikasi ataupun Games yang di sediakan oleh bluestacks, kurang lebih 750.000 android Depp yang dapat di jalnkan dengan windows maupun Mac. Seperti aplikasi BBM, facebook, twitter, game pou, instagram, path, skype dan masih banyak lagi.

Kelebihan Aplikasi BlueStacks

  • Aplikasi ini gratis di gunakan / Didownload(Open Source).
  • Dapat memasang aplikasi android ke PC meskipun tidak memiliki smartphone android.
  • Resolusi lebih jernih
  • Dapat memainkan aplikasi android layaknya smartphone android.
  • Ukuran layar lebih luas.
  • Dapat di gunakan sebagai cadangan jika smartphon mati ataupun rusak.
  • Jika baterai habis tinggal dicas atau dicolokkan ke listrik. Karna dayanya berasal dari PC, jadi tidak - perlu kwatir untuk kehabisan baterai.
  • Bisa multi Guna di komputer.


Kekurangan Aplikasi BlueStacks

  • Memerlukan daya yang lebih besar sehingga baterai laptop tidak cepat habis.
  • PC menjadi mudah cepat panas.
  • Jika kapasitas RAM kecil, maka kinerja PC menjadi lebih lambat.
  • Membutuhkan spesifikasi pc yang tinggi supaya Bluestacks berjalan lancar.
  • Lebih nyaman menggunakan Touch-Screen dibandingkan menggunakan mouse dikarnakan lebih rumit.
  • Tidak bisa Multi Touch seperti pada smartphone.
  • Tidak semua aplikasi dapat di gunakan di Bluestacks.
  • Tidak Tersedia Aplikasi Langsung ( Membutuhkan APK Untuk menjalankan/memainkan sebuah aplikasi)
  • Laptop atau PC akan Rentan Lag Dan Hang

Semoga artikel ini bisa menambah membantu anda... Sekian Terima kasih

Cara install Window 8 / 8.1 Lengkap Beserta Gambar



Pada artikel kali ini saya akan membagikan cari install window 8 atau 8.1 dengan menggunakan CD/DVD. Window 8 mempunyai kelebihan yaitu Booting di windows 8 lebih cepat dari windows sebelumnya. Untuk booting windows 8 hanya memerlukan waktu 8 detik. Di windows 8 tidak terdapat lagi flahing layar BIOS. Operating System Windows8 terbaru yang dikeluarkan Microsoft sepertinya akan menjadi Operating System yang hebat dan handal, Dilihat dari segi tampilan Windows 8. Selain itu tersedianya fitur-fitur unggulan dari Windows 8 yang membuat seorang pengguna menjadi nyaman dan betah menggunakan windows 8. 

Langkah pertama yang harus anda lakukan adalah setting BIOS agar booting awal dari CD/DVD. berikut cara setting BIOS :

INGAT. Tidak semua tipe BIOS pada masing-masing laptop sama. Jadi jangan heran jika tampilan BIOS yang digunakan dalam tutorial kali ini berbeda dengan tampilan BIOS pada laptop/ komputer anda.

  • Hidupkan PC / Laptop anda, kemudian tekan tombol DEL. untuk masuk ke menu BIOS. Pindahkan / pilih tab Boot dengan menggunakan tombol kanan / kiri. Seperti Gambar berikut.


  • Seperti yang terdapat pada gambar dibawah ini, posisi Hard Drive atau HDD terletak di atas sendiri, hal tersebut berarti booting pertama kali dilakukan dari HDD. Maka dari itu, anda harus mengubahnya agar booting pertama kali dari CD-ROM Drive.



  • Pilih CD-ROM Drive, lalu pindahkan ke posisi teratas dengan menggunakan tombol + / -





  • Lalu masukan DVD/CD installer window 8. Simpan konfigurasi dengan menekan tombol F10 (berbeda-beda tergantung jenis BIOS).




LANGKAH - LANGKAH MENGINSTALL WINDOW 8 /  8.1
  • Pertama saat tampilan seperti gambar berikut, anda harus menekan sembarang tombol agar PC atau Laptop dapat melakukan booting dari CD/DVD. Dan jika nanti anda menemui tampilan seperti ini lagi biarkan saja, jangan tekan tombol apapun karena nanti anda akan kembali ke awal lagi. 



  • Pilih Indonesian (Indonesia) Pada Time and currency format. Dan biarkan yang lainnya tetap default. Klik Next




  • Lalu Klik Install Now. Tunggu proses memulai install Window




  • Langkah selanjutnya adalah memasukan product key window 8. biasanya product key terdapat pada bungkusan CD/DVD windownya, lalu pilih Next




  • Centang I accept the license terms lalu klik next untuk melanjutkan




  • Jika anda ingin mengupgrade WIndow 7 ke Window 8, anda bisa memilih upgrade. Jika anda ingin menginstall window 8, anda pilih Custom 




  • Pilih partisi mana yang akan dijadikan tempat install Windows 8. Bagi anda yang ingin melakukan install ulang, dimana komputer/ laptop anda pernah diinstall sistem operasi windows sebelumnya dan ingin agar data pada partisi lain tidak hilang, cukup delete atau bisa juga memformatnya (saya biasanya memformatnya) Drive 0 Partition 2 (partisi C:) dan Drive 0 Partition 1 : System Reserved, kemudian jika anda mendeletnya buat partisi baru lagi. Setelah itu pilih Drive 0 Partition 2 sebagai lokasi instalasinya, kemudian pilih Next.



  • Pada tahapan ini membutuhkan waktu kurang lebih 15 menit dan PC atau Laptop anda akan restart dengan sendirinya, biarkan saja karena itu bagian dari instalasi.




  • Setelah proses install selesai, anda akan disuruh untuk mengisi nama komputer dan memilih warna tema.




  • tahap selanjutnya anda akan dirusuh untuk melakukan setting PC. saran saya anda pilih saja "Use express settings".




  • Lalu pilih Local account. Kemudian isi nama akun anda dan password. Jika anda tidak ingin PC / Laptop anda dipassword anda bisa mengosongkan kolom password.




  • Tunggulah beberapa saat. 




  • Proses Instalasi Window 8 selesai.


Sekian pembahasan mengenai Cara Install Window 8 / 8.1 Lengkap Dengan Gambar. Semoga artikel ini dapat membantu sobat dalam melakukan instalasi. Terima Kasih.