Cara Otomatis Update Harga & Stok TikTok Shop Tokopedia dengan Python

Halo Sobat, pernahkah merasa repot harus update harga dan stok produk satu per satu? Tenang, Sobat! Kali ini, kita akan berbagi cara cerdas untuk mengotomatiskan pembaruan data di TikTok Shop Tokopedia menggunakan Python.
Dengan panduan ini, Sobat bisa menghemat waktu dan mengurangi kesalahan manual. Yuk, simak langkah demi langkah-nya!

1. Persiapan Lingkungan Python

Pastikan Sobat sudah menginstal Python di komputer. Jika belum, Sobat bisa mendownload dan menginstalnya dari
python.org.
Setelah itu, Sobat perlu menginstal beberapa library seperti openpyxl untuk memanipulasi file Excel.
Jalankan perintah berikut di terminal atau command prompt:

pip install openpyxl

2. Menyiapkan File-File yang Dibutuhkan

Sobat harus menyiapkan dua file penting:

  • File Template Excel: Nama file dinamis berdasarkan tanggal, misalnya:
    Tiktoksellercenter_batchedit_20250325_sales_information_template.xlsx
    File ini berisi tiga kolom:

    • G: Harga
    • H: Stok
    • I: SKU (sebagai kunci)
  • File CSV Harga Baru: Misalnya, harga-baru.csv yang berisi kolom:
    • SKU
    • Harga Baru
    • Stok Baru

3. Menulis Script Python untuk Update Data

Berikut adalah script Python yang langsung mengupdate file Excel yang sudah ada berdasarkan data dari file CSV.
Script ini akan mulai mengupdate data dari baris ke-6, sehingga baris 1-5 tidak ikut terubah.

import openpyxl import csv from datetime import datetime # Ambil tanggal hari ini dalam format YYYYMMDD untuk nama file dinamis date_str = datetime.today().strftime('%Y%m%d') filename = f'Tiktoksellercenter_batchedit_{date_str}_sales_information_template.xlsx' # Baca file CSV dan buat mapping: SKU -> (Harga Baru, Stok Baru) harga_dict = {} with open('harga-baru.csv', newline='', encoding='utf-8') as csvfile:     reader = csv.DictReader(csvfile)     for row in reader:         sku = row['SKU']         harga_baru = row['Harga Baru']         stok_baru = row['Stok Baru']         harga_dict[sku] = (harga_baru, stok_baru) # Muat workbook Excel yang sudah ada wb = openpyxl.load_workbook(filename) ws = wb.active # Iterasi mulai dari baris ke-6 for row in ws.iter_rows(min_row=6):     # Kolom I adalah kolom ke-9 (indeks 8, karena indeks dimulai dari 0)     sku_cell = row[8]     sku = sku_cell.value     if sku in harga_dict:         harga_baru, stok_baru = harga_dict[sku]         # Kolom G (indeks 6) dan kolom H (indeks 7)         row[6].value = harga_baru  # Update Harga         row[7].value = stok_baru   # Update Stok # Simpan perubahan pada file yang sama wb.save(filename) print(f"Proses update selesai. File {filename} telah diperbarui secara langsung.")

4. Penjelasan Langkah Kerja Program

  1. Mengambil Tanggal Dinamis:Menggunakan modul datetime, script mendapatkan tanggal hari ini dalam format YYYYMMDD yang digunakan untuk menentukan nama file template yang aktif.
    Ini memastikan Sobat tidak perlu mengganti nama file setiap hari.
  2. Membaca File CSV:Dengan modul csv, file harga-baru.csv dibaca dan data SKU dipetakan ke dalam dictionary.
    Setiap SKU memiliki tuple berisi nilai Harga Baru dan Stok Baru.
  3. Memuat Workbook Excel:Menggunakan openpyxl, file Excel template dimuat berdasarkan nama dinamis.
    Worksheet aktif diambil untuk melakukan update data.
  4. Update Data dari Baris ke-6:Script mengiterasi dari baris ke-6 ke bawah. Pada setiap baris, nilai SKU di kolom I diambil dan dicocokkan dengan dictionary.
    Jika ditemukan kecocokan, nilai di kolom G (Harga) dan H (Stok) di-update dengan data baru dari CSV.
  5. Menyimpan Perubahan:Setelah semua baris di-update, workbook disimpan kembali dengan nama file yang sama, sehingga perubahan langsung diterapkan pada file asli.

Dengan mengikuti panduan ini, Sobat bisa mengotomatiskan proses update data harga dan stok di TikTok Shop Tokopedia dengan mudah.
Hanya dengan menyiapkan file template dan CSV, serta menjalankan script Python, data pada file Excel Sobat akan ter-update secara langsung tanpa perlu repot mengedit manual.

Semoga panduan ini bermanfaat dan memudahkan aktivitas bisnis online Sobat. Jangan lupa untuk share pengalaman dan bertanya di kolom komentar!

Selamat mencoba dan semoga sukses, Sobat.

Rclone: Cara Otomatis Backup File Linux Ubuntu Desktop & Server ke Google Drive

Halo Sobat, di era digital sekarang, kehilangan data bisa bikin repot dan susah banget dicari kembali. Makanya, backup otomatis jadi solusi jitu untuk melindungi file-file penting dari berbagai risiko. Bayangkan saja, semua dokumen, foto, dan video hasil kerja atau momen-momen berharga bisa hilang karena kesalahan kecil atau kerusakan hardware. Dengan backup otomatis, Sobat nggak perlu khawatir lagi karena data akan tersimpan dengan aman tanpa harus repot mengingat atau melakukannya secara manual .

Dalam panduan kali ini, saya bakal membimbing Sobat langkah demi langkah menggunakan rclone: tool ringan, fleksibel, dan open source, untuk mengatur backup otomatis file di Ubuntu, yang nantinya akan dikirim ke Google Drive. Google Drive sendiri menawarkan kapasitas penyimpanan yang oke dan kemudahan akses dari berbagai perangkat, sehingga sangat cocok untuk jaga data. Yuk, simak panduan lengkap ini agar data Sobat selalu aman, terkelola dengan baik, dan siap diakses kapan saja tanpa ribet.

1. Install rclone (Jika Belum)

Pertama, Sobat perlu memperbarui daftar paket dan menginstall rclone. Pastikan perintah dijalankan seperti contoh berikut:

riyanto@ubuntu-z400:~/Downloads$ sudo apt update riyanto@ubuntu-z400:~/Downloads$ sudo apt install rclone -y [sudo] password for linuxfun: Get:1 https://dl.google.com/linux/chrome/deb stable InRelease [1.825 B] Get:2 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1.215 B] Hit:3 http://us.archive.ubuntu.com/ubuntu jammy InRelease Get:4 http://us.archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Get:5 http://us.archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB] Hit:6 https://ppa.launchpadcontent.net/gerardpuig/ppa/ubuntu jammy InRelease Get:7 http://us.archive.ubuntu.com/ubuntu jammy-security InRelease [129 kB] Hit:8 https://ppa.launchpadcontent.net/kdenlive/kdenlive-stable/ubuntu jammy InRelease Get:9 https://esm.ubuntu.com/cis/ubuntu jammy InRelease [4.575 B] Hit:10 https://ppa.launchpadcontent.net/yannubuntu/boot-repair/ubuntu jammy InRelease Get:11 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 DEP-11 Metadata [103 kB] Get:12 https://esm.ubuntu.com/apps/ubuntu jammy-apps-security InRelease [7.583 B] Get:13 http://us.archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 DEP-11 Metadata [212 B] Get:14 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 DEP-11 Metadata [359 kB] Get:15 https://esm.ubuntu.com/apps/ubuntu jammy-apps-updates InRelease [7.456 B] Get:16 http://us.archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 DEP-11 Metadata [940 B] Get:17 http://us.archive.ubuntu.com/ubuntu jammy-backports/main amd64 DEP-11 Metadata [7.084 B] Get:18 http://us.archive.ubuntu.com/ubuntu jammy-backports/restricted amd64 DEP-11 Metadata [212 B] Get:19 http://us.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 DEP-11 Metadata [17,7 kB] Get:20 http://us.archive.ubuntu.com/ubuntu jammy-backports/multiverse amd64 DEP-11 Metadata [212 B] Get:21 http://us.archive.ubuntu.com/ubuntu jammy-security/main amd64 DEP-11 Metadata [43,0 kB] Get:22 http://us.archive.ubuntu.com/ubuntu jammy-security/restricted amd64 DEP-11 Metadata [208 B] Get:23 http://us.archive.ubuntu.com/ubuntu jammy-security/universe amd64 DEP-11 Metadata [125 kB] Get:24 https://esm.ubuntu.com/infra/ubuntu jammy-infra-security InRelease [7.450 B] Get:25 http://us.archive.ubuntu.com/ubuntu jammy-security/multiverse amd64 DEP-11 Metadata [208 B] Get:26 https://esm.ubuntu.com/infra/ubuntu jammy-infra-updates InRelease [7.449 B] Get:27 https://esm.ubuntu.com/apps/ubuntu jammy-apps-security/main amd64 Packages [239 kB] Get:28 https://esm.ubuntu.com/apps/ubuntu jammy-apps-security/main i386 Packages [133 kB] Fetched 1.452 kB in 5s (304 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 2 packages can be upgraded. Run 'apt list --upgradable' to see them. Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed:   rclone 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. Need to get 11,7 MB of archives. After this operation, 42,6 MB of additional disk space will be used. Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 rclone amd64 1.53.3-4ubuntu1.22.04.3 [11,7 MB] Fetched 11,7 MB in 11s (1.094 kB/s) Selecting previously unselected package rclone. (Reading database ... 299069 files and directories currently installed.) Preparing to unpack .../rclone_1.53.3-4ubuntu1.22.04.3_amd64.deb ... Unpacking rclone (1.53.3-4ubuntu1.22.04.3) ... Setting up rclone (1.53.3-4ubuntu1.22.04.3) ... Processing triggers for man-db (2.10.2-1) ... 

2. Cek Apakah rclone Sudah Terinstall

Sobat bisa mengecek versi rclone dengan menjalankan perintah berikut:

riyanto@ubuntu-z400:~/Downloads$ rclone version rclone v1.53.3-DEV - os/arch: linux/amd64 - go version: go1.18.1 

3. Konfigurasi Remote Google Drive

Jalankan perintah berikut untuk masuk ke mode konfigurasi rclone:

riyanto@ubuntu-z400:~/Downloads$ rclone config 2025/03/24 22:14:59 NOTICE: Config file "/home/linuxfun/.config/rclone/rclone.conf" not found - using defaults No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> 

Ketik n lalu tekan ENTER untuk membuat remote baru.

4. Masukkan Nama Remote

Masukkan nama remote yang mudah diingat, misalnya gdrive:

name> gdrive 

5. Pilih Google Drive sebagai Penyimpanan

Setelah memasukkan nama remote, Sobat akan melihat daftar penyimpanan cloud. Pilih Google Drive dengan mengetik nomor 13 (biasanya opsi Google Drive ada di nomor 13):

Type of storage to configure. Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value  1 / 1Fichier           \ "fichier"  2 / Alias for an existing remote \ "alias"  3 / Amazon Drive       \ "amazon cloud drive"  4 / Amazon S3 Compliant Storage Provider ... \ "s3"  5 / Backblaze B2       \ "b2"  6 / Box                \ "box"  7 / Cache a remote     \ "cache"  8 / Citrix Sharefile   \ "sharefile"  9 / Dropbox            \ "dropbox" 10 / Encrypt/Decrypt a remote \ "crypt" 11 / FTP Connection     \ "ftp" 12 / Google Cloud Storage (this is not Google Drive) \ "google cloud storage" 13 / Google Drive       \ "drive" 14 / Google Photos      \ "google photos" ... (opsi lainnya) Storage> 13 

6. Lewati Client ID & Secret

Jika Sobat tidak ingin membuat Client ID sendiri, cukup tekan ENTER untuk melewati kedua pertanyaan berikut:

Google Application Client Id Enter a string value. Press Enter for the default (""). client_id> [ENTER] Google Application Client Secret - leave blank normally. Enter a string value. Press Enter for the default (""). client_secret> [ENTER] 

7. Pilih Hak Akses (Scope)

Pilih hak akses penuh dengan mengetik nomor 1 lalu tekan ENTER:

Scope that rclone should use when requesting access from drive. Choose a number from below, or type in your own value  1 / Full access all files, excluding Application Data Folder. \ "drive"  2 / Read-only access to file metadata and file contents. \ "drive.readonly" ... scope> 1 

8. Lewati Root Folder & Service Account

Sobat dapat langsung tekan ENTER untuk melewati kedua opsi berikut:

Root Folder ID (leaving blank will use the root) root_folder_id> [ENTER] Service Account Credentials JSON file path (Leave blank normally) service_account_file> [ENTER] 

9. Autentikasi dengan Google

Pada langkah selanjutnya, Sobat akan ditanya apakah ingin menggunakan auto config. Ketik y lalu tekan ENTER. Browser akan terbuka untuk login ke akun Google dan memberikan izin akses:

Use auto config?  y) Yes (default)  n) No y/n> y 

Jika menggunakan server tanpa GUI, Sobat bisa menjalankan perintah rclone authorize "drive" di komputer lain yang memiliki browser.

10. Simpan Konfigurasi

Setelah autentikasi berhasil, rclone akan menampilkan konfigurasi remote seperti contoh berikut:

Remote config -------------------- [gdrive] type = drive scope = drive token = {"access_token":"yaUY82..."} -------------------- Keep this configuration?  y) Yes  n) No y/e/d> y 

Ketik y lalu tekan ENTER, dan ketik q untuk keluar dari konfigurasi.

11. Cek Koneksi Google Drive

Untuk memastikan Google Drive sudah terhubung, Sobat bisa menjalankan perintah berikut:

riyanto@ubuntu-z400:~/Downloads$ rclone listremotes gdrive: riyanto@ubuntu-z400:~/Downloads$ rclone lsd gdrive: 

Jika muncul daftar folder, berarti koneksi sudah berhasil.

12. Backup Otomatis Folder ~/data ke Google Drive

Untuk menguji upload manual, jalankan perintah berikut:

riyanto@ubuntu-z400:~/Downloads$ rclone sync ~/data gdrive:/Backup/data --progress 

Jika proses backup berjalan dengan sukses, Sobat dapat membuat cron job agar backup berjalan otomatis setiap hari pada jam 2 pagi.

Buka crontab dengan perintah:

riyanto@ubuntu-z400:~/Downloads$ crontab -e 

Tambahkan baris berikut ke file crontab:

0 2 * * * /usr/bin/rclone sync ~/data gdrive:/Backup/data --log-file=/var/log/rclone.log 

Untuk memantau log backup, Sobat dapat menjalankan:

riyanto@ubuntu-z400:~/Downloads$ tail -f /var/log/rclone.log 

Sekarang, backup otomatis ke Google Drive sudah aktif.

Membuat Kolom Read-Only di MySQL / MariaBD dan Contoh Tabel WordPress

Halo Sobat Pada kesempatan kali ini, saya akan membahas bagaimana cara membuat kolom read-only di MySQL dan memberikan contoh tabel pada WordPress. Topik ini sangat berguna bagi Anda yang ingin menjaga integritas data dalam database. Mari kita mulai!

Versi MySQL dan MariaDB yang Didukung

Metode yang kita bahas di sini kompatibel dengan versi berikut:

  • Trigger telah didukung sejak MySQL 5.0 dan MariaDB 5.3.
  • Hak akses kolom (granular privileges) tersedia sejak MySQL 5.6 dan MariaDB 10.0.
  • MariaDB 10.5 memperkenalkan perubahan izin dan fitur baru dalam mesin penyimpanan.
  • MariaDB 10.9 menambahkan fungsi JSON_OVERLAPS untuk operasi data JSON.

Pastikan Anda menggunakan versi yang kompatibel agar fitur ini dapat berjalan dengan baik.

» Read more

Membuat Aplikasi Mobile dengan Flutter untuk Pemula

Halo Sobat, kali ini saya mau ngajak Sobat buat nyoba sesuatu yang seru: bikin aplikasi mobile pakai Flutter

Apa Itu Flutter?

Flutter adalah framework buatan Google buat bikin aplikasi cross-platform. Artinya, dengan satu kode, Sobat bisa bikin aplikasi buat Android dan iOS sekaligus. Efisien, kan?

Kenapa Harus Pakai Flutter?

  • Kode sekali, bisa jalan di mana-mana
  • UI yang menarik dengan widget bawaan
  • Performa cepat dengan native compilation
  • Didukung langsung oleh Google

Cara Install Flutter di Linux

Buat Sobat yang pakai Ubuntu, ini langkahnya:

sudo apt update && sudo apt install flutter

Setelah itu, cek apakah Flutter sudah terinstal dengan baik:

flutter doctor

Membuat Proyek Flutter Pertama

Setelah instalasi selesai, mari buat proyek baru:

flutter create my_app cd my_app flutter run

Kalau semuanya berjalan lancar, aplikasi contoh bakal tampil di emulator atau perangkat Sobat

Membuat Aplikasi to-do list

Sekarang, mari kita buat aplikasi to-do list sederhana dengan state management.

Tambahkan dependensi provider ke dalam proyek:

flutter pub add provider

Lalu, buat file baru todo_model.dart dan tambahkan kode berikut:

import 'package:flutter/material.dart'; class TodoModel extends ChangeNotifier {   List _todos = [];   List get todos => _todos;   void addTodo(String todo) {     _todos.add(todo);     notifyListeners();   } }

Setelah itu, tambahkan provider di main.dart dan buat tampilan input serta daftar tugas.

Jalankan kembali aplikasi dan lihat hasilnya

 

Selamat mencoba, Sobat! Kalau ada pertanyaan, silakan tinggalkan komentar ya

Update Massal Harga & Stok Produk di TikTok Shop Tokopedia dengan Excel & LibreOffice Calc

Halo sobat, jika sobat jualan di TikTok Shop Tokopedia, pasti sering menghadapi tantangan dalam memperbarui harga dan stok produk secara massal. Nah, kali ini kita akan belajar cara melakukannya dengan mudah menggunakan Excel dan LibreOffice Calc. Yuk, simak panduan lengkapnya

Mengapa Perlu Update Harga & Stok Secara Massal?

Marketplace seperti TikTok Shop Tokopedia terus berubah, dan penyesuaian harga serta stok sangat penting agar bisnis sobat tetap kompetitif. Jika dilakukan satu per satu, tentu memakan banyak waktu. Maka dari itu, kita bisa memanfaatkan fitur Batch Edit menggunakan file Tiktoksellercenter_batchedit_20250319_sales_information_template.xlsx.

Persiapan Data

Sebelum mulai, kita perlu dua file utama:

  1. File TikTok Shop Tokopedia: Tiktoksellercenter_batchedit_20250319_sales_information_template.xlsx, berisi daftar produk yang ingin diupdate.
  2. File Harga Baru: harga-baru.csv, berisi data harga dan stok terbaru dari database sobat.

Contoh Data dari TikTok Shop Tokopedia

Harga Lama (G) Kuantitas Lama (H) SKU (I)
138 138 741446
494 494 734650
461 461 737553

Contoh Data dari File harga-baru.csv

SKU (A) Harga Baru (B) Stok Baru (C)
741446 150 200
734650 500 250
737553 470 300

Langkah-Langkah Update Harga & Stok

1. Buka File TikTok Shop Tokopedia

Silakan buka file Tiktoksellercenter_batchedit_20250319_sales_information_template.xlsx menggunakan Excel atau LibreOffice Calc.

2. Gunakan Rumus VLOOKUP

Untuk memperbarui harga dan stok berdasarkan SKU, gunakan rumus berikut:

Memperbarui Harga (Kolom G)

Klik sel pertama di kolom G (baris pertama yang bisa diedit, misalnya G6), lalu ketik rumus berikut:

=IFERROR(VLOOKUP(I6, 'harga-baru.csv'.A:C, 2, 0), G6)

Setelah itu, tekan Enter dan tarik ke bawah untuk menerapkan ke semua baris.

Memperbarui Stok (Kolom H)

Klik sel pertama di kolom H (baris pertama yang bisa diedit, misalnya H6), lalu ketik rumus berikut:

=IFERROR(VLOOKUP(I6, 'harga-baru.csv'.A:C, 3, 0), H6)

Tekan Enter dan tarik ke bawah agar semua baris diperbarui.

3. Simpan dan Unggah Kembali ke TikTok Shop Tokopedia

Setelah harga dan stok diperbarui, simpan file dalam format .xlsx lalu unggah kembali ke TikTok Shop Tokopedia melalui menu Batch Edit.

Dengan cara ini, sobat bisa memperbarui harga dan stok secara massal tanpa harus mengedit satu per satu. Teknik ini bisa digunakan di Excel maupun LibreOffice Calc, sehingga fleksibel untuk berbagai sistem operasi, termasuk Ubuntu. Yuk, coba sekarang dan optimalkan toko sobat!

Meningkatkan Keamanan Jaringan dengan VPN OpenVPN di Ubuntu

Halo sobat, selamat datang di panduan ini . Di sini saya bakal berbagi cara untuk meningkatkan keamanan jaringan melalui VPN OpenVPN di Ubuntu. Artikel ini menggabungkan pengalaman pribadi dan improvisasi dari referensi terkini yang saya temukan di web, agar jaringan sobat makin terjaga dan koneksi selalu terenkripsi. Yuk, kita mulai langkah demi langkahnya!

Mengapa VPN OpenVPN?

VPN OpenVPN sudah lama dikenal sebagai salah satu solusi terbaik untuk mengenkripsi data dan menjaga privasi. Menurut DigitalOcean dan beberapa sumber lain, penggunaan VPN tidak hanya mengamankan data, tapi juga memberikan akses yang fleksibel dari mana saja. Dengan metode ini, aktivitas online sobat terlindungi dari pengintai dan serangan siber. » Read more

Cara Mencegah Firefox Menonaktifkan Add-on Jadul

Halo sobat, saya punya laptop lama dengan spek terbatas yang jika dijual harganya sangat murah, hampir seperti barang rosok. Karena kondisi hardware yang sudah tidak optimal, saya memilih untuk tidak melakukan update sistem agar performa tetap stabil. Saya menggunakan CentOS 7, sebuah sistem operasi yang sudah tidak didukung lagi oleh pengembangnya, namun tetap berguna untuk kebutuhan sehari-hari.Masalah muncul ketika saya mendapati bahwa Firefox versi jadul yang saya pakai secara otomatis menonaktifkan add-on lama yang selama ini saya andalkan. Ini terjadi karena sistem verifikasi tanda tangan dari Mozilla. Setelah mencari solusi, akhirnya saya menemukan cara untuk mencegah Firefox memverifikasi add-on dan menonaktifkannya. Saya akan berbagi pengalaman ini agar sobat juga bisa tetap menggunakan add-on favorit tanpa gangguan.

» Read more

Cara aman instal dan konfigurasi cPanel di CloudLinux OS

Halo sobat, selamat datang di panduan lengkap yang akan membahas cara menginstal dan mengonfigurasi cPanel di CloudLinux OS untuk bisnis web hosting. Dengan keunggulan pembagian resource, pengamanan tiap akun cPanel, serta fitur canggih lainnya, CloudLinux OS membantu menghindari gangguan antar akun dan menjaga kestabilan server inti .

Kenapa Memilih CloudLinux OS?

Meskipun tidak wajib bagi para penyedia layanan web hosting, menggunakan CloudLinux OS menawarkan banyak keuntungan, antara lain:

  • CafeFS: Fitur ini membatasi akses antar akun cPanel sehingga akses SSH beroperasi seperti jailed shell, memberikan lapisan proteksi tambahan.
  • LVE Limit: Dengan mengatur batas penggunaan RAM, CPU, dan kecepatan baca/tulis, masing-masing akun mendapatkan porsi resource yang adil tanpa mengganggu satu sama lain.
  • Ruby & Python Selector: Selain PHP, sobat dapat menjalankan skrip Ruby dan Python, memberikan fleksibilitas untuk aplikasi modern.
  • MySQL Governor: Memantau dan membatasi operasi query yang lambat sehingga konsumsi memori dapat tetap terkendali.

» Read more

Mengoptimalkan Kinerja Web Server Apache

Halo sobat, selamat datang di panduan optimasi kinerjya Server Apache di Ubuntu . Di sini saya bakal berbagi langkah-langkah dan tips agar server Apache yang sobat gunakan makin responsif, stabil, dan siap menangani trafik yang tinggi. Artikel ini menggabungkan pengalaman pribadi, improvisasi, serta referensi dari web terkini agar informasinya selalu imorfis dan relevan.

Lingkungan Server yang Digunakan

Sobat, di server saya, kombinasi Ubuntu, Apache sebagai web server, PHP untuk aplikasi dinamis, dan MariaDB sebagai database sudah terbukti memberikan performa yang optimal untuk website atau aplikasi. Dengan konfigurasi ini, sobat dapat mengelola konten web dengan lebih efisien. » Read more

Cara Impor File Excel ke Database MySQL dengan PHP

Halo sobat, pernahkah kamu memiliki file Excel yang berisi data penting seperti data alamat dan ingin langsung memasukkannya ke dalam MySQL database? Di artikel ini, saya akan memandu kamu langkah demi langkah untuk mengonversi file Excel menjadi data yang tersimpan di database menggunakan PHP. Kita akan menggunakan MySQLi dengan prepared statement agar proses insert data dilakukan dengan aman.

Format File Excel dan Contoh Data

File Excel yang akan kita impor sebaiknya berisi tabel dengan kolom-kolom data alamat. Misalnya, tabel tersebut memiliki kolom:
  • Nama: Nama lengkap.
  • Alamat: Alamat lengkap.
  • Kota: Kota tempat tinggal.
  • KodePos: Kode pos alamat tersebut.
Berikut adalah contoh 5 baris data yang bisa terdapat dalam file Excel:
Nama Alamat Kota KodePos
Budi Santoso Jl. Merdeka No. 10 Jakarta 10110
Siti Aminah Jl. Pahlawan No. 5 Bandung 40212
Andi Wijaya Jl. Sudirman No. 15 Surabaya 60241
Dewi Lestari Jl. Kartini No. 22 Semarang 50242
Rizky Pratama Jl. Mawar No. 7 Medan 20111
Pastikan header pada file Excel sesuai dengan nama kolom di atas, sehingga saat kita mengonversinya ke CSV, data dapat diproses dengan benar.

Persiapan

Sebelum memulai, pastikan sobat telah menyiapkan:
  • Server MySQL dengan database bernama data_alamat
  • PHP versi 5.6 ke atas (disarankan PHP 7.x)
  • Command line tool xlsx2csv untuk mengonversi file Excel (.xlsx) ke CSV
  • File Excel yang akan diimpor (misalnya, data_alamat.xlsx)

Contoh Program PHP

Berikut adalah contoh program PHP yang akan:
  1. Mencari file Excel terbaru di direktori tertentu.
  2. Mengonversi file Excel ke CSV menggunakan xlsx2csv.
  3. Membuat koneksi ke MySQL menggunakan MySQLi.
  4. Membuat tabel alamat di database data_alamat jika belum ada.
  5. Memasukkan data dari file CSV ke dalam tabel menggunakan prepared statement agar insert data dilakukan dengan aman.
Contoh kode:
<?php // Konfigurasi koneksi MySQL $host     = "localhost"; $user     = "root"; $password = "password"; // Ganti dengan password MySQL kamu $database = "data_alamat"; // Membuat koneksi menggunakan MySQLi $conn = new mysqli($host, $user, $password, $database); if ($conn->connect_error) {     die("Koneksi gagal: " . $conn->connect_error); } // Membuat tabel 'alamat' jika belum ada $createTable = "CREATE TABLE IF NOT EXISTS alamat (     id INT AUTO_INCREMENT PRIMARY KEY,     nama VARCHAR(255),     alamat TEXT,     kota VARCHAR(100),     kodepos VARCHAR(20) )"; if (!$conn->query($createTable)) {     die("Gagal membuat tabel: " . $conn->error); } // Fungsi untuk mendapatkan file Excel terbaru dari direktori function getLatestExcelFile($directory) {     $files = glob($directory . "*.xlsx");     if (empty($files)) return false;     usort($files, function($a, $b) {         return filemtime($b) - filemtime($a);     });     return $files[0]; } // Tentukan direktori file Excel $excelDir = "/path/to/excel/files/"; // Ganti dengan path direktori file Excel $latestFile = getLatestExcelFile($excelDir); if (!$latestFile) {     die("Tidak ada file Excel yang ditemukan!"); } echo "File yang diproses: $latestFile\n"; // Konversi file Excel ke CSV menggunakan xlsx2csv $csvFile = "/path/to/csv/output.csv"; // Ganti dengan path output CSV yang diinginkan $command = "xlsx2csv " . escapeshellarg($latestFile) . " > " . escapeshellarg($csvFile); system($command); echo "Perintah konversi: $command\n"; // Pastikan file CSV berhasil dibuat if (!file_exists($csvFile) || filesize($csvFile) == 0) {     die("File CSV kosong atau tidak ditemukan setelah konversi!"); } // Membuka file CSV dan memasukkan data ke database dengan prepared statement if (($handle = fopen($csvFile, "r")) !== FALSE) {     // Membaca header (asumsi baris pertama adalah header)     $header = fgetcsv($handle, 1000, ",");     // Menyiapkan prepared statement untuk insert data     $stmt = $conn->prepare("INSERT INTO alamat (nama, alamat, kota, kodepos) VALUES (?, ?, ?, ?)");     if (!$stmt) {         die("Gagal menyiapkan statement: " . $conn->error);     }     $stmt->bind_param("ssss", $nama, $alamat, $kota, $kodepos);     while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {          // Asumsikan file CSV memiliki kolom: Nama, Alamat, Kota, KodePos (urutan kolom 0, 1, 2, 3)          if (count($data) < 4) continue;          $nama    = trim($data[0]);          $alamat  = trim($data[1]);          $kota    = trim($data[2]);          $kodepos = trim($data[3]);          // Eksekusi statement untuk setiap baris          if (!$stmt->execute()) {              echo "Error: " . $stmt->error . "\n";          }     }     fclose($handle);     $stmt->close();     echo "Data berhasil dimasukkan ke dalam database.\n"; } else {     die("Gagal membuka file CSV!"); } $conn->close(); ?> 
 
Jadi sobat, dengan menggunakan PHP bersama MySQLi dan prepared statement, kamu dapat dengan aman mengonversi file Excel menjadi data yang tersimpan di MySQL database. Proses ini sangat berguna untuk mengimpor data dalam jumlah besar atau secara rutin. Dengan format file Excel yang tepat dan contoh data seperti yang telah dijelaskan, sobat bisa dengan mudah menyesuaikan program ini sesuai kebutuhan. Semoga panduan ini bermanfaat dan membantu kamu dalam mengelola data dengan lebih efisien. Selamat mencoba dan terus eksplorasi dunia pemrograman!
1 2 3 7