TI0074-Prak. Pengembangan Aplikasi Mobil-Modul 03
TI0074-Prak. Pengembangan Aplikasi Mobil-Modul 03
Suminar Ariwibowo
Course Version: 2018 V 1.0
Information Systems Program, Copyright ©2018
Suminar Ariwibowo Information Systems Program Lab. Mobile Apps Development
COURSE OVERVIEW
COURSE PREREQUISITES
Algoritma dan Pemrograman, Perancangan Web, Pengembangan Aplikasi Web
COURSE GOALS
Setelah mempelajari dan mempraktikkan mata kuliah ini, mahasiswa diharapkan mampu membangun
aplikasi mobil yang dapat dijalankan pada sistem operasi Android, dan IOS dengan memanfaatkan
React Native. Mahasiswa akan mempraktikkan project React Native dalam menghasilkan aplikasi
mobil yang akan dijalankan pada mobile device sesuai dengan masing-masing sistem operasi yang
telah disebutkan sebelumnya.
COURSE OBJECTIVES
Setelah mempelajari dan mempraktikkan mata kuliah ini, mahasiswa diharapkan mampu:
mempraktikkan konsep, struktur, dan metode dalam pengembangan aplikasi mobil
mempraktikkan cara kerja React Native ketika membangun aplikasi mobil
mempraktikkan interaksi dengan perangkat lunak yang telah terpasang pada kernel sistem operasi
mempraktikkan setiap perangkat keras yang tersedia pada kernel Android dengan memanfaatkan
plug-in yang dipasang pada project aplikasi mobil
membangun sebuah aplikasi mobil yang dapat dijalankan pada Android dengan memanfaatkan
React Native
mengembangkan aplikasi mobil seusai dengan kebutuhan bisnis
MODUL 3
INPUT & FUNCTION
MODULE OVERVIEW
Dalam pengembangan sebuah aplikasi dibutuhkan komponen-komponen untuk menampung masukkan
dari pengguna. Masukkan dari pengguna dapat berupa text, numerik, atau bentuk nilai yang lainnya.
Di React Native terdapat komponen untuk menampung input text, yaitu TextInput. Pada modul ini
kita akan membahas penggunaan TextInput beserta attribute-attributenya.
MODULE OBJECTIVES
Setelah mempelajari dan pempraktikkan Modul 3, mahasiswa diharapkan dapat :
Merancang antar-muka TextInput
Mampu memahami gesture, dan event input dari aplikasi mobile
Mampu mengimplementasikan event, dan gesture pada aplikasi mobile
TEXT INPUT
Komponen React untuk menampung masukkan teks dari pengguna. TextInput mendukung
penanganan masukkan teks, numerik, email, dll. TextInput adalah bagian dari library react-native.
LATIHAN 3.1
Berikut adalah contoh penggunaan hanya komponen TextInput di react native. Buatlah file baru di
project react native anda dengan nama src/ContohTextInput.js, dan buat kode seperti berikut :
render(){
return(
<View >
<TextInput
placeholder="Masukkan email anda" />
</View>
)
}
}
Untuk menampilkan ContohText diatas, modifikasilah file index.js anda seperti berikut :
Simpan, dan jalankan perintah di command prompt : react-native run-android untuk menjalankan
aplikasi di emulator/device. Hasil dari source diatas akan menampilkan komponen TextInput tanpa
style yang akan menghasilkan tampilan antar-muka TextInput yang polos.
LATIHAN 3.2
Berikut adalah contoh penggunaan style pada TextInput, dengan menambahkan beberapa property
stylesheet :
render(){
return(
<View style={styles.container}>
<TextInput
style={styles.input}
placeholder="Masukkan email anda"
placeholderTextColor="rgba(0,0,0,0.3)" />
</View>
)
}
}
placeholderTexColor adalah props di TextInput untuk merubah warna teks dari placeholder.
TextInput memiliki beberapa props yang dapat digunakan untuk memberikan pengalaman pengguna
yang lebih baik pada aplikasi mobile. Misalnya menentukan jenis dan event return key pada keyboard
device, dll.
LATIHAN 3.3
Berikut adalah contoh penggunaan returnKeyType untuk menentukan jenis return key yang akan
ditampilkan pada keyboard device. Tetapi props ini tidak menangani event, hanya memberikan
tampilan label saja. Modifikasilah file ContohTextInput.js yang sudah anda kerjakan sebelumnya,
dengan menambahkan props returnKeyType pada TextInput :
render(){
return(
<View style={styles.container}>
<TextInput
style={styles.input}
returnKeyType="next"
placeholder="Masukkan email anda"
placeholderTextColor="rgba(0,0,0,0.3)" />
</View>
)
}
}
Nilai dari returnKeyType yang dapat kita coba di TextInput adalah next, go, done, search, send,
emergency-call, dll.
LATIHAN 3.4
Berikut adalah contoh props onSubmitEditing, yang dapat digunakan untuk menjalankan function
tertentu ketika pengguna penekan return key atau enter setelah selesai masukkan di TextInput.
Seperti contoh berikut kita memiliki 2 TextInput dengan menambahkan onSubmitEditing di salah satu
input untuk memindahkan focus ke input yang lain.
render(){
return(
<View style={styles.container}>
<TextInput
style={styles.input}
returnKeyType="next"
placeholder="Masukkan email anda"
placeholderTextColor="rgba(0,0,0,0.3)"
onSubmitEditing={()=> this.inputPassword.focus()}
/>
<TextInput
style={styles.input}
returnKeyType="go"
placeholder="Masukkan password anda anda"
placeholderTextColor="rgba(0,0,0,0.3)"
ref={(input)=> this.inputPassword = input }
secureTextEntry
/>
</View>
)
}
}
Pada contoh diatas, terlihat ketika pengguna selesai mengetikkan di TextInput email dan menekan
return key atau enter, maka focus input akan berpindah ke TextIput password yang telah diberikan
variable ref (this.inputPassword). Sedangkan directive secureTextEntry adalah untuk
menyembunyikan nilai dari TextInput seperti input type=”password” pada tag HTML.
LATIHAN 3.5
Berikut adalah contoh penggunaan props keyboardType yang digunakan untuk menentukan jenis
keyboard yang muncul pada device mobile kita ketika fokus pada TextInput. Beberapa jenis keyboard
yang dapat kita gunakan adalah decimal-pad, numeric, email-address, phone-pad, url, twitter,
dll. Pada contoh ini kita akan menggunakan email-address pada TextIput email.
render(){
return(
<View style={styles.container}>
<TextInput
style={styles.input}
returnKeyType="next"
placeholder="Masukkan email anda"
placeholderTextColor="rgba(0,0,0,0.3)"
onSubmitEditing={()=> this.inputPassword.focus()}
keyboardType="email-address"
/>
<TextInput
style={styles.input}
returnKeyType="go"
placeholder="Masukkan password anda anda"
placeholderTextColor="rgba(0,0,0,0.3)"
ref={(input)=> this.inputPassword = input }
secureTextEntry
/>
</View>
)
}
}
LATIHAN 3.6
Berikut adalah contoh penggunaan state untuk mendapatkan nilai dari TextInput diatas, dengan
memanfaatkan props onChangeText. onChangeText adalah props event yang akan dijalankan ketika
terjadi perubahan nilai pada TextInput.
constructor(props){
super(props)
this.state = {
email : '',
password : ''
}
}
render(){
return(
<View style={styles.container}>
<TextInput
style={styles.input}
returnKeyType="next"
placeholder="Masukkan email anda"
placeholderTextColor="rgba(0,0,0,0.3)"
onSubmitEditing={()=> this.inputPassword.focus()}
keyboardType="email-address"
onChangeText={(value)=> this.setState({email : value})}
autoCapitalize="none"
/>
<TextInput
style={styles.input}
returnKeyType="go"
placeholder="Masukkan password anda anda"
placeholderTextColor="rgba(0,0,0,0.3)"
ref={(input)=> this.inputPassword = input }
secureTextEntry
onChangeText={(value)=> this.setState({password :
value})}
autoCapitalize="none"
/>
</View>
)
}
}
Props autoCapitalize=”none” dimaksudkan supaya ketika fokus ke TextInput dan keyboard tampil
di layar, maka capital lock tidak aktif. Ini dilakukan karena terkadang di beberapa device mobile
keyboard secara otomatis mengaktifkan capital lock.
TUGAS 3.1
Tambahkan lah komponen TouchableOpacity sebagai komponen button, dan TextInput tambahan
pada script yang sudah anda kerjakan, dan tambahkan lah stylesheet untuk memberikan style pada
komponen-komponen aplikasi anda.