Tugas 8 – Laravel

1. Install Xampp

        Pastikan sudah menginstall XAMPP sebelumnya.

2. Install Laravel

        Masuk ke folder dalam root XAMPP dengan direktori /htdocs/ . Kemudian klik kanan folder htdocs, dan buka pada windows terminal seperti yang ditandai pada tampilan berikut:

ketikan pada terminal yang terbuka composer create-project –prefer-dist laravel/laravel:^7.0  nama-blog ganti nama-blog dengan nama file yang diinginkan.
        Ketika sudah selesai meng-install, pindah ke direktori yang dibuat sebelumnya dimana saya buat “nama-blog” dengan cd nama-blog. Berikutnya pada terminal tersebut ketikan composer require laravel/ui:^2.4 untuk membantu layout dari laravel.    
        Setelah selesai, jalankan php artisan ui vue –auth , Kemudian akan diminta melakukan npm install dan npm run dev . Jika mengalami error, install node.js pada link berikut ini: node.js. Setelah menginstall, restart komputer/laptop. Setelah melakukan restart, bukan kembali terminal dan PASTIKAN berada didalam folder yang tadi dibuat dimana ditutorial ini bernama nama-blog. Jalankan npm install ; npm run dev pada terminal.     
        Untuk mengetes, silahkan jalankan php artisan serve maka akan terdapat link yang dapat ditekan dengan ctrl+klik pada link http yang dikirimkan. Maka tampilan web akan muncul pada browser.

3. Pengerjaan Web

       Berikut hasil tampilan:

Budiman Akbar Radhiansyah

05111740000179

PBKK A

Tugas 7 CI CRUD

Berikut Langkah-Langkah Pengerjaan :

1. Menyiapkan Project CodeIgniter

2. Membuat Database

Buat database dan sebuah tabel yang bernama ‘identitas_penduduk’, dengan struktur tabel sebagai berikut :

3. Mengatur Config Database

Edit config pada Database.php menjadi :

 <?php  
 defined('BASEPATH') OR exit('No direct script access allowed');  
 $active_group = 'default';  
 $query_builder = TRUE;  
 $db['default'] = array(  
   'dsn'  => '',  
   'hostname' => 'localhost',  
   'username' => 'root',  
   'password' => '',  
   'database' => 'penduduk',  
   'dbdriver' => 'mysqli',  
   'dbprefix' => '',  
   'pconnect' => FALSE,  
   'db_debug' => (ENVIRONMENT !== 'production'),  
   'cache_on' => FALSE,  
   'cachedir' => '',  
   'char_set' => 'utf8',  
   'dbcollat' => 'utf8_general_ci',  
   'swap_pre' => '',  
   'encrypt' => FALSE,  
   'compress' => FALSE,  
   'stricton' => FALSE,  
   'failover' => array(),  
   'save_queries' => TRUE  
 );  

4. Membuat Controller

Membuat controller dan menambahkan beberapa fungsi seperti berikut :

 <?php  
 defined('BASEPATH') or exit('No direct script access allowed');  
 class penduduk extends CI_Controller  
 {  
   public function __construct()  
   {  
     parent::__construct();  
     $this->load->model('penduduk_models');  
   }  
   public function index()  
   {  
     $data['identitas_penduduk'] = $this->penduduk_models->getPenduduk();  
     $this->load->view('list_penduduk', $data);  
   }  
   public function insert()  
   {  
     $this->load->view('add_penduduk');  
   }  
   public function store()  
   {  
     $data = array(  
       'nama_penduduk' => $this->input->post('nama_penduduk'),  
       'ttl_penduduk' => $this->input->post('ttl_penduduk'),  
       'jenis_kelamin_penduduk' => $this->input->post('jenis_kelamin_penduduk')  
     );  
     $this->penduduk_models->insertPenduduk($data);  
     $this->index();  
   }  
   public function updateView($nik_penduduk)  
   {  
     $data['identitas_penduduk'] = $this->penduduk_models->getPendudukSpesific($nik_penduduk);  
     $this->load->view('edit_penduduk', $data);  
   }  
   public function update()  
   {  
     $nik_penduduk = $this->input->post('nik_penduduk');  
     $data = array(  
       'nama_penduduk' => $this->input->post('nama_penduduk'),  
       'ttl_penduduk' => $this->input->post('ttl_penduduk'),  
       'jenis_kelamin_penduduk' => $this->input->post('jenis_kelamin_penduduk')  
     );  
     $this->penduduk_models->updatePenduduk($data, $nik_penduduk);  
     $this->index();  
   }  
   public function delete($nik_penduduk)  
   {  
     $this->penduduk_models->deletePenduduk($nik_penduduk);  
     $this->index();  
   }  
 }  

5. Membuat Model

Membuat model di folder models seperti berikut :

 <?php  
 class penduduk_models extends CI_Model  
 {  
   private $db;  
   // private $_table = 'identitas_penduduk';  
   public function __construct()  
   {  
     parent::__construct();  
     $this->db = $this->load->database('default', true);  
   }  
   public function getPenduduk()  
   {  
     $this->db->from('identitas_penduduk');  
     $query = $this->db->get();  
     return $query->result();  
   }  
   public function getPendudukSpesific($nik_penduduk)  
   {  
     $this->db->from('identitas_penduduk');  
     $this->db->where('nik_penduduk', $nik_penduduk);  
     $query = $this->db->get();  
     return $query->result();  
   }  
   public function insertPenduduk($data)  
   {  
     return $this->db->insert('identitas_penduduk', $data);  
   }  
   public function updatePenduduk($data, $nik_penduduk)  
   {  
     $this->db->where('nik_penduduk', $nik_penduduk);  
     return $this->db->update('identitas_penduduk', $data);  
   }  
   public function deletePenduduk($nik_penduduk)  
   {  
     $this->db->where('nik_penduduk', $nik_penduduk);  
     return $this->db->delete('identitas_penduduk');  
   }  
 }  

6. Hasil Pembuatan

View List Penduduk :

Menambah Data Penduduk :

Mengedit Data Penduduk :

Hapus Data Penduduk :

Budiman Akbar Radhiansyah

05111740000179

PBKK A

Tugas 6 CI Biodata

Pada pertemuan kali ini saya akan menambah 2 halaman baru pada web ini, Yaitu halaman About Us dan Contact Us.nb : klik foto jika terlihat kurang jelas

  1. Pertama-tama kita harus menambahkan route about dan contact pada file routes.php pada folder config

2. Setelah menambahkan route pada file routes.php langkah selanjutnya adalah membuat function about dan contact pada file Welcome.php

Dan tentu saja kita perlu membuat 2 file yang bernama about.php dan contact.php pada folder views

Setelah menambahkan langkah langkah diatas maka hasil dari kerja kita diatas maka akan jadi deh

Budiman Akbar Radhiansyah

05111740000179

PBKK A

ETS PBKK

1. Sebutkan aplikasi POS yang biasa dipakai di masyarakat?

Salah satu aplikasi POS yang biasa digunakan di masyarakat adalah Moka POS. Moka adalah perusahaan rintisan Software as a Service dari Indonesia dan bergerak di ranah aplikasi kasir. Produknya mengakomodir 3 tipe bisnis utama, yaitu makanan dan minuman, ritel, dan layanan. Jadi, Moka Pos sendiri biasa digunakan terlebih pada restoran dan cafe-cafe.

2. Fitur apa saja yang ada di dalam aplikasi tersebut , buatlah screenshotnya dan jelaskan?

  • Moka POS, banyak outlet
    Jika kita memiliki banyak usaha (outlet), tak perlu device yang berbeda- beda per usahanya untuk masalah POS. Moka POS dapat menyimpan beberapa data login usaha yang pastinya memudahkan kelancaran bisnis.
  • Pemilihan Berbagai PembayaranDi Moka POS, kita bisa melakukan pembagian beberapa metode pembayaran, seperti pembayaran via E-Wallet, kartu kredit, kartu debit, dll. Jadi, setiap transaksi akan dicatat metode pembayarannya.
  • Table ManagementFitur table management memudahkan untuk mengatur serta melihat posisi-posisi meja (Food n Beverages Business), serta mengatur apakah sebuah meja sedang ditempati atau tidak, serta bisa diberi waktu/lama seorang pelanggan berada di meja tersebut.
  • Memiliki Akun Role Berbeda-bedaSetiap akun yang dapat mengakses sebuah POS dari usaha kita bisa diberikan role dan hak yang  berbeda-beda sesuai kebutuhan, seperti akses untuk melihat, akses untuk mengubah, dll.
  • Mengirim receipts via email
    Moka POS juga bisa mengirim setiap receipts transaksi yang terjadi pada usaha kita via email yang telah di daftarkan sebelumnya, atau pun bisa juga via SMS.
  • Bisa connect >1 perangkat
    Selain itu, Moka POS bisa digunakan oleh lebih dari 1 orang (perangkat) dalam waktu yang bersamaan tanpa mengganggu aktivitas antar pengguna nya.

3. Buat rancangan UI dan navigasi aplikasi POS mu sendiri?

4. Dengan menggunakan framework .NET implementasikan aplikasi POS yang dirancang!

https://github.com/Kyielas/ETS-PBKK

5. Buat tutorial pembuatan aplikasi beserta demo penggunaannya di Youtube , kemudian dokumentasikan/ embedded di blog.

<https://www.youtube.com/watch?v=ZRvfslt7IXs&t=2s&gt;

Tugas 5 Xamarin Mobile App

  1. Install Mobile Development with .NET
  2. Create New Project -> Pilih Mobile App (Xamarin Form)
  3. Pilih Blank Template
  4. Setup Emulator untuk menyambungkan dengan HP masing-masing
  5. Ubah kode pada MainPage.xaml
  6. Ubah kode pada MainPage.xaml.cs
  7. Klik tombol start

2. Create New Project -> Pilih Mobile App (Xamarin Form)

3. Pilih Blank Template

4. Setup Emulator untuk menyambungkan dengan HP masing-masing

5. Ubah kode pada MainPage.xaml

7. Ubah kode pada MainPage.xaml.cs

Budiman Akbar Radhiansyah

05111740000179

PBKK A

Tugas 4 WVVM

MVVM adalah sebuah variasi dari MVC yang memisahkan view menjadi dua, yaitu view dan view model yang terhubung melalui data binding. 

Pada tugas 4 ini, saya akan mencoba untuk menerapkan WVVM dengan menggunakan WPF (Windows Presantation Foundation)

1. Buat proyek baru di Visual Studio 2019, pilih jenis proyek Visual C#, Windows, WPF Application untuk membuat aplikasi desktop yang memakai WPF.

2. Buat sebuah model baru dengan men-klik kanan nama proyek dan memilih Add, Class. Beri nama model ini sebagai ItemPenjualan yang kode programnya terlihat seperti berikut ini:

3. Berikutnya, ubah kode program di MainWindow.xaml 

4. Lalu, buat sebuah class baru dengan nama ItemPenjualanViewModel

5. Langkah berikutnya, kita perlu menghubungkan antara view, view model dan model.

6. Lalu ubah MainWindow.xaml untuk binding

7. Selanjutnya, kita perlu menyimpan model ke database, yang pertama dilakukan adalah menginstall MySQL Connector versi 6.8.7

8. Setelah itu, kita perlu menambahkan referensi, dengan cara klik kanan pada Reference > Add Reference > Pilih MySql.Data.Entity For EF 6 & System.ComponentModel.DataAnnotations .

9. Lalu pada Nuget Manager, install EntityFramework

10. Buat database, lalu ubah code pada App.config sesuai dengan nama database, username, dan password

11. Tambahkan sebuah atribut di model agar nilai property Id dihasilkan secara otomatis oleh database (melalui auto number)
12. Lalu buat class LatihanContext
13. Buat kelas MyHistoryContext

14. Ubah code pada ItemPenjualanViewModel untuk menambahkan SimpanCommand

15. Jalankan perintah Enable-Migrations pada Package Manager Console

16. Lalu jalankan Add-Migration, dan setelah itu Update Database

17. 

Masih terjadi kendala saat akan menyimpan ke database.

Hasil :

Budiman Akbar Radhiansyah

05111740000179

PBKK A

Tugas 3 Currency Converter

Halo teman-teman
Hari ini kita akan implementasi bikin aplikasi Currency Converter sederhana .NET Framework C#. Kita bakal bikin dua versi, statis dan dinamis menggunakan Currency Converter API

1. Membuat Project Baru

Pertama, buka Visual Studio Community dan membuat sebuah project baru dengan form “Windows Forms Application” dengan bahasa pemrograman C#  

2. Buat Design Dari Currency Converter

Pada tahap berikutnya langkah yang harus dilakukan adalah membuat design dari Currency Converter yang kita inginkan dengan cara menarik fitur yang ada di bagian toolbox.

3. Source Code

 using System;  
 using System.Collections.Generic;  
 using System.ComponentModel;  
 using System.Data;  
 using System.Drawing;  
 using System.Linq;  
 using System.Text;  
 using System.Threading.Tasks;  
 using System.Windows.Forms;  
 using System.Globalization;  
 namespace CurrencyConverter  
 {  
   public partial class Form1 : Form  
   {  
     public Form1()  
     {  
       InitializeComponent();  
     }  
     private void label1_Click(object sender, EventArgs e)  
     {  
     }  
     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)  
     {  
     }  
     private void label2_Click(object sender, EventArgs e)  
     {  
     }  
     private void Form1_Load(object sender, EventArgs e)  
     {  
     }  
     private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)  
     {  
     }  
     private void button1_Click(object sender, EventArgs e)  
     {  
       Convert();  
     }  
     private void Convert()  
     {  
       var value1 = double.Parse(this.textBox1.Text);  
       double value2 = value1;  
       string from = this.comboBox2.SelectedItem.ToString().ToLower();  
       string to = this.comboBox1.SelectedItem.ToString().ToLower();  
       if (from == "eur")  
       {  
         value2 = value1 * GetCurrencyRateInEuro(to);  
       }  
       if (to == "eur")  
       {  
         value2 = value1 / GetCurrencyRateInEuro(from);  
       }  
       float toRate = GetCurrencyRateInEuro(to);  
       float fromRate = GetCurrencyRateInEuro(from);  
       // Calculate exchange rate From A to B  
       value2 = (value1 * toRate) / fromRate;  
       if (from == to) value2 = value1;  
       this.label3.Text = Math.Round(value2, 6) + "";  
     }  
     /// <summary>  
     /// Gets all available currency tags  
     /// </summary>  
     public static string[] GetCurrencyTags()  
     {  
       // Hardcoded currency tags neccesairy to parse the ecb xml's  
       return new string[] {"eur", "usd", "jpy", "bgn", "czk", "dkk", "gbp", "huf", "ltl", "lvl"  
       , "pln", "ron", "sek", "chf", "nok", "hrk", "rub", "try", "aud", "brl", "cad", "cny", "hkd", "idr", "ils"  
       , "inr", "krw", "mxn", "myr", "nzd", "php", "sgd", "zar"};  
     }  
     /// <summary>  
     /// Get currency exchange rate in euro's  
     /// </summary>  
     public static float GetCurrencyRateInEuro(string currency)  
     {  
       if (currency.ToLower() == "")  
         throw new ArgumentException("Invalid Argument! currency parameter cannot be empty!");  
       if (currency.ToLower() == "eur")  
         throw new ArgumentException("Invalid Argument! Cannot get exchange rate from EURO to EURO");  
       try  
       {  
         // Create with currency parameter, a valid RSS url to ECB euro exchange rate feed  
         string rssUrl = string.Concat("http://www.ecb.int/rss/fxref-", currency.ToLower() + ".html");  
         // Create & Load New Xml Document  
         System.Xml.XmlDocument doc = new System.Xml.XmlDocument();  
         doc.Load(rssUrl);  
         // Create XmlNamespaceManager for handling XML namespaces.  
         System.Xml.XmlNamespaceManager nsmgr = new System.Xml.XmlNamespaceManager(doc.NameTable);  
         nsmgr.AddNamespace("rdf", "http://purl.org/rss/1.0/");  
         nsmgr.AddNamespace("cb", "http://www.cbwiki.net/wiki/index.php/Specification_1.1");  
         // Get list of daily currency exchange rate between selected "currency" and the EURO  
         System.Xml.XmlNodeList nodeList = doc.SelectNodes("//rdf:item", nsmgr);  
         // Loop Through all XMLNODES with daily exchange rates  
         foreach (System.Xml.XmlNode node in nodeList)  
         {  
           // Create a CultureInfo, this is because EU and USA use different sepperators in float (, or .)  
           CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();  
           ci.NumberFormat.CurrencyDecimalSeparator = ".";  
           try  
           {  
             // Get currency exchange rate with EURO from XMLNODE  
             float exchangeRate = float.Parse(  
               node.SelectSingleNode("//cb:statistics//cb:exchangeRate//cb:value", nsmgr).InnerText,  
               NumberStyles.Any,  
               ci);  
             return exchangeRate;  
           }  
           catch { }  
         }  
         // currency not parsed!!  
         // return default value  
         return 0;  
       }  
       catch  
       {  
         // currency not parsed!!  
         // return default value  
         return 0;  
       }  
     }  
     /// <summary>  
     /// Get The Exchange Rate Between 2 Currencies  
     /// </summary>  
     public static float GetExchangeRate(string from, string to, float amount = 1)  
     {  
       // If currency's are empty abort  
       if (from == null || to == null)  
         return 0;  
       // Convert Euro to Euro  
       if (from.ToLower() == "eur" && to.ToLower() == "eur")  
         return amount;  
       try  
       {  
         // First Get the exchange rate of both currencies in euro  
         float toRate = GetCurrencyRateInEuro(to);  
         float fromRate = GetCurrencyRateInEuro(from);  
         // Convert Between Euro to Other Currency  
         if (from.ToLower() == "eur")  
         {  
           return (amount * toRate);  
         }  
         else if (to.ToLower() == "eur")  
         {  
           return (amount / fromRate);  
         }  
         else  
         {  
           // Calculate non EURO exchange rates From A to B  
           return (amount * toRate) / fromRate;  
         }  
       }  
       catch { return 0; }  
     }  
   }  
 }  

4. Jalankan Program

4.2 [ VERSI DINAMIS ]Dapatkan API dari The Free Currency Converter API

5. Jalankan Program

Tugas 2 – .Net Framework

  1. Download  Visual Studio Installer. Pilih versi sesuai sistem operasi dan kebutuhan. Pada artikel ini saya akan menggunakan Visual Studio 2019 Community Edition.
  2. Jalankan Visual Studion Installer kemudian pilih workload untuk .Net Framework kemudian install. Disini saya menginstall .NET Core cross-platform development dan .NET Destop Development.
  3. Buka Visual Studio.
  4. Create New Project dengan memilih Console Application menggunakan C#
  5. Beri nama dan atur lokasi penyimpanan untuk aplikasi yang ingin kita buat.
  6. Kemudian pilih target framework .NET Core 3.1 LTS kemudian create project.
  7. Selesai

Tugas 1 PBKK – Portofolio

Pada hari ini saya akan menampilkan beberapa pengalaman hasil kerja saya yang sebelumnya sudah dilakukan yaitu meliputi dibawah ini:

SIMMI

Sistem informasi tempat ibadah . . Fitur : CMS ( Content Management System ) . Framework : Laravel

PeduliSesama

Aplikasi mobile untuk mendeteksi masyarakat layak bantuan dikala masa pandemi Fitur : RESTful API, multi-authentication Framework : React Native