Penyusun fathurrahmani
Part 2
Alat dan Bahan
1. Notebook/PC
2. Koneksi Internet
3. Kode Editor (Visual Studio Code)
4. Node JS v.13
5. NPM v.6
6. Ionic CLI v.5
7. XAMPP (Apache dan Mysql)
8. PHP v.5.4 atau lebih tinggi
9. Ionic Storage
10. Rxjs Compat
Proses Logout
1. Lakukan import terlebih dahulu pada file home.page.ts
2. Modifikasi constructor()
constructor(
private router: Router,
private toastctrl: ToastController,
private alertctrl: AlertController,
private loadingctrl: LoadingController,
private accessproviders: AccessProviders,
private navctrl: NavController,
private storage: Storage
) { }
3. Buat variabel
datastorage: any;
name: string;
4. Buat ionViewDidEnter
ionViewDidEnter() {
this.storage.get('storage_session').then((res) => {
console.log(res);
this.datastorage = res;
this.name = this.datastorage.fullname;
});
}
5. Cek data dari console.log apakah sudah mendapatkan data yang diinginkan. Pengecekan
dilakukan melalui console browser. Caranya tekan ctrl+shift+I kemudian pilih tab console,
hasilnya seperti gambar berikut:
6. Sekarang kita tampilkan data yang sudah didapatkan di halaman home serta menambahkan
tombol logout, dengan cara mengubah file home.page.html
<ion-header>
<ion-toolbar>
<ion-title>Hi, {{name}}</ion-title>
<ion-buttons slot="end">
<ion-button (click)="tryLogout()">
<ion-icon slot="icon-only" name="exit-outline"></ion-icon>
</ion-button>
</ion-buttons>
</ion-toolbar>
</ion-header>
7. Hasilnya
async tryLogout() {
this.storage.clear();
this.navctrl.navigateRoot('/login');
const toast = await this.toastctrl.create({
message: "Logout Berhasil",
duration: 1500
});
toast.present();
}
9. Jalankan aplikasi, klik tombol logout maka Anda akan diarahkan ke halaman login. Akses kembali
url http://localhost:8100/home maka Anda akan diarah ke halaman login.
CRUD
Read
Sumber : https://ionicframework.com/docs/api/fab
<ion-content>
<ion-fab vertical="bottom" horizontal="end" slot="fixed">
<ion-fab-button size="small" (click)="openCRUD('0')">
<ion-icon name="add"></ion-icon>
</ion-fab-button>
</ion-fab>
</ion-content>
openCRUD(a) {
this.router.navigate(['/crud/' + a]);
}
{
path: 'crud/:id',
loadChildren: () => import('./crud/crud.module').then(m => m.CrudPageModu
le)
},
5. Buat variabel
this.start = 0;
this.users = [];
this.loadUsers();
async loadUsers() {
return new Promise(resolve => {
let body = {
action: 'load_users',
start: this.start,
limit: this.limit
}
this.accessproviders.postData(body, 'api.php').subscribe((res: any) =>
{
for (let data of res.result) {
this.users.push(data);
}
resolve(true);
});
});
}
async doRefresh(event) {
const loading = await this.loadingctrl.create({
message: 'Tunggu Sebentar...',
});
await loading.present();
this.ionViewDidEnter();
event.target.complete();
loading.dismiss();
}
loadData() {
this.start += this.limit;
setTimeout(() => {
this.loadUsers().then(() => {
event.target.complete();
});
}, 500);
}
10. Modifikasi file backend, api.php, dengan menambahkan action untuk load_users
elseif ($postJSON['action']=='load_users'){
$data = array();
$query = mysqli_query($mysqli,"SELECT * FROM users ORDER BY userid DE
SC LIMIT $postJSON[start], $postJSON[limit]");
while ($row = mysqli_fetch_array($query)) {
$data[] = array(
'userid' => $row['userid'],
'fullname' => $row['fullname'],
'gender' => $row['gender'],
'datebirth' => $row['datebirth'],
'email' => $row['email']
);
}
if ($query) {
$result = json_encode(array('success' => true, 'result' => $data)
);
} else {
$result = json_encode(array('success' => false));
}
echo $result;
}
<ion-list>
<ion-item-sliding *ngFor="let user of users">
<ion-item>
<ion-label>{{user.fullname}}</ion-label>
</ion-item>
<ion-item-options side="end">
<ion-item-option (click)="openCRUD(user.userid)">Ubah</ion-item-option>
<ion-item-
option (click)="delData(user.userid)" color="danger">Hapus</ion-item-option>
</ion-item-options>
</ion-item-sliding>
</ion-list>
Sumber : https://ionicframework.com/docs/api/refresher
13. Kemudian ubah salah satu data melalui database, kemudian refresh dengan cara menarik layer
dari atas kebawah, maka daftar akan terupdate.
Kesimpulan
Selamat mencoba.