Cegah Fatal Error! Ini 42 Fungsi PHP Lama yang Wajib Sobat Ganti Sebelum Upgrade ke PHP 8.5

Halo sobat, kembali lagi bersama saya Riyanto. Sebagai orang yang sudah ngulik PHP dan WordPress lebih dari 20 tahun—sejak zaman PHP 4 dan WordPress versi awal—saya sudah menyaksikan berbagai gelombang evolusi bahasa pemograman ini. Kalau sobat sudah lama menggunakan PHP, mungkin sampai saat ini masih ada project, aplikasi backend PHP, atau website klien yang berjalan di PHP 7.4. Memang sampai sekarang aplikasi tersebut masih bisa digunakan dan keliatannya adem-adem saja, tetapi menurut saya sekarang adalah waktu yang sanggat tepat untuk mulai melakukan migrasi ke PHP 8.5.

Pengalaman saya menangani migrasi belasan server Linux skala enterprise dan ratusan site WordPress menunjukkan bahwa menunda upgrade PHP itu ibarat menyimpan bom waktu. PHP 7.4 sudah resmi mencapai end-of-life (EOL) sejak November 2022. Artinya, tidak ada lagi patch keamanan resmi dari core PHP team. Ketika sobat tetap bertahan di PHP 7, aplikasi sobat tidak hanya rentan terhadap celah keamanan, tetapi juga kehilangan lompatan performa yang luar biasa drastis dari JIT (Just-In-Time) compiler, pemakaian memori yang jauh lebih efisien, serta fitur-fitur sintaks modern di PHP 8.0 hingga PHP 8.5 seperti Match Expression, Enums, Readonly Properties, Asymmetric Visibility, hingga Property Hooks. » Read more

Cara Membuat Sistem Catatan & Reminder Otomatis Langsung ke Telegram dengan PHP

Halo Sobat, pernahkah Sobat melewatkan agenda penting atau lupa jadwal bayar tagihan hanya karena lupa mencatatnya? Atau mungkin Sobat bosan dengan aplikasi reminder biasa yang notifikasinya sering tenggelam?

Tenang, Sobat! Kali ini kita akan berbagi cara cerdas membuat aplikasi Catatan sekaligus Reminder Otomatis berbasis web menggunakan PHP, yang canggihnya, notifikasi pengingatnya akan dikirim langsung ke HP Android Sobat lewat Bot Telegram secara real-time dan gratis.

Dengan sistem ini, tanggal masa lalu akan otomatis disimpan sebagai Catatan Histori, sedangkan tanggal masa depan akan otomatis diantrekan menjadi Reminder aktif. Yuk, simak langkah demi langkah-nya! » Read more

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. » Read more

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 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!

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