Lewati ke isi
Sabtu, 7 November 2026 Tutorial & berita teknologi Tentang Kontak
Komputerkampus.com
Tutorial Android & React Native Basic React Native · Bab 26 dari 30

Basic React Native Part 26 - React Native Section List

PadaPart 25 [/basic-react-native-part-25-react-native-flatlist/]kita telah belajar dan mengenal Flatlist jadi jika anda belum mengikuti tutorial Part 25 [/basic-react-native-part-25-react-native-flatlist/] diharapkan anda mengikuti tutorial…

Daftar isi 5 bagian
  1. Mengimplementasikan Pada Project React Native
  2. Buat Project React Native
  3. Install Aplikasi Debug Ke Handphone Android
  4. Buka File App.js Dengan Visual Studio Code
  5. Menghapus Code Default App.js

Pada  Part 25 kita telah belajar dan mengenal Flatlist jadi jika anda belum mengikuti tutorial Part 25 diharapkan anda mengikuti tutorial Part 25 terlebih dahulu. Pada Tutorial Part 26 ini kita mengenal terlebih dahulu Basic React Native Section List.

Section List adalah daftar bagian dan judul. Section List adalah antara komponen-komponen sederhana namun banyak digunakan. contoh ini akan sangat membantu bagi Anda untuk memahami bagaimana menggunakan daftar bagian dalam React Native.

Mengimplementasikan Pada Project React Native

Buat Project React Native

Pada Tutorial Part 2 kita telah menginstall react-native-cli kemudian kita telah belajar cara membuat project baru react native. Berikut perintah cara untuk membuat project baru react native.

react-native init namafolderproject

Buat Project Baru

Install Aplikasi Debug Ke Handphone Android

Pada Tutorial Part 4 kita telah belajar cara menginstall Aplikasi Debug ke Handphone Android, untuk tata cara yang lebih jelas bisa langsung pelajari lagi pada Tutorial Part 4 terlebih dahulu. Secara singkat perintahnya seperti berikut.

react-native run-android

Install Aplikasi Debug Ke Handphone Android

Buka File App.js Dengan Visual Studio Code

Secara default pada file App.js memiliki code yang cukup dan menghasilkan tampilkan seperti berikut ini

import React from 'react';
import {
  SafeAreaView,
  StyleSheet,
  ScrollView,
  View,
  Text,
  StatusBar,
} from 'react-native';

import {
  Header,
  LearnMoreLinks,
  Colors,
  DebugInstructions,
  ReloadInstructions,
} from 'react-native/Libraries/NewAppScreen';

const App: () => React$Node = () => {
  return (
    <>
      <StatusBar barStyle="dark-content" />
      <SafeAreaView>
        <ScrollView
          contentInsetAdjustmentBehavior="automatic"
          style={styles.scrollView}>
          <Header />
          {global.HermesInternal == null ? null : (
            <View style={styles.engine}>
              <Text style={styles.footer}>Engine: Hermes</Text>
            </View>
          )}
          <View style={styles.body}>
            <View style={styles.sectionContainer}>
              <Text style={styles.sectionTitle}>Step One</Text>
              <Text style={styles.sectionDescription}>
                Edit <Text style={styles.highlight}>App.js</Text> to change this
                screen and then come back to see your edits.
              </Text>
            </View>
            <View style={styles.sectionContainer}>
              <Text style={styles.sectionTitle}>See Your Changes</Text>
              <Text style={styles.sectionDescription}>
                <ReloadInstructions />
              </Text>
            </View>
            <View style={styles.sectionContainer}>
              <Text style={styles.sectionTitle}>Debug</Text>
              <Text style={styles.sectionDescription}>
                <DebugInstructions />
              </Text>
            </View>
            <View style={styles.sectionContainer}>
              <Text style={styles.sectionTitle}>Learn More</Text>
              <Text style={styles.sectionDescription}>
                Read the docs to discover what to do next:
              </Text>
            </View>
            <LearnMoreLinks />
          </View>
        </ScrollView>
      </SafeAreaView>
    </>
  );
};

const styles = StyleSheet.create({
  scrollView: {
    backgroundColor: Colors.lighter,
  },
  engine: {
    position: 'absolute',
    right: 0,
  },
  body: {
    backgroundColor: Colors.white,
  },
  sectionContainer: {
    marginTop: 32,
    paddingHorizontal: 24,
  },
  sectionTitle: {
    fontSize: 24,
    fontWeight: '600',
    color: Colors.black,
  },
  sectionDescription: {
    marginTop: 8,
    fontSize: 18,
    fontWeight: '400',
    color: Colors.dark,
  },
  highlight: {
    fontWeight: '700',
  },
  footer: {
    color: Colors.dark,
    fontSize: 12,
    fontWeight: '600',
    padding: 4,
    paddingRight: 12,
    textAlign: 'right',
  },
});

export default App;

Code Default App.js

Tampilan Default File App.js

Tampilan Default File App.js

Menghapus Code Default App.js

Untuk memudahkan memahami component Section List kita hapus semua code dafault App.js. Setelah semua code default App.js dihapus maka ikuti langkah - langkah berikut ini.

  • Import React
import React, { Component } from 'react'

import react

  • Import Component React Native Untuk Project React Native dari React Native
import { StyleSheet , View , SectionList , Text , Platform , Alert} from 'react-native';

Import Component

  • Membuat Class Componet
class App extends Component {
  render() { 
    return (  );
  }
}
 

Membuat Class

  • Kemudian tambahkan code berikut ini diatas render
//Tambahkan code ini diatas render
GetSectionListItem = item => {
    Alert.alert(item);
  };
  FlatListItemSeparator = () => {
    return (
      <View style={{height: 0.5, width: '100%', backgroundColor: '#C8C8C8'}}/>
    );
  };

Code Diatas Render

  • Kemudian code diatas return
var A = [{'id':'1','value':'Afghanistan'}, {'id':'2','value':'Afghanistan'},
             {'id':'3','value':'Afghanistan'}];
    var B = [{'id':'4','value':'Benin'}, {'id':'5','value':'Bhutan'}, 
             {'id':'6','value':'Bosnia'}, {'id':'7','value':'Botswana'}, 
             {'id':'8','value':'Brazil'}, {'id':'9','value':'Brunei'}, 
             {'id':'10','value':'Bulgaria'},];
    var C = [{'id':'11','value':'Cambodia'}, {'id':'12','value':'Cameroon'}, 
             {'id':'13','value':'Canada'}, {'id':'14','value':'Cabo'}];

Code diatas Return

  • Kemudian tambahan code berikut ini didalam return.
return (
    //Code return
      <View style={{ marginTop: Platform.OS == 'ios' ? 20 : 30 }}>
        <SectionList
          ItemSeparatorComponent={this.FlatListItemSeparator}
          sections={[
            { title: 'Section Head For Data A', data: A },
            { title: 'Section Head For Data B', data: B },
            { title: 'Section Head For Data C', data: C },
          ]}
          renderSectionHeader={({ section }) => (
            <Text style={styles.SectionHeaderStyle}> {section.title} </Text>
          )}
          renderItem={({ item }) => (
            <Text
              style={styles.SectionListItemStyle}
              onPress={this.GetSectionListItem.bind(this, 
                     'Id: '+item.id+' Name: '+item.value)}>
              {item.value}
            </Text>
          )}
          keyExtractor={(item, index) => index}
        />
      </View>

Tambahkan code pada return

  • Tambahkan Style sebelum export default
//Buat Style

const styles = StyleSheet.create({
  SectionHeaderStyle: {
    backgroundColor: '#CDDC89',
    fontSize: 20,
    padding: 5,
    color: '#fff',
  },
  SectionListItemStyle: {
    fontSize: 15,
    padding: 15,
    color: '#000',
    backgroundColor: '#F5F5F5',
  },
});
  • Setelah itu export class App.
export default App

export class

  • Berikut Code lengkap nya
import React, { Component } from 'react';
import { StyleSheet , View , SectionList , Text , Platform , Alert} from 'react-native';
 
class App extends Component {
  GetSectionListItem = item => {
    Alert.alert(item);
  };
  FlatListItemSeparator = () => {
    return (
      <View style={{height: 0.5, width: '100%', backgroundColor: '#C8C8C8'}}/>
    );
  };
  render() {
    var A = [{'id':'1','value':'Afghanistan'}, {'id':'2','value':'Afghanistan'},
             {'id':'3','value':'Afghanistan'}];
    var B = [{'id':'4','value':'Benin'}, {'id':'5','value':'Bhutan'}, 
             {'id':'6','value':'Bosnia'}, {'id':'7','value':'Botswana'}, 
             {'id':'8','value':'Brazil'}, {'id':'9','value':'Brunei'}, 
             {'id':'10','value':'Bulgaria'},];
    var C = [{'id':'11','value':'Cambodia'}, {'id':'12','value':'Cameroon'}, 
             {'id':'13','value':'Canada'}, {'id':'14','value':'Cabo'}];
    return (
      <View style={{ marginTop: Platform.OS == 'ios' ? 20 : 30 }}>
        <SectionList
          ItemSeparatorComponent={this.FlatListItemSeparator}
          sections={[
            { title: 'Section Head For Data A', data: A },
            { title: 'Section Head For Data B', data: B },
            { title: 'Section Head For Data C', data: C },
          ]}
          renderSectionHeader={({ section }) => (
            <Text style={styles.SectionHeaderStyle}> {section.title} </Text>
          )}
          renderItem={({ item }) => (
            <Text
              style={styles.SectionListItemStyle}
              onPress={this.GetSectionListItem.bind(this, 
                     'Id: '+item.id+' Name: '+item.value)}>
              {item.value}
            </Text>
          )}
          keyExtractor={(item, index) => index}
        />
      </View>
    );
  }
}
 
const styles = StyleSheet.create({
  SectionHeaderStyle: {
    backgroundColor: '#CDDC89',
    fontSize: 20,
    padding: 5,
    color: '#fff',
  },
  SectionListItemStyle: {
    fontSize: 15,
    padding: 15,
    color: '#000',
    backgroundColor: '#F5F5F5',
  },
});
export default App

Code Lengkap

  • Tampilan Section List

Tampilan Flatlist

Tampilan Section List

Demikianlah pembahasan Tutorial Part 26 ini akan kita lanjutkan pada Tutorial Part 27.


Catatan: tulisan ini dipindahkan dari cloudborneo.com, terbit pertama 20 Januari 2020.

Bagikan WhatsApp Telegram X

Tentang penulis

Wandi Pratama
Wandi Pratama

Saya seorang Developer Mobile menggunakan Framework React Native dan saya juga memiliki pengalaman dibidang SYS Admin. Jasa menerima jasa pembuatan aplikasi dan website https://pindahdigital.com

Tulisan lainnya

Terkait