Module 5
Module 5
BAB V
LIFECYCLE METHOD REACT
Silakan anda ganti value pada isian form diatas untuk mengganti judul dan sub judul pada header
applikasi.
2. HOOK
Sedangkan untuk lifecycle pada React Function Component (RFC) menggunakan HOOK. Konsep dari
HOOK ini jauh lebih simple dari React Class Component. Dengan menggunakan HOOK, state pada
komponen dapat diakses dengan fitur react lainnya.
Dalam penggunaan HOOK ada tiga hal yang perlu diperhatikan, yaitu:
a. Hook hanya dapat dipanggil di dalam komponen RFC.
b. Hook hanya dapat dipanggil pada level teratas dari sebuah komponen.
c. Hook tidak bisa berisi logika bersyarat
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
2.1. UseState
React useState Hook memungkinkan untuk negelola data pada state didalam komponen fungsi. State
pada umumnya mengacu ke data atau properti yang perlu ditracking dalam aplikasi. Untuk menggunakan
useState anda dapat menggunakan library dari react dengan cara mengimport
import { useState } from "react";
Berikut ini adalah contoh dari penggunaan HOOK namun dengan contoh kasus yang sama yaitu
mengubah header aplikasi untuk title dan subtitle:
Dari script diatas maka outputnya tidak jauh beda dengan gambar 1.1.
3. Operations
3.1. Selection
Pada contoh kali ini akan menggunakan tugas latihan praktikum sebelumnya, terdapat sebuah form Sign
In yang berisikan Email dan Password. Berikut ini adalah contoh tampilan komponen Sign In dari materi
sebelumnya:
Pada gambar diatas akan dibuat sebuah validasi dimana pembuatan validasi pada form tersebut akan
menggunakan operation statement, contoh kali ini akan menggunakan operation statement model IF
ELSE.
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
SignIn.js
import { View, Text, TextInput, StyleSheet, TouchableOpacity, Pressable} from
"react-native";
import React, { useState } from "react";
import FontAwesome5 from "react-native-vector-icons/FontAwesome5";
return (
<View style={styles.container}>
<View style={styles.frm_row}>
<Text style={styles.text_label}>Email </Text>
<TextInput
placeholder="[email protected]"
keyboardType="email-address"
autoCorrect={false}
autoCapitalize="none"
style={styles.text_input}
defaultValue={email}
onChangeText={(text) => setMail(text)}
/>
</View>
<View style={styles.frm_row}>
<Text style={styles.text_label}>Password</Text>
<View
style={{
...styles.text_input,
flexDirection: "row",
justifyContent: "space-between",
}}
>
<TextInput
secureTextEntry={true}
placeholder="Enter your password"
autoCorrect={false}
style={{...styles.text_input, borderWidth:0, padding:0, width:"90%"}}
defaultValue={password}
onChangeText={(text)=>setPassword(text)}
/>
<Pressable>
<FontAwesome5 name={"eye"} size={25} color="purple" />
</Pressable>
</View>
</View>
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
Script diatas merupakan contoh bentuk skema dari RFC Sign In pada gambar 3.1.1, script tersebut akan
dimodifikasi untuk membuat sebuah validasi, maka tahap pertama dari logika validasi ini ialah
melakukan proses operation statement terhadap nilai masukan email dan password. Berikut ini ialah
contoh tahapan untuk memberikan sebuah validasi sekaligus contoh penggunaan IF ELSE.
1. Membuat sebuah function untuk mengelola logika validasi email, function ES6 yang
akan dibuat untuk mengelola logika tersebut ialah handlerValidMail().
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
Lakukan perubahan script pada JSX TextInput email dengan mengubah nama tujuan
function yang lama menjadi handlerValidMail(…). Dan buatlah JSX untuk
menampilkan pesan error dari validasi email tersebut.
Maka output sementara dari seleksi kondisi pertama akan sebagai berikut:
3. Kondisi statement kedua kali ini akan mengecek apakah inputan email memiliki format
yang benar atau tidak. Untuk mengecek format expression pada JAVASCRIPT dapat
menggunakan Teknik REGEX.
Berdasarkan format expression REGEX yang dilihat dari
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions
Maka dapat expression kan untuk email menjadi:
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
4. Berdasarkan konsep data regex diatas maka dapat kita buat selection untuk mengecek
apakah nilai inputan email sudah benar atau tidak:
5. Contoh kasus kedua ialah penggunaan selection dalam bentuk SWITCH CASE.
Penggunaan selection bentuk kedua ini akan diimplementasikan untuk membuka dan
tutup value pada isian password. Logika kali ini akan disimpan dengan sebuah function
bernama handlerOpenPassword().
Logika untuk membuka dan menutup isian password ini akan mengambil triger ketika
mengklik icon EYE maka akan membuka isian password begitu sebaliknya.
Tambahkanlah function dibawah ini pada script RFC SignIn sebelumnya:
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
Dari aksi script diatas maka output sementara seperti berikut ini:
3.2. Repetition
Untuk tipe-tipe dari repetition sama halnya dengan beberapa Bahasa pemograman lainnya, yaitu
memiliki bentuk :
• Do{ statement }while( condition )
• While( condition ){ statement }
• For(condition){ statement }, dan
Dari ketiga bentuk repetition diatas, sama halnya dengan selection. Bentuk repetition tersebut tidak bisa
ditulis kedalam render JSX.
Untuk mengeksekusi perintak logika repetition disarankan membentuk function tersendiri dan mereturn
nilai balik dalam bentuk JSX.
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
Namun pada JAVASCRIPT ada 1 bentuk repetition yang dapat digunakan didalam JSX ataupun diluar
JSX, yaitu menggunakan map(). Berikut ini adalah contoh penggunaan repetition dalam bentuk FOR
dan map:
CardMenu.js
import { View, Text, StyleSheet } from "react-native";
import React from "react";
import FontAwesome5 from "react-native-vector-icons/FontAwesome5";
return (
<View>
<View style={{ flexDirection:"row", flexWrap:"wrap" }}>
{menuList.map((v, index) => (
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
MyCalendar.js
import { View, Text, StyleSheet } from "react-native";
import React from "react";
return day;
};
return (
<View style={styles.callendar_container}>
<FirstWeek />
</View>
);
};
Operator Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
> Lebih Besar
< Lebih Kecil
>= Lebih besar sama dengan
<= Lebih kecil sama dengan
Matakuliah/Code : Lab. Pemrograman Perangkat Bergerak / TIFA3P3
Dosen : Irvan Rizky Ariansyah / Thesya Marcella
IBIK Kelas : TI-21-PA
4. Latihan Praktikum
1. Buatlah package baru bernama praktikum-5.
2. Melanjutkan codingan pada contoh Gambar 3.1.5, buatlah sebuah validasi untuk password
dengan kondisi sebagai berikut:
a. Jika jumlah password kurang dari 3 maka menampilkan pesan “Type minimum 3
character”.
b. Jika kondisi value password memiliki bentuk isian berupa: huruf, angka, dan sysmbol
maka kondisi password dinyatakan lulus, namun jika tidak memenuhi kondisi ini
buatlah pesan kesalahan “Value must contain alphabet, number and symbol”
3. Jika soal nomor 2 sudah anda kerjakan buat lah sebuah event handler untuk mengeksekusi
kedua buah isian tersebut. Jika mengklik tombol SIGN IN maka akan mengeksekusi logika
untuk:
a. Jika Email yang dimasukan berisi [email protected]
b. Dan password yang dimasukan berisi BESTstudent_2023
Maka dinyatakan memenuhi kondisi transaksi, dan dapat di redirect ke halaman berikutnya.
Namun jika tidak memenuhi kondisi diatas maka menampilkan pesan kesalahan dalam
bentuk Pop Up “Email/Password is not match”.
Thesya Marcella Irvan Rizky Ariansyah Febri Damatraseta Fairuz, S.T., M.Kom
Penyusun I Penyusun II Dosen Kordinator