Author Archive

Membuat REST API CRUD sederhana dengan Laravel

Posted by:

1. Pertama – tama tools yang perlu disiapkan adalah

  •   Text Editor (Sublime atau VisualCode Studio)
  •   Composer
  •   Local Server (Xampp)
  •   Postman

2. Apabila semua tools sudah siap, langkah pertama yang akan dilakukan adalah mengaktifkan Local Server   (Xampp)

 

3. Klik Start pada Apache serta MySQL

3. Kemudian buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/dashboard/ pada link URL anda.

4. Lalu kita install laravel dengan menggunakan cmd tunggu sampai proses instalasi selesai ..   5. Kemudian buka salah satu text editor anda, lalu File -> open folder -> RestApi 6. Lalu buka file .env , pada bagian DB isikan seperti gambar di bawah kemudian save 7. Kemudian buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/phpmyadmin/. Klik new Lalu buatlah sebuah database dengan nama rest_api. Kemudian klik Create 8. Kemudian kita buat model, migration dan controller untuk Siswa   9. Buka file seperti gambar dibawah, lalu ubah isi pada bagian function up ( ) 10. Kita akan membuat tabel id (primary key) , nama (string) , alamat (string) lalu setelah itu kita akan memigrate nya , sebelum itu kita atur pada app/providers/AppServiceProvider.php kita tambahkan kode seperti di bawah ini :   11. Lalu kita eksekusi pembuatan tabel Siswa 12. Masuk ke app/Http/Controllers/SiswaController.php , isi source code seperti berikut : 13. pada bagian route/api.php tambahkkan source code berikut : 14. Ok, sekarang kita testing REST API nya , buka aplikasi POSTMAN anda . kita akan mencoba Create Data, 15. kita akan mencoba Read Data, 16. kita akan mencoba Update Data, 17. kita akan mencoba Detail Data, 18. kita akan mencoba Hapus Data,

0

CSRF Attack & Solution

Posted by:

A. CSRF Attack

  1. Untuk mencoba serangan, anda bisa mendownload project web yang sudah tersedia untuk penetrasi, download di sini -> https://github.com/raesene/bWAPP
  2. Kemudian download aplikasi sender penetrasi tambahan Burp Suite di sini -> https://portswigger.net/burp/communitydownload
  3. Setelah anda download, install pada localhost anda. Jika bingung, bisa lihat tutorial berikut -> https://www.youtube.com/watch?v=F3QcgmCuEC0
  4. Jika sudah terinstall, masuk ke halaman Login
    http://localhost/bwapp/login.php

5. Kemudian login dengan Login : bee, Password : bug

6. Untuk serangan CSRF terbagi menjadi beberapa serangan, kita coba satu – persatu. Sekarang kita coba CSRF (Change Password) kemudian pilih Hack

7. Setelah masuk ke halaman yang di tuju, klik kanan -> View page source ( Google Chrome )

8. Kemdian block baris code seeperti gambar di bawah, copy + paste di editor anda.

9. Buatlah sebuah file csrf.html simpan di lokasi yang anda inginkan. Paste code di atas.

10. Sekarang copy + paste url pada halaman ganti password

11. Sekarang kita akan mengganti password menggunakan file crsf.html yang dibuat, ubah code seperti gambar berikut

12. untuk melakukan perubahan password, buka file csrf.html pada browser anda, klik Change

13. Kemudian coba anda login dengan password baru yang dibuat lewat file csrf.html

B. Solution

  1. Untuk mengatasi serangan CSRF (Change Password) , pada bagian form input, tambahkan current password field seperti gambar di bawah
  2.  

2. Pada saat handling request get password_curr , tambahkan code berikut ( Sesuaikan nama tabel dan kolom )

if(isset($_REQUEST["password_curr"]))
                {
                              
                    $password_curr = $_REQUEST["password_curr"];
                    $password_curr = mysqli_real_escape_string($link, $password_curr);
                    $password_curr = hash("sha1", $password_curr, false);                

                    $sql = "SELECT password FROM users WHERE login = '" . $login . "' AND password = '" . $password_curr . "'";

                    // Debugging
                    // echo $sql;    

                    $recordset = $link->query($sql);             

                    if(!$recordset)
                    {

                        die("Connect Error: " . $link->error);

                    }

                    // Debugging                
                    // echo "<br />Affected rows: ";                
                    // printf($link->affected_rows);

                    $row = $recordset->fetch_object();   

                    if($row)
                    {

                        // Debugging
                        // echo "<br />Row: ";
                        // print_r($row);

                        $sql = "UPDATE users SET password = '" . $password_new . "' WHERE login = '" . $login . "'";

                        // Debugging
                        // echo $sql;

                        $recordset = $link->query($sql);

                        if(!$recordset)
                        {

                            die("Connect Error: " . $link->error);

                        }

                        // Debugging              
                        // echo "<br />Affected rows: ";         
                        // printf($link->affected_rows);

                        $message = "<font color=\"green\">The password has been changed!</font>";

                    }

                    else
                    {

                        $message = "<font color=\"red\">The current password is not valid!</font>";

                    }
                
                }
0

SQL Injection & Solution

Posted by:

A. SQL Injection

  1. Untuk mencoba serangan, anda bisa mendownload project web yang sudah tersedia untuk penetrasi, download di sini -> https://github.com/raesene/bWAPP
  2. Kemudian download aplikasi sender penetrasi tambahan Burp Suite di sini -> https://portswigger.net/burp/communitydownload
  3. Setelah anda download, install pada localhost anda. Jika bingung, bisa lihat tutorial berikut -> https://www.youtube.com/watch?v=F3QcgmCuEC0
  4. Jika sudah terinstall, masuk ke halaman Login
    http://localhost/bwapp/login.php

5. Kemudian login dengan Login : bee, Password : bug

6. Untuk serangan SQL Injection terbagi menjadi beberapa serangan, kita coba satu – persatu. Sekarang kita coba SQL Injection (GET/Search) kemudian pilih Hack

7. Lalu isi form seperti gambar di bawah, klik Search

8. Sekarang kita coba SQL Injection (GET/Select) kemudian pilih Hack

9. Kemudian pilih salah satu judul film selain yang pertama, lalu klik Go

10. Sekarang masukkan script modifikasi pada url seperti gambar dibawah, kemudian tekan enter pada url tersebut

B. Solution

  1. Untuk mengatasi serangan SQL Injection (GET/Search) &
    SQL Injection (GET/Select) , buatlah fungsi berikut
0

HTML Attack & Solution

Posted by:

A. Html Attack

  1. Untuk mencoba serangan, anda bisa mendownload project web yang sudah tersedia untuk penetrasi, download di sini -> https://github.com/raesene/bWAPP
  2. Kemudian download aplikasi sender penetrasi tambahan Burp Suite di sini -> https://portswigger.net/burp/communitydownload
  3. Setelah anda download, install pada localhost anda. Jika bingung, bisa lihat tutorial berikut -> https://www.youtube.com/watch?v=F3QcgmCuEC0
  4. Jika sudah terinstall, masuk ke halaman Login
    http://localhost/bwapp/login.php

4. Kemudian login dengan Login : bee, Password : bug

5. Untuk serangan HTML terbagi menjadi beberapa serangan, kita coba satu – persatu. Sekarang kita coba HTML Injection – Reflected (GET) kemudian pilih Hack

6. Lalu isi form seperti gambar di bawah, klik Go

7. Sekarang kita coba HTML Injection – Reflected (POST), kemudian pilih Hack

8. Kemudian isi form seperti gambar di bawah, klik Go

9. Sekarang kita coba HTML Injection – Stored (Blog), kemudian pilih Hack

10. Kemudian isi form seperti gambar di bawah, klik Submit

11. Lakukan cara no 9, akan muncul pop up baru

B. Solution

  1. Untuk mengatasi serangan HTML Injection – Reflected , buatlah fungsi seperti gambar dibawah
0

Sistem Informasi Penjualan menggunakan PHP Native dan Admin LTE ( Part 2 )

Posted by:

47. Kemudian kita tambahkan tombol plus untuk mengarahkan ke form add

48. pada bagian view/category/index.php tambahkan code ini

49. sekarang buat file show.php dalam folder view/category, lalu masukkan code berikut

<div class="row">
    <div class="col-12">
        <div class="card">
            <div class="card-header">
                <h3 class="card-title">Detail Category</h3>
            </div>
            <div class="card-body">
                <?php $data=$_SESSION['data']; ?>
                <?php $category=$data->fetch(PDO::FETCH_OBJ); ?>
                <div class="form-group">
                    <label for="name">Category</label>
                    <input id="name" type="text" value="<?php echo $category->name ?>" class="form-control" disabled />
                </div>
                <div class="form-group">
                    <label for="status">Status</label>
                    <input id="status" type="text" value="<?php echo $category->status ?>" class="form-control" disabled />
                </div>
            </div>
        </div>
    </div>
</div>

50. Tambahkan method baru show di dalam Category.php

51. Tambahkan method baru show di dalam CategoryController.php

52. Pada fungsi main_view , tambahkan code dibawah

53. pada index.php tambahkan code dibawah

54. pada view/category/index.php ubah code seperti gambar di bawah

55. Sekarang coba klik gambar mata untuk melihat detail data

56. kemudian kita buat file edit.php dalam folder view/category/ . masukkan code berikut.

    <div class="row">
        <div class="col-12">
            <form method="POST" action="?category/update">
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">Update Category</h3>
                    </div>
                    <div class="card-body">
                        <?php $data=$_SESSION['data']; ?>
                        <?php $category=$data->fetch(PDO::FETCH_OBJ); ?>
                        <input type="hidden" name="id" value="<?php echo $category->id ?>">
                        <div class="form-group">
                            <label for="name">Category</label>
                            <input type="text" name="name" value="<?php echo $category->name ?>" class="form-control" placeholder="Enter category" />
                        </div>
                        <div class="form-group">
                            <label for="status">Status</label>
                            <select name="status" class="form-control">
                               <option value="active "<?php 
                               if($category->status=="active")
                                  echo"selected";
                               else
                                  echo""; 
                                ?> 
                                >Active</option>
                              <option value="inactive "<?php 
                               if($category->status=="inactive")
                                  echo"selected";
                               else
                                  echo""; 
                                ?> 
                                >Inactive</option>

                        </select>
                    </div>
                </div>
                <div class="card-footer">
                    <a href="?category" class="btn btn-outline-info">Back</a>
                    <button type="submit" class="btn btn-primary pull-right">Update Category</button>
                </div>
            </div>
        </form>
    </div>
</div>

57. Tambahkan method baru edit di dalam CategoryController.php

58. Pada fungsi main_view , tambahkan code dibawah

59. Pada index.php

60. pada view/category/index.php ubah code seperti gambar di bawah

61. Sekarang klik simbol pensil, untuk menampilkan form ubah data

62. Tambahkan method baru update di dalam Category.php

63. Tambahkan method baru update di dalam CategoryController.php

64. pada index.php

65. Sekarang coba ubah data anda

66. Terakhir kita buat method untuk hapus, pada view/category/index.php ubah code seperti gambar di bawah

67. Tambahkan method baru delete di dalam Category.php

68. Tambahkan method baru delete di dalam CategoryController.php

69. pada index.php

70. arahkan url pada menu category di dalam sidebar.php

0

Sistem Informasi Penjualan menggunakan PHP Native dan Admin LTE ( Part 1 )

Posted by:

  1. Aktifkan xampp anda terlebih dahulu. Tekan tombol window               pada keyboard anda, lalu ketik xampp .

 

 

2. Klik Start pada Apache serta MySQL

3. Kemudian buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/dashboard/ pada link URL anda.

4. Kemudian buatlah sebuah folder dengan nama sip-native dalam directory htdocs anda , secara default ada di   C:\xampp2\htdocs  6. Sekarang kita download Admin LTE template di https://github.com/almasaeed2010/AdminLTE/releases . Scroll ke bawah, seperti gambar dibawah, lalu pilih Source code (zip) .

7. Setelah file berhasil di download, extract file tersebut.

8. Kemudian copy folder AdminLTE-3.0.0-alpha ke dalam folder C:\xampp2\htdocs\sip-native .  

 

9. Lalu rename folder AdminLTE-3.0.0-alpha menjadi lte.

10. Sekarang buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/sip-native/lte pada link URL anda.

11. tambahkan 3 folder baru  di dalam direktori C:\xampp2\htdocs\sip-native .

12. Sekarang buat sebuah file admin_view.php di dalam C:\xampp2\htdocs\sip-native\view , kemudian buatlah class dengan fungsi seperti gambar dibawah .

13. kemudian copy isi dari starter.html yang ada dalam folder lte ke dalam file admin_view.php didalam echo “<disini> “. buka link berikut https://pastebin.com/WuEUrRC2

14. Kemudian isikan code di bawah pada file index.php .

<!DOCTYPE html>
<!–
This is a starter template page. Use this page to start your new project from
scratch. This page gets rid of all links and provides the needed markup only.
–>
<html lang=”en”>
<head>
<meta charset=”utf-8″>
<meta name=”viewport” content=”width=device-width, initial-scale=1″>
<meta http-equiv=”x-ua-compatible” content=”ie=edge”>

<title>AdminLTE 3 | Starter</title>

<!– Font Awesome Icons –>
<link rel=”stylesheet” href=”lte/plugins/font-awesome/css/font-awesome.min.css”>
<!– Theme style –>
<link rel=”stylesheet” href=”lte/dist/css/adminlte.min.css”>
<!– Google Font: Source Sans Pro –>
<link href=”https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700″ rel=”stylesheet”>
</head>
<body class=”hold-transition sidebar-mini”>
<div class=”wrapper”>

<?php
include(“view/admin_view.php”);

$index=new admin_view();

$index->main_view();

?>

</div>
<!– ./wrapper –>

<!– REQUIRED SCRIPTS –>

<!– jQuery –>
<script src=”lte/plugins/jquery/jquery.min.js”></script>
<!– Bootstrap 4 –>
<script src=”lte/plugins/bootstrap/js/bootstrap.bundle.min.js”></script>
<!– AdminLTE App –>
<script src=”lte/dist/js/adminlte.min.js”></script>
</body>
</html>

15. Sekarang buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/sip-native/ pada link URL anda.

16. kemudian kita pisahkan header, footer, sidebar dengan cara membuat 3 file seperti gambar di bawah

17. sekarang pisahkan bagian header yang ada di fungsi main_view ( ) ke dalam file header.php . Cari tag <!– Navbar –>

18. Untuk memanggil file nya, gunakan include , lakukan cara yang sama untuk sidebar dan footer

19. Sekarang jadikan main content seperti gambar berikut

20. Kemudian buat menu seperti gambar berikut

21. Sekarang buatlah sebuah file dengan nama dashboard.php dalam folder view .kemudian isi kode di bawah ini

22. Sekarang kita coba panggil dashboard.php pada main_view, tambahkan parameter $page

23. Sekarang buatlah sebuah file dalam folder controller dengan nama DashboardController.php . Kemudian isi code seperti gambar di bawah

24. Lalu ubah code pada index.php seperti gambar di bawah.

25. Sekarang buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/sip-native/ pada link URL anda.

26. Arahkan url link pada dashborad menu anda , ke halaman index.

27. Okey, sekarang kita akan membuat database dengan nama sip_native

28 buatlah sebuah tabel dengan nama categories

29. sekarang kita buat file baru Category.php dalam folder Model

30. buatlah sebuah folder dengan nama category dalam view . Lalu, buat file dengan nama create.php.

31. Masukkan code berikut ke dalam create.php

 <div class="row">
        <div class="col-12">
            <form method="POST" action="">
                {{ csrf_field() }}
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">Add Category</h3>
                    </div>
                    <div class="card-body">
                        <div class="form-group">
                            <label for="name">Category</label>
                            <input type="text" name="name" class="form-control" placeholder="Enter category" />
                        </div>
                        <div class="form-group">
                            <label for="status">Status</label>
                            <select name="status" class="form-control">
                                <option value="active">Active</option>
                                <option value="inactive">Inactive</option>
                            </select>
                        </div>
                    </div>
                    <div class="card-footer">
                        <a href="/sip-native/category/create" class="btn btn-outline-info">Back</a>
                        <button type="submit" class="btn btn-primary pull-right">Add Category</button>
                    </div>
                </div>
            </form>
        </div>
</div>

32. Sekarang buat file CategoryController.php dalam folder controller

33. lalu tambahkan code ini dalam fungsi main_view

34. Selanjutnya ubah index.php

 

35. Sekarang buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/sip-native/?category/create pada link URL anda.

36. Pada Category.php , buat method store untuk menyimpan ke database

37. Pada CategoryController.php , buat method store untuk menyimpan ke database

<?php  
include("./view/admin_view.php");
include("./model/Category.php");

/**
 * 
 */
class CategoryController
{
	
	public function create()
	{
		# code...
		$page="category-create";
		$adminView=new admin_view();
		$adminView->main_view($page);
	}


	public function store($name,$status)
	{
		# code...
		$category=new Category();	
		$category->store($name,$status);		
		
	}

}

38. Tambahkan action pada create.php di folder category

39. ubah code pada index.php

40. sekarang coba input data menggunakan form create category, lalu cek di database anda.

41. Sekarang buatlah file index.php di dalam folder category , masukkan code berikut

<div class="row">
        <div class="col-12">
            <div class="card">
                <div class="card-header">
                    <h3 class="card-title">Categories</h3>
                </div>
                <div class="card-body">
                    <?php if (!empty($_SESSION['message'])) {
                        # code...
                     ?>
                    <div id="alert-msg" class="alert alert-success alert-dismissible">
                        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                        
                        <?php echo"".$_SESSION['message']; ?>
                    </div>
                    <?php  }?>

                    <table class="table table-bordered table-hover">
                        <thead>
                            <tr class="text-center">
                                <th>ID</th>
                                <th>Name</th>
                                <th>Status</th>
                                <th>Action</th>
                            </tr>
                        </thead>
                        <?php $data=$_SESSION['data']; ?>
                        <tbody>
                            <?php while ($category=$data->fetch(PDO::FETCH_OBJ)) { ?>
                            <tr>
                                <td class="text-center"><?php echo "".$category->id; ?></td>
                                <td><?php echo "".$category->name ?></td>
                                <td class="text-center"><?php echo "".ucfirst($category->status) ?></td>
                                <td class="text-center">
                                    <form method="POST" action="">
                                        <input type="hidden" name="_method" value="DELETE" />
                                        <div class="btn-group">
                                            <a class="btn btn-info" href=""><i class="fa fa-eye"></i></a>
                                            <a class="btn btn-success" href=""><i class="fa fa-pencil"></i></a>
                                            <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
                                        </div>
                                    </form>
                                </td>
                            </tr>
                            <?php } ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>

42. Tambahkan method baru all di dalam Category.php

43. Tambahkan method baru index di dalam CategoryController.php

44. Pada fungsi main_view , tambahkan code dibawah

45. pada index.php

46. Sekarang buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/sip-native/?category pada link URL anda.

 

0

Membuat Aplikasi CRUD Android dan IOS dengan SQLite pada IONIC 3

Posted by:

  1. pertama – tama, ketik pada cmd anda ionic start BookStoreApp blank

2. Input y

3. Input n

4. Apabila proses instalasi sudah selesai, masuk ke folder anda dengan mengetik cd BookStoreApp

5. Kemudian install plugin SQLite, ketik ionic cordova plugin add cordova-sqlite-storage

6. Apabila muncul error, kita perlu install cordova secara global seperti gambar di bawah

7. Ketik npm i -g cordova

8. Kemudian ketik npm install –save @ionic-native/sqlite@4

9. Kemudian buka folder project BookStoreApp menggunakan IDE anda, masuk ke dalam src/app/app.module.ts untuk import plugin SQLite. Tambahkan import { SQLite } from ‘@ionic-native/sqlite’; serta SQLite seperti gambar di bawah.

10. Lalu kita akan membuat provider untuk database, ketik ionic generate provider database

11. Ubah code yang ada dalam src/provider/database/database.ts. Masukkan code di bawah

import { Injectable } from '@angular/core';
import { SQLite, SQLiteObject } from '@ionic-native/sqlite';

@Injectable()
export class DatabaseProvider {
    db:SQLiteObject = null;

    constructor(private sqlite: SQLite) { }

    getOrGenerateDB() {
        // Generate DB adalah proses asynchronus, jadi bagusnya kita pakai promise
        // Walaupun prosesnya hanya sepersekian detik, tetap saja harus di tunggu.
        return new Promise((resolve, reject) => {
            if (this.db != null) {
                resolve(this.db)
            } else {
                this.sqlite.create({
                    name        : 'myDatabase.db',
                    location    : 'default'
                }).then((db: SQLiteObject) => {
                    this.db = db;
                    resolve(this.db)
                }).catch((e) => {
                    console.log(e);
                    reject(e);
                });
            }
        });
    }
   
    createTable() {
        this.getOrGenerateDB().then((db: SQLiteObject) => { 
            var sql = 'create table IF NOT EXISTS buku (' +
            'id INTEGER PRIMARY KEY AUTOINCREMENT, '+ 
            'judul VARCHAR(255), '+
            'penerbit VARCHAR(50), '+  
            'pengarang VARCHAR(50))';

            db.executeSql(sql, {})
                .then(() => console.log('tabel buku berhasil di create'))
                .catch(e => console.log(e));

            // db.executeSql('DELETE FROM buku', {})
            //     .then(() => console.log('tabel buku berhasil di delete'))
            //     .catch(e => console.log(e));

            // db.executeSql('INSERT INTO buku values (?, ?,?,?)', 
            //               [null, "judullll", "penerbittt", "ppengarang OKEOKE"])
            //     .then(() => console.log('tabel buku berhasil di tambah'))
            //     .catch(e => console.log(e));


            // Untuk create table lainnya bisa ditambahkan di sini
            // contoh
            // var sql = 'create Tabel 2 IF NOT EXISTS delivery_form (' +
            //     'number VARCHAR(255) PRIMARY KEY, '+ 
            //     'round_id VARCHAR(255), '+
            //     'state VARCHAR(50), '+  
            //     'has_returns INTEGER(2), '+  
            //     'has_annotations INTEGER(2))';
            // db.executeSql(sql, {})
            //     .then(() => console.log('delivery_form table has created'))
            //     .catch(e => console.log(e));
        })
    }

}

12. Ubah code yang ada dalam src/app/pages/home/home.ts. Masukkan code di bawah . Disini kita akan membuat fungsi untuk menampilkan semua data pada database.

import { Component, NgZone } from '@angular/core';
import { NavController } from 'ionic-angular';
import { SQLiteObject } from '@ionic-native/sqlite';

import { DatabaseProvider } from '../../providers/database/database';

@Component({
    selector: 'page-home',
    templateUrl: 'home.html'
})

export class HomePage {
    data:any=[];
    
    constructor(public navCtrl: NavController, public zone: NgZone,
                public db: DatabaseProvider) { }

    ionViewDidEnter() { 
        this.db.getOrGenerateDB().then((db: SQLiteObject) => { 
            db.executeSql('SELECT * FROM buku', {}).then(res => {
                this.data = [];
                this.zone.run(() => {
                    for (var i = 0; i < res.rows.length; i++) {
                        this.data.push({
                            id: res.rows.item(i).id,
                            judul: res.rows.item(i).judul
                        })
                    }
                })
            }).catch(e => console.log(e));
        });
    }

    edit(id) {
         this.navCtrl.push("BookformPage", {bookID: id})
    }

    add() {
        this.navCtrl.push("BookformPage")
    }

}

13. Ubah code yang ada dalam src/app/pages/home/home.html. Masukkan code di bawah . Disini kita akan membuat halaman untuk menampilkan semua data pada database.

<ion-header>
  <ion-navbar>
    <ion-title>
      Ionic CRUD SQLite
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
   <ion-scroll scrollY="true" direction="xy" style="height: 100vh;">
        <ion-list >
            <ion-item tappable *ngFor="let a of data; let index = index" (click)="edit(a.id)" >
                {{a.judul}} 
            </ion-item>
        </ion-list>
    </ion-scroll>
    <ion-fab bottom right>
      <button ion-fab (click) = "add()" >Add</button>
    </ion-fab>
</ion-content>

14. Sekarang kita akan membuat sebuah halaman input data buku, ketik ionic generate page bookform

15. Ubah code yang ada dalam src/app/pages/bookform/bookform.ts. Masukkan code di bawah . Disini kita akan membuat fungsi untuk tambah data, ubah, serta hapus.

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ToastController } from 'ionic-angular';
import { SQLiteObject } from '@ionic-native/sqlite';
import { DatabaseProvider } from '../../providers/database/database';


@IonicPage()
@Component({
    selector: 'page-bookform',
    templateUrl: 'bookform.html',
})
export class BookformPage {
    book: any = {
        judul: '',
        penerbit: '',
        pengarang: ''
    }
    title = '';
    bookID = '';
    toaster: any;

    constructor(public navCtrl: NavController, public navParams: NavParams, 
                public toastCtrl: ToastController, public db: DatabaseProvider) {
        this.title = 'Tambah Buku';
        this.bookID = navParams.get("bookID");
        if (this.bookID != null || this.bookID != undefined) {
            this.title = 'Edit Buku';
        }
        this.toaster = this.toastCtrl.create({
            duration: 3000,
            position: 'bottom'
        });
    }

    ionViewDidLoad() {
        if (this.bookID != '') {
            this.db.getOrGenerateDB().then((db: SQLiteObject) => { 
                db.executeSql('SELECT * FROM buku where id = ?', [this.bookID]).then(res => {
                    this.book = {
                        id: res.rows.item(0).id,
                        judul: res.rows.item(0).judul,
                        penerbit: res.rows.item(0).penerbit,
                        pengarang: res.rows.item(0).pengarang
                    }
                }).catch(e => console.log(e));
            });
        }
    }

    save() {
        if (this.book.judul == '' || this.book.penerbit == '' || this.book.pengarang == '') {
            this.toaster.setMessage('All fields are required');
            this.toaster.present();
        } else {
            // Jika edit
            if (this.bookID) {
                var sql = 'UPDATE buku SET judul=?, penerbit=?, pengarang=? where id = ?';
                var param = [this.book.judul, this.book.penerbit, this.book.pengarang, this.book.id];
            } else {
                console.log(this.book);
                param = [null, this.book.judul, this.book.penerbit, this.book.pengarang]
                sql = 'INSERT INTO buku values (?,?,?,?)';
            }

            this.db.getOrGenerateDB().then((db: SQLiteObject) => { 
                db.executeSql(sql, param).then(res => {
                    setTimeout(()=>{
                        this.navCtrl.pop();
                    }, 300) 
                }).catch(e => console.log(e));
            });
        }
    }

    deleteBook() {
        this.db.getOrGenerateDB().then((db: SQLiteObject) => { 
            db.executeSql('DELETE FROM buku where id = ?', [this.bookID]).then(res => {
                setTimeout(()=>{
                    this.navCtrl.pop();
                }, 300) 
            }).catch(e => console.log(e));
        });
    }
}

16 . Ubah code yang ada dalam src/app/pages/bookform/bookform.html Masukkan code di bawah . Disini kita akan membuat tampilan input data buku.

<ion-header>
    <ion-navbar>
     <ion-title> {{ title }} </ion-title>
    </ion-navbar>
</ion-header>

<ion-content padding>
    <ion-list>
        <ion-item>
            <ion-label floating>Judul</ion-label>
            <ion-input type="judul" [(ngModel)] = "book.judul" ></ion-input>
        </ion-item>
        <ion-item>
            <ion-label floating>Penerbit</ion-label>
            <ion-input type="penerbit" [(ngModel)] = "book.penerbit" ></ion-input>
        </ion-item>
        <ion-item>
            <ion-label floating>Pengarang</ion-label>
            <ion-input type="pengarang" [(ngModel)] = "book.pengarang" ></ion-input>
        </ion-item>
        <ion-item text-center>
            <button ion-button round style="min-width: 200px; padding: 10px 16px" (click) = "save()">Save</button>
            <br/>
            <button ion-button round style="min-width: 200px; padding: 10px 16px" (click) = "deleteBook()">Delete</button>
        </ion-item>
    </ion-list>
</ion-content>

17. Kemudian panggil fungsi createTable ( ) pada DatabaseProvider

18. Langkah terakhir dengan menambahkan satu parameter pada MyApp Constructor untuk mengaktifkan fungsi createTable ( ) pada DatabaseProvider

19. Sekarang bisa anda coba dengan emulator atau smartphone ,

0

Membuat Aplikasi Login Android dan IOS Dengan IONIC 3

Posted by:

  1. Pastikan anda sudah menginstall serta konfigurasi NPM serta Node.js.
  2. Pertama tama, ketik ionic start LoginApp

3. Pilih blank .

4. input y

5. input n

6. Apabila proses instalasi sudah selesai, masuk ke folder anda dengan mengetik cd LoginApp

7. Untuk mengecek apakah sudah berhasil, ketik ionic serve -ctl

8. Sekarang kita akan membuat 2 buah halaman yaitu login dan home dengan megetik ionic generate page login untuk halaman login, serta
ionic generate page home untuk halaman home.

9. Kemudian buka folder project LoginApp dengan IDE anda, pada tutorial ini menggunakan Visual Code.

10. Lalu masuk ke src/pages/login/login.html

11. Masukkan code berikut , ubah code aslinya yang ada pada gambar di atas

<ion-content padding>
    <ion-list text-center>
        <br>
        <H3> Welcome </H3>
        <br>
         <ion-item>
            <ion-label color="primary" >Username</ion-label>
            <ion-input type="email" [(ngModel)]="credentials.username" ></ion-input>
          </ion-item>
          <br>
          <ion-item>
            <ion-label color="primary" >Password</ion-label>
            <ion-input type="password" [(ngModel)]="credentials.password" ></ion-input>
        </ion-item>

        <br>
        <br>
        <button ion-button round center (click)="login()">Login</button>

        <br>
        <p  text-center tappable> Forget Password </p>
        <p  text-center tappable (click)="register()" > Don't have account? Register </p>
    </ion-list>
</ion-content>

12. Sekarang kita akan membuat Auth Provider untuk menangani login, ketik ionic generate provider auth

13. Lalu masuk ke src/providers/auth/auth.ts

14. Masukkan code berikut , ubah code aslinya yang ada pada gambar di atas

import { Injectable } from '@angular/core';

@Injectable()
export class AuthProvider {
 constructor() {
        // console.log("belum dipake");
    }

    public login(credentials) {
        return new Promise((resolve, reject) => {
         if (credentials.username == "" || credentials.password == "") {
          reject("Username / password harus diisi")
         } else if (credentials.username == "admin" && credentials.password=="admin") {
          localStorage.setItem("isLogin", "true");
          resolve("Berhasil Login")
         } else {
          reject("Username / password salah");
         }
        })
    }

    public logOut() {
        localStorage.setItem("isLogin", "false");
    }
}

15. Setelah login.html dan auth.ts diubah, sekarang kita akan mengubah
src/pages/login/login.ts

16. Masukkan code berikut , ubah code aslinya yang ada pada gambar di atas

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ToastController } from 'ionic-angular';
import { HomePage } from '../home/home';
// import auth provider
import { AuthProvider } from '../../providers/auth/auth';

@IonicPage()
@Component({
    selector: 'page-login',
    templateUrl: 'login.html',
})
export class LoginPage {
    credentials: any = {
        username: "",
        password: ""
    }

    constructor(public navCtrl: NavController, public navParams: NavParams,
        public auth: AuthProvider, public toastCtrl: ToastController) {}

    ionViewDidLoad() {
        //check apakah sudah dalam kondisi login?
        let status = localStorage.getItem("isLogin");
        if (status == "true") {
            this.navCtrl.setRoot(HomePage);
        }
    }

    login() {
        this.auth.login(this.credentials).then((resp) => {
            let toast = this.toastCtrl.create({
                message: "Berhasil",
                duration: 3000,
                position: 'bottom'
            });
            toast.present();
            this.navCtrl.setRoot(HomePage);
        }).catch((err) => {
            let toast = this.toastCtrl.create({
                message: err,
                duration: 2000,
                position: 'bottom'
            });
            toast.present();
        })
    }
}

17. Lalu masuk ke src/pages/home/home.html

18. Masukkan code berikut , ubah code aslinya yang ada pada gambar di atas

<ion-header>
  <ion-navbar>
    <ion-title>
      Ionic Blank
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  Selamat Datang
  <br>
   <br>
  <button ion-button round (click)="logout()">Logout</button>
</ion-content>

19. Kemudian masuk ke src/pages/home/home.ts

20. Masukkan code berikut , ubah code aslinya yang ada pada gambar di atas

import { AuthProvider } from './../../providers/auth/auth';
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

@Component({
    selector: 'page-home',
    templateUrl: 'home.html',
    providers: [AuthProvider]
})

export class HomePage {
    constructor(public navCtrl: NavController, public auth: AuthProvider) {

    }
    logout() {
        this.auth.logOut()
        this.navCtrl.setRoot("LoginPage")
    }
}

21. Sekarang buka cmd baru, lakukan cara di no 7

0

TUTORIAL 3 : Register dan Login Menggunakan Laravel

Posted by:

  1. Pada tutorial ini, melanjutkan dari tutorial sebelumnya
  2. Sebelum memulai, pastikan anda sudah mengaktifkan xampp terlebih dahulu
  3. Pertama – tama, kita buat tabel users menggunakan migration lewat cmd

4. Kemudian buka file create_users_table.php pada function up ( )

5. Sekarang kita proses

6. Coba anda cek di database

7. Kemudian untuk membuat fitur login dan register secara bersaman, kita cukup memerintahkan artisan untuk membuatnya

8. Sekarang coba buka di browser nya, masukkan http://localhost/LaraStore/public/

 

9. Buka file RegisterController.php lalu sesuaikan dengan gambar di bawah

10. Lalu klik menu REGISTER , kemudian isi data sesuai field

11. Apabila berhasil register, maka secara langsung akan di arahkan ke halaman Data Barang

12. Sekarang kita tambahkan tombol logout pada Header, buka file header.blade.php masukkan code baru dari baris 120 – 138 seperti gambar dibawah.

13. Buka file LoginController.php lalu sesuaikan dengan gambar di bawah

14. Terakhir, buka file ProductController.php, lalu tambahkan construct auth

0

TUTORIAL 2 : CRUD menggunakan Laravel

Posted by:

  1. Pertama-tama aktifkan xampp anda terlebih dahulu, ikuti langkah tutorial sebelumnya .
  2. Buka salah satu Web Browser Anda Google Chrome, Mozilla, dll. Lalu ketik http://localhost/dashboard/ pada link URL anda.

3. Jika sudah muncul tampilan seperti gambar di atas, klik phpMyAdmin.

4. Klik New.

5. Isikan nama tabel dengan lara_store . Lalu klik Create.

6. Kemudian buka file .env   di dalam folder LaraStore untuk pengaturan database, isi sesuai gambar di bawah

7. Sekarang, kita atur menu pada sidebar. Buka file sidebar.blade.php hapus baris code yg di block seperti gambar dibawah

8. Ubah baris code pada sidebar.blade.php  seperti gambar dibawah

9. Sekarang coba buka di browser nya, masukkan http://localhost/LaraStore/public/admin

10. Buatlah sebuah tabel dengan migration, menggunakan php artisan lewat cmd

11. Kemudian buka folder database/migrations/ cari file dengan akhiran create_products_table.php, masukkan code seperti gambar di bawah

12. Lalu hapus dua file paling atas dalam folder
database/migrations/

13. Gunakan perintah berikut untuk membuat tabel pada database

apabila muncul keterangan seperti ini, maka tabel berhasil dibuat

14. Sekarang kita buat model dari Product, masukkan perintah berikut

15. Buatlah sebuah folder dengan nama product

16. Install library tambahan untuk membuat form lebih mudah, masukkan perintah berikut

17. Sekarang kita atur dalam config/app.php tambahkan code berikut

code diatas berada dalam ‘providers’ =>

code diatas berada dalam ‘aliases’ =>

18. Buatlah sebuah file create.blade.php dalam folder product

19. Masukkan code berikut ke dalam file create.blade.php

@extends('admin/admin')
@section('content')
    <div class="row">
        <div class="col-12">
            {{ Form::open() }}
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">Tambah Barang</h3>
                    </div>
                    <div class="card-body">
                        @if(!empty($errors->all()))
                        <div class="alert alert-danger">
                            {{ Html::ul($errors->all())}}
                        </div>
                        @endif
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    {{ Form::label('name', 'Nama Barang') }}
                                    {{ Form::text('name', '', ['class'=>'form-control', 'placeholder'=>'Masukkan Nama Barang']) }}
                                </div>
                                <div class="form-group">
                                    {{ Form::label('price', 'Harga Barang') }}
                                    {{ Form::text('price', '', ['class'=>'form-control', 'placeholder'=>'Masukkan Harga Barang']) }}
                                </div>
                            </div>
                            <div class="col-md-6">
                                
                                <div class="form-group">
                                    {{ Form::label('condition', 'Kondisi Barang') }}
                                    {{ Form::select('condition', ['baru'=>'baru', 'bekas'=>'bekas'], null,
                                        ['class'=>'form-control']) }}        
                                </div>
                                <div class="form-group">
                                    {{ Form::label('image', 'Gambar Barang') }}
                                    {{ Form::file('imageFile', ['class'=>'form-control']) }}        
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-12">
                                {{ Form::label('description', 'Description') }}
                                {{ Form::textarea('description', '', ['class'=>'form-control', 'placeholder'=>'Enter description', 'rows'=>5]) }}
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <a href="{{ URL::to('admin') }}" class="btn btn-outline-info">Kembali</a>
                        {{ Form::submit('Proses', ['class' => 'btn btn-primary pull-right']) }}
                    </div>
                </div>
            <!-- </form> -->
            {{ Form::close() }}
        </div>
    </div>
@endsection

20. Sekarang kita buat Product controller , serta route Resource agar mempermudah penggunaan method.

21. Tambahkan Route::resource seperti gambar di bawah

22. Buka file ProductController.php tambahkan code dalam method create( ) seperti gambar dibawah

23. Sekarang coba buka di browser nya, masukkan http://localhost/LaraStore/public/admin/product/create

 


24. Tambahkan code berikut pada file create.blade.php

25. Aktifkan folder public untuk menyimpan gambar

26. Buka file ProductController.php tambahkan code seperti gambar di bawah

 

27. Buka file ProductController.php tambahkan code dalam method store( )

public function store(Request $request)
    {
        //
        $rules =[
            'name'=>'required',
            'price'=>'required|integer',
            'imageFile'=>'required|mimes:jpg,png,jpeg,JPG',
            'description'=>'required'
        ];

        $pesan=[
            'name.required'=>'Nama Barang Tidak Boleh Kosong',
            'price.required'=>'Harga Barang Tidak Boleh Kosong',
            'imageFile.required'=>'Gambar Tidak Boleh Kosong',
            'description.required'=>'Deskripsi Tidak Boleh Kosong'
        ];

        $validator=Validator::make(Input::all(),$rules,$pesan);

        //jika data ada yang kosong
        if ($validator->fails()) {

            //refresh halaman
            return Redirect::to('admin/product/create')
            ->withErrors($validator);

        }else{

            $image=$request->file('imageFile')->store('productImages','public');
            
            $product=new \App\Product;

            $product->name=Input::get('name');
            $product->condition=Input::get('condition');
            $product->description=Input::get('description');
            $product->price=Input::get('price');
            $product->image=$image;
            $product->save();

            Session::flash('message','Product Stored');

            return "Berhasil Input Barang";
        }
    }

28. Sekarang coba input data pada form tambah data, lihat apakah berhasil

29. Buatlah sebuah file index.blade.php dalam folder product

30. Masukkan code di bawah ini ke dalam index.blade.php

@extends('admin/admin')
@section('content')
<div class="row">
    <div class="col-12">
        <div class="card">
            <div class="card-header">
                <h3 class="card-title">Data Barang</h3>
                <div class="card-tools">
                 <a href="{{ URL::to('/admin/product/create')}}" class="btn btn-tool">
                     <i class="fa fa-plus"></i>
                       Add
                 </a>
             </div>
         </div>
         <div class="card-body">
            @if (Session::has('message'))
            <div id="alert-msg" class="alert alert-success alert-dismissible">
                <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
                {{ Session::get('message') }}
            </div>
            @endif
            <div class="row">
                <div class="col-md-12">
                    <table class="table table-bordered table-hover">
                        <thead>
                            <tr class="text-center">
                                <th>ID</th>
                                <th>Nama</th>
                                <th>Harga</th>
                                <th>Deskripsi</th>
                                <th>Kondisi</th>
                                <th>Gambar</th>
                                <th>Aksi</th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach($products as $product)
                            <tr>
                                <td class="text-center">{{ $product['id'] }}</td>
                                <td>{{ $product['name'] }}</td>
                                <td>Rp. {{ $product['price'] }}</td>
                                <td>{{ $product['description'] }}</td>
                                <td>{{ $product['condition'] }}</td>
                                <td class="text-center"><img src="{{ asset('storage/'.$product['image']) }}" width="100"/></td>
                                <td class="text-center">
                                    <form method="POST" action="{{ URL::to('/admin/product/'.$product['id']) }}">
                                        {{ csrf_field() }}
                                        <input type="hidden" name="_method" value="DELETE" />
                                        <div class="btn-group">
                                            <a class="btn btn-info" href="{{ URL::to('/admin/product/'.$product['id']) }}"><i class="fa fa-eye"></i></a>
                                            <a class="btn btn-success" href="{{ URL::to('/admin/product/'.$product['id'].'/edit') }}"><i class="fa fa-pencil"></i></a>
                                            <button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
                                        </div>
                                    </form>
                                </td>
                            </tr>
                            @endforeach
                        </tbody>
                    </table>


                </div>
            </div>
        </div>
    </div>
</div>
</div>

@endsection

31. Buka file ProductController.php tambahkan code dalam method index ( )

32. Sekarang coba buka di browser nya, masukkan http://localhost/LaraStore/public/admin/product/

 

33. Buka file ProductController.php ubah code dalam method store ( )

34. Buka file sidebar.blade.php ubah code seperti gambar di bawah

 

35. Sekarang kita akan menampilkan detail barang, buatlah sebuah file show.blade.php dalam folder product

36. Buka file show.blade.php tambahkan code di bawah

@extends('admin/admin')
@section('content')
    <div class="row">
        <div class="col-12">
            <div class="card">
                <div class="card-header">
                    <h3 class="card-title">Detail Barang</h3>
                </div>
                <div class="card-body">
                    <div class="row">
                        <div class="col-md-12">
                            <img src="{{ asset('storage/'.$product['image']) }}" 
                                height="200" width="100%"/>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-6">
                            
                            <div class="form-group">
                                <label for="name">Nama Barang</label>
                                <input id="name" type="text" value="{{ $product['name'] }}" class="form-control" disabled />
                            </div>
                            <div class="form-group">
                                <label for="price">Harga Barang</label>
                                <input id="price" type="text" value="{{ $product['price'] }}" class="form-control" disabled />
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="form-group">
                                <label for="status">Kondisi Barang</label>
                                <input id="status" type="text" value="{{ $product['condition'] }}" class="form-control" disabled />
                            </div>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <div class="form-group">
                                <label for="description">Description</label>
                                <input id="description" type="text" value="{{ $product['description'] }}" class="form-control" disabled />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection

37. Buka file ProductController.php tambahkan code dalam method show ( )

38. Klik simbol mata dalam kolom aksi pada salah satu data

39. Sekarang kita akan membuat form untuk edit data, buatlah sebuah file edit.blade.php dalam folder product

40. Buka file edit.blade.php tambahkan code di bawah

@extends('admin/admin')
@section('content')
<div class="row">
    <div class="col-12">
        {{ Form::model($product,['route'=>['product.update',$product['id']], 'files'=>true,'method'=>'PUT']) }}
        <div class="card">
            <div class="card-header">
                <h3 class="card-title">Ubah Data Barang</h3>
            </div>
            <div class="card-body">
                @if(!empty($errors->all()))
                <div class="alert alert-danger">
                    {{ Html::ul($errors->all())}}
                </div>
                @endif
                <div class="row">
                    <div class="col-md-12">
                        <img src="{{ asset('storage/'.$product['image'])}}" width="100%" height="200">
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            {{ Form::label('name', 'Nama Barang') }}
                            {{ Form::text('name', $product['name'], ['class'=>'form-control', 'placeholder'=>'Masukkan Nama Barang']) }}
                        </div>
                        <div class="form-group">
                            {{ Form::label('price', 'Harga Barang') }}
                            {{ Form::text('price', $product['price'], ['class'=>'form-control', 'placeholder'=>'Masukkan Harga Barang']) }}
                        </div>
                    </div>
                    <div class="col-md-6">
                        <div class="form-group">
                            {{ Form::label('condition', 'Kondisi Barang') }}
                            <select name="item_kind" class="form-control">
                                <option value="baru" {{ $product['condition']=='baru'?'selected':'' }}>Baru</option>
                                <option value="bekas" {{ $product['condition']=='bekas'?'selected':'' }}>Bekas</option>
                            </select>        
                        </div>
                        <div class="form-group">
                            {{ Form::hidden('imagePath',$product['image'])}}
                            {{ Form::label('image', 'Image') }}
                            {{ Form::file('imageFile', ['class'=>'form-control']) }}        
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-12">
                        {{ Form::label('description', 'Description') }}
                        {{ Form::textarea('description', $product['description'], ['class'=>'form-control', 'placeholder'=>'Enter description', 'rows'=>5]) }}
                    </div>
                </div>
            </div>
            <div class="card-footer">
                <a href="{{ URL::to('admin/product') }}" class="btn btn-outline-info">Back</a>
                {{ Form::submit('Proses', ['class' => 'btn btn-primary pull-right']) }}
            </div>
        </div>
        <!-- </form> -->
        {{ Form::close() }}
    </div>
</div>
@endsection

41. Buka file ProductController.php tambahkan code dalam method edit ( )

42. Klik simbol pensil pada kolom aksi

43. Buka file ProductController.php tambahkan code dalam method update ( )

public function update(Request $request, $id)
    {
        //
        $rules=[
            
            'name'=>'required',
            'price'=>'required|integer',
            'description'=>'required',
        ];

        $pesan=[
            'name.required'=>'Nama Tidak Boleh Kosong!!',
            'price.required'=>'Harga Tidak Boleh Kosong!!',
            'description.required'=>'Deskripsi Barang Tidak Boleh Kosong!!',
        ];


        $validator=Validator::make(Input::all(),$rules,$pesan);

        if ($validator->fails()) {
            return Redirect::to('admin/product/'.$id.'/edit')
            ->withErrors($validator);

        }else{

            $image="";

            if (!$request->file('imageFile')) {
                # code...
                $image=Input::get('imagePath');
            }else{
                $image=$request->file('imageFile')->store('productImages','public');                
            }

            $product=\App\Product::find($id);

            $product->name=Input::get('name');
            $product->condition=Input::get('condition');
            $product->price=Input::get('price');
            $product->description=Input::get('description');
            $product->image=$image;
            $product->save();

            Session::flash('message','Data Barang Berhasil Diubah');
            
            return Redirect::to('admin/product');
        }
    }

44. Sekarang coba anda ubah salah satu data barang

45. Terakhir kita aktifkan fungsi hapus, buka file ProductController.php tambahkan code dalam method delete ( )

46. Coba hapus salah satu data dengan klik simbol tong sampah



1
Page 1 of 2 12