Author Archives: Riyanto

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.

Membuat Aplikasi Mobile dengan Flutter untuk Pemula

Halo Sobat! Kali ini saya mau ngajak Sobat buat nyoba sesuatu yang seru dan makin populer di dunia software development: bikin aplikasi mobile cross-platform pakai Flutter!

Apa Itu Flutter?

Flutter adalah SDK (Software Development Kit) open-source buatan Google yang memungkinkan kita membangun aplikasi berkinerja tinggi untuk Android, iOS, Web, hingga Desktop hanya dengan satu basis kode (single codebase).

Bahasa pemrograman yang digunakan oleh Flutter adalah Dart. Kolaborasi Flutter dan Dart ini bikin proses koding jadi sangat efisien, cepat, dan hasilnya terasa seperti aplikasi native!

Kenapa Harus Pakai Flutter?

  • Single Codebase: Tulis kode sekali, bisa langsung di-deploy ke Android, iOS, Web, dan Desktop.
  • Fitur Hot Reload: Mengubah tampilan UI hanya butuh hitungan detik tanpa perlu melakukan rebuild/restart aplikasi dari awal.
  • Performa Tinggi: Kode dikompilasi langsung ke kode mesin (AOT compilation), sehingga performanya sangat responsif (hingga 60/120 FPS).
  • Kaya Akan Widget: Flutter menyediakan ratusan widget bawaan Material Design (Android) dan Cupertino (iOS) yang siap pakai.
  • Dukungan Ekosistem Luas: Dikembangkan langsung oleh Google dan didukung oleh komunitas global yang sangat aktif.

Cara Install Flutter di Linux (Ubuntu)

Buat Sobat pengguna Linux/Ubuntu, instalasi Flutter kini sangat mudah melalui Snap Store. Buka terminal lalu jalankan perintah berikut:

sudo snap install flutter --classic

Setelah instalasi selesai, cek kelengkapan dependensi dan status lingkungan Flutter Sobat dengan menjalankan perintah:

flutter doctor

Sistem akan memindai dependensi yang kurang (seperti Android Studio atau VS Code) dan memberikan petunjuk cara melengkapinya.

Membuat Proyek Flutter Pertama

Setelah persiapan lingkungan siap, mari kita jalankan perintah berikut untuk membuat proyek awal:

flutter create my_app
cd my_app
flutter run

Jika semua berjalan lancar, aplikasi contoh bawaan Flutter akan langsung tampil di emulator atau perangkat fisik Android/iOS milik Sobat!

Praktik: Membuat Aplikasi To-Do List Sederhana

Untuk memahami bagaimana Flutter mengelola data tampilan, mari buat aplikasi To-Do List sederhana menggunakan paket manajemen state populer, yaitu Provider.

1. Tambahkan Dependensi Provider

Jalankan perintah ini di terminal proyek Sobat untuk mengunduh package Provider:

flutter pub add provider

2. Buat Model State (todo_model.dart)

Buat file baru bernama todo_model.dart di dalam folder lib/, lalu isi dengan kode berikut:

import 'package:flutter/material.dart';

class TodoModel extends ChangeNotifier {
  final List<String> _todos = [];

  List<String> get todos => _todos;

  void addTodo(String todo) {
    if (todo.isNotEmpty) {
      _todos.add(todo);
      notifyListeners(); // Memperbarui tampilan secara otomatis saat ada data baru
    }
  }
}

3. Hubungkan State dengan UI (main.dart)

Buka file lib/main.dart dan ubah seluruh isinya menjadi seperti ini:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'todo_model.dart';

void main() {
  runApp(
    ChangeNotifierProvider(
      create: (context) => TodoModel(),
      child: const MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: TodoScreen(),
    );
  }
}

class TodoScreen extends StatelessWidget {
  const TodoScreen({super.key});

  @override
  Widget build(BuildContext context) {
    final controller = TextEditingController();

    return Scaffold(
      appBar: AppBar(title: const Text('To-Do List Flutter')),
      body: Column(
        children: [
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: Row(
              children: [
                Expanded(
                  child: TextField(
                    controller: controller,
                    decoration: const InputDecoration(
                      labelText: 'Tambah Tugas Baru',
                      border: OutlineInputBorder(),
                    ),
                  ),
                ),
                const SizedBox(width: 10),
                ElevatedButton(
                  onPressed: () {
                    context.read<TodoModel>().addTodo(controller.text);
                    controller.clear();
                  },
                  child: const Text('Tambah'),
                ),
              ],
            ),
          ),
          Expanded(
            child: Consumer<TodoModel>(
              builder: (context, todoModel, child) {
                return ListView.builder(
                  itemCount: todoModel.todos.length,
                  itemBuilder: (context, index) {
                    return ListTile(
                      leading: const Icon(Icons.check_circle_outline),
                      title: Text(todoModel.todos[index]),
                    );
                  },
                );
              },
            ),
          ),
        ],
      ),
    );
  }
}

Jalankan kembali aplikasinya dengan menekan tombol Hot Reload (r) di terminal atau IDE Sobat, lalu coba ketikkan tugas dan tekan tombol Tambah. List tugas akan bertambah secara instan!

Selamat mencoba, Sobat! Bagaimana, seru kan belajar Flutter? Jika Sobat mengalami kendala saat mengikuti langkah-langkah di atas, jangan ragu untuk bertanya di kolom komentar ya!