Meng-import file CSV ke dalam Node

Submitted by ardi on Tue, 21/02/2017 - 15:49
Import CSV ke Drupal 8

Dalam tutorial kali ini saya akan membahas bagaimana cara nya meng-import file CSV (comma-separated value) ke dalam suatu node type.

Tutorial ini sebetulnya sudah ada di drupal.org yaitu di sini. Namun bagi yang mengalami kesulitan dalam memahami tutorial tersebut saya akan mencoba membuat versi gampang nya yang di harapkan dapat mudah di mengerti bagi semua kalangan.

Hal-hal yang perlu di perhatikan sebelum mengikuti tutorial ini adalah:

  • Penulis (yaitu saya) ber-asumsi bahwa Drupal 8 HARUS sudah terinstalasi dengan benar di server/mesin lokal anda, dan sudah mengerti dasar dari Drupal web-builder. Untuk informasi lebih lanjut mengenai instalasi Drupal 8 bisa di lihat disini.
  • Penulis (yaitu saya) ber-asumsi bahwa drush HARUS sudah ter-instalasi dengan benar di server/mesin lokal anda, dan jika anda bisa menjalankan perintah drush berarti anda mempunyai akses ke server/mesin lokal anda melalui Terminal (atau yang biasa di sebut CLI: Common Line Interface), biasa nya ini terdapat di Linux atau MacOSX. Untuk informasi lebih lanjut mengenai instalasi drush bisa di lihat disini.

 

Mari kita langsung saja ke tutorial nya.
Misalkan anda mempunyai format CSV seperti berikut ini:

Dan data-data dari file CSV tersebut akan di import ke dalam node type yang bernama Kode Pos.

 

Di bawah ini adalah langkah-langkah secara singkat dengan masing-masing detail yang akan di bahas di bagian selanjutnya:

1. Letakkan file CSV di dalam server/mesin lokal anda yang bisa di akses oleh Drupal 8.
2. Buat Content type dengan nama Kode Pos, berikut dengan field-field yang di perlukan.
3. Lakukan instalasi modul-modul berikut ini lalu aktifkan: Migrate Source CSV dan Migrate Tools.
4. Import kode konfigurasi dengan format *.yml di bagian Configuration synchronization.
5. Jalankan perintah drush untuk mulai meng-import.

 

Langkah 1

Letakkan file CSV di server/mesin lokal anda. Biasa nya di letakkan di direktori home, contoh:


/Users/ardnet/kode_pos.csv 

atau 


~/kode_pos.csv

Langkah 2

Buat Content type baru dengan nama Kode Pos melalui halaman administrator Drupal 8 dengan langkah sebagai berikut:

  1. Klik StructureContent types → Add content type
  2. Lalu ikuti konfigurasi selanjutnya seperti screenshot di bawah ini.

Content type baru bernama Kode Pos
Screenshot 1: Content type baru bernama Kode Pos

    3. Lalu tambahkan field-field yang sesuai dengan kolom yang terdapat di file CSV sebagai berikut:

  • Field type: Text (plain), Label: Kabupaten
  • Field type: Text (plain), Label: Kecamatan
  • Field type: Text (plain), Label: Kelurahan

Content type Kode Pos dengan field-field nya
Screenshot 2: Content type Kode Pos dengan field-field nya

Untuk informasi lebih lengkap bagaimana menambah Content type baru di Drupal 8, silahkan lihatdisini.

 

Langkah 3

Download dan instal modul-modul di bawah ini melalui halaman administrator Drupal 8 dengan menuju ke bagian Extend

Instalasi modul-modul yang di butuhkan
Screenshot 3: Instalasi modul-modul yang di butuhkan

Untuk informasi lebih lanjut bagaimana meng-instalasi modul di Drupal 8, silahkan lihat disini.

Langkah 4

Setelah itu, import kode konfigurasi dengan format *.yml seperti di bawah ini ke dalam Configuration synchronization yang terdapat di halaman administrator Drupal 8.

Langkah-langkah nya adalah sebagai berikut:

  1. Klik Configuration → Configuration synchronization → Import → Single Item
  2. Pilih Migration di bagian Configuration type
  3. Copy-paste kode konfigurasi *.yml di atas ke dalam Paste your configuration here.
  4. Klik tombol Import 

Sedikit penjelasan mengenai kode konfigurasi *.yml tersebut adalah:

  • Baris 1: menyatakan tipe dari kode konfigurasi tersebut adalah suatu Content type.
  • Baris 2: id dari konfigurasi ini. Bagian ini bisa bebas dinamakan apa saja asalkan jelas sesuai tujuan.
  • Baris 3: nama label dari konfigurasi ini. Bagian ini bisa bebas dinamakan apa saja asalkan jelas sesuai tujuan.
  • Baris 5: merupakan bagian dari source (baris 4)disini menyatakan bahwa plugin yang di gunakan adalah CSV.
  • Baris 6: merupakan bagian dari source (baris 4)disini menyatakan path dari CSV file yang akan di gunakan.
  • Baris 7merupakan bagian dari source (baris 4)disini bahwa row yang akan di skip adalah row yang pertama, karena row pertama dari file CSV tersebut adalah header.
  • Baris 8: merupakan bagian dari source (baris 4)disini menyatakan keys yang bernilai unique yaitu mengacu kepada row bernama KodePos yang terdapat di file CSV.
  • Baris 10-17: masing-masing key tersebut merepresentasikan pemetaan dari tiap-tiap field yang berada di Content type Kode Pos dengan field-field yang berada di file CSV. Khusus untuk key yang bernama type, ini akan di isi dengan value bernama kode_pos yaitu nama mesin (machine name) dari Content type Kode Pos.
  • Baris 18-19: menyatakan ini akan di import ke dalam jenis entity yang bernama node.

Halaman Configuration synchronization
Screenshot 4: Halaman Configuration synchronization 

Langkah 5

Setelah semua langkah-langkah sebelum nya sudah di lakukan, jalankan perintah drush di bawah ini:


drush migrate-import import_kodepos

Tunggu hingga proses selesai. Lama nya proses tergantung dari jumlah data yang akan di import.

Begitulah cara yang paling sederhana meng-import data dari file CSV ke Drupal 8, yaitu ke dalam node melalui Content type bernama Kode Pos

Mudah-mudahan tutorial ini dapat memberi anda gambaran bagaimana cara nya meng-import data dari sumber lain ke dalam Drupal 8. 

Jika ada beberapa hal yang kurang sesuai dan juga pertanyaan-pertanyaan lebih lanjut mengenai tutorial ini, silahkan beri komentar di bawah ini, saya akan dengan senang hati menjawab dan berdiskusi.

Semoga bermanfaat.
Terima kasih.

++Ardi++