Pemrograman Python dengan File Data: CSV, Excel, dan JSON

 

1. Dasar-Dasar Python untuk CSV, Excel, dan JSON

CSV (Comma-Separated Values) adalah format teks yang digunakan untuk menyimpan data dalam tabel, di mana setiap baris adalah satu catatan dan setiap catatan terdiri dari satu atau lebih bidang yang dipisahkan oleh koma.

Excel adalah aplikasi spreadsheet yang menggunakan format file khusus seperti .xlsx untuk menyimpan data dalam bentuk tabel yang lebih kompleks.

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca, dan ditulis oleh manusia serta mudah diurai dan dihasilkan oleh mesin.

CSV:

  • Struktur sederhana: data dipisahkan oleh koma (atau pemisah lain)
  • Mudah dibaca manusia dan mesin
  • Tidak mendukung tipe data kompleks atau formula

Excel:

  • Dapat menyimpan data kompleks, formula, dan banyak sheet
  • Mendukung format sel dan tipe data yang beragam
  • Ukuran file lebih besar dibanding CSV

JSON:

  • Berbasis struktur key-value
  • Mendukung tipe data nested
  • Sering digunakan dalam API web dan konfigurasi

2. Membaca dan Menulis File CSV

Membaca CSV:

contoh 1

python
import csv

with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)
contoh 2
python
import csv def read_csv(file_path): data = [] with open(file_path, 'r', newline='') as file: csv_reader = csv.reader(file) headers = next(csv_reader) # Membaca header for row in csv_reader: data.append(row) return headers, data # Penggunaan headers, data = read_csv('data.csv') print("Headers:", headers) print("Data:", data[:5]) # Menampilkan 5 baris pertama

Menulis CSV:

python
import csv

data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "San Francisco"]
]

with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

contoh 2 
python
import csv def write_csv(file_path, headers, data): with open(file_path, 'w', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerow(headers) csv_writer.writerows(data) # Penggunaan headers = ['Name', 'Age', 'City'] data = [ ['Alice', 30, 'New York'], ['Bob', 25, 'Los Angeles'], ['Charlie', 35, 'Chicago'] ] write_csv('output.csv', headers, data)

3. Membaca dan Menulis File Excel

Untuk bekerja dengan file Excel, kita dapat menggunakan library openpyxl atau pandas.

Membaca Excel dengan openpyxl:

python
from openpyxl import load_workbook

wb = load_workbook('data.xlsx')
sheet = wb.active

for row in sheet.iter_rows(values_only=True):
    print(row)

Menggunakan library openpyxl:

python
from openpyxl import load_workbook def read_excel(file_path, sheet_name=None): wb = load_workbook(file_path, read_only=True) if sheet_name: sheet = wb[sheet_name] else: sheet = wb.active data = [] for row in sheet.iter_rows(values_only=True): data.append(row) headers = data[0] data = data[1:] return headers, data # Penggunaan headers, data = read_excel('data.xlsx', 'Sheet1') print("Headers:", headers) print("Data:", data[:5])

Menulis Excel dengan openpyxl:

python
from openpyxl import Workbook

wb = Workbook()
sheet = wb.active

data = [
    ["Name", "Age", "City"],
    ["Alice", 30, "New York"],
    ["Bob", 25, "San Francisco"]
]

for row in data:
    sheet.append(row)

wb.save('output.xlsx')
python
from openpyxl import Workbook def write_excel(file_path, headers, data, sheet_name='Sheet1'): wb = Workbook() sheet = wb.active sheet.title = sheet_name sheet.append(headers) for row in data: sheet.append(row) wb.save(file_path) # Penggunaan headers = ['Name', 'Age', 'City'] data = [ ['Alice', 30, 'New York'], ['Bob', 25, 'Los Angeles'], ['Charlie', 35, 'Chicago'] ] write_excel('output.xlsx', headers, data)

4. Membaca dan Menulis File JSON

Membaca JSON (Deserialization):

python

import json

with open('data.json', 'r') as file:
    data = json.load(file)
    print(data)
python
import json def read_json(file_path): with open(file_path, 'r') as file: data = json.load(file) return data # Penggunaan data = read_json('data.json') print(data)

Menulis JSON (Serialization):

contoh 1
python
import json

data = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

with open('output.json', 'w') as file:
    json.dump(data, file, indent=4)
contoh 2
python
import json def write_json(file_path, data): with open(file_path, 'w') as file: json.dump(data, file, indent=4) # Penggunaan data = { 'employees': [ {'name': 'Alice', 'age': 30, 'city': 'New York'}, {'name': 'Bob', 'age': 25, 'city': 'Los Angeles'}, {'name': 'Charlie', 'age': 35, 'city': 'Chicago'} ] } write_json('output.json', data)


5. Bekerja dengan pandas

pandas adalah library yang kuat untuk analisis data yang membuat manipulasi struktur data seperti tabel lebih mudah dan efisien.

Membaca CSV dengan pandas:

python
import pandas as pd

df = pd.read_csv('data.csv')
print(df)

Menulis CSV dengan pandas:

python
import pandas as pd

df = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [30, 25],
    "City": ["New York", "San Francisco"]
})

df.to_csv('output.csv', index=False)

Membaca Excel dengan pandas:

python

import pandas as pd

df = pd.read_excel('data.xlsx')
print(df)

Menulis Excel dengan pandas:

python

import pandas as pd

df = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [30, 25],
    "City": ["New York", "San Francisco"]
})

df.to_excel('output.xlsx', index=False)

Membaca JSON dengan pandas:

python

import pandas as pd

df = pd.read_json('data.json')
print(df)

Menulis JSON dengan pandas:

python

import pandas as pd

df = pd.DataFrame({
    "name": ["Alice", "Bob"],
    "age": [30, 25],
    "city": ["New York", "San Francisco"]
})

df.to_json('output.json', orient='records', lines=True)

Python bekerja dengan Pandas - Writing CSV, Excel, JSON:
python
import pandas as pd def pandas_write_files(df, base_filename): # CSV df.to_csv(f'{base_filename}.csv', index=False) # Excel df.to_excel(f'{base_filename}.xlsx', index=False) # JSON df.to_json(f'{base_filename}.json', orient='records') # Penggunaan data = { 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [30, 25, 35], 'City': ['New York', 'Los Angeles', 'Chicago'] } df = pd.DataFrame(data) pandas_write_files(df, 'output_pandas')

Python bekerja dengan Pandas - Loading CSV dalam DataFrame:

python
import pandas as pd def load_csv_to_dataframe(file_path): df = pd.read_csv(file_path) return df # Penggunaan df = load_csv_to_dataframe('data.csv') print(df.head()) print(df.info())


Implementasi dalam Industri

  1. Analisis Data Keuangan

    • Membaca CSV: Mengumpulkan data keuangan dari berbagai sumber dalam format CSV dan melakukan analisis menggunakan pandas.
    • Contoh: Menganalisis laporan keuangan untuk tren profitabilitas.
    python-contoh 1

    import pandas as pd

    df = pd.read_csv('financial_data.csv')
    print(df.describe())
    python-contoh 2
    import pandas as pd import matplotlib.pyplot as plt # Membaca data keuangan dari CSV df = pd.read_csv('financial_data.csv') # Menganalisis tren pendapatan revenue_trend = df.groupby('Date')['Revenue'].sum() # Membuat grafik plt.figure(figsize=(12, 6)) revenue_trend.plot() plt.title('Tren Pendapatan') plt.xlabel('Tanggal') plt.ylabel('Pendapatan') plt.savefig('revenue_trend.png')
  2. Pemrosesan Data Pengguna

    • Membaca dan Menulis JSON: Mengelola data pengguna dalam aplikasi web, menyimpan data profil pengguna dalam format JSON.
    • Contoh: Memproses dan menyimpan data registrasi pengguna.
    python

    import json

    user_data = {
        "username": "john_doe",
        "email": "john@example.com"
    }

    with open('user_data.json', 'w') as file:
        json.dump(user_data, file, indent=4)
  3. Pelaporan Bisnis

    • Menulis Excel: Menghasilkan laporan bulanan dalam format Excel untuk dibagikan dengan manajemen.
    • Contoh: Membuat laporan penjualan.
    python

    import pandas as pd

    sales_data = {
        "Product": ["Product A", "Product B"],
        "Sales": [150, 200]
    }

    df = pd.DataFrame(sales_data)
    df.to_excel('sales_report.xlsx', index=False)
  4. Otomasi dan Skrip Batch

    • Menggunakan pandas untuk Memproses Batch File CSV: Mengotomatiskan pemrosesan data batch untuk mengumpulkan dan mengolah data dari beberapa file CSV.
    • Contoh: Menggabungkan beberapa file CSV menjadi satu.
    python

    import pandas as pd
    import os

    all_data = pd.DataFrame()

    for file in os.listdir('data'):
        if file.endswith('.csv'):
            df = pd.read_csv(os.path.join('data', file))
            all_data = all_data.append(df, ignore_index=True)

    all_data.to_csv('all_data.csv', index=False)
  5. E-commerce - Manajemen Inventaris:
    python
    import pandas as pd # Membaca data inventaris dari Excel df = pd.read_excel('inventory.xlsx') # Menghitung total nilai inventaris df['Total Value'] = df['Quantity'] * df['Price'] total_inventory_value = df['Total Value'].sum() # Mengidentifikasi produk dengan stok rendah low_stock = df[df['Quantity'] < 10] # Menyimpan hasil analisis with pd.ExcelWriter('inventory_report.xlsx') as writer: df.to_excel(writer, sheet_name='Full Inventory', index=False) low_stock.to_excel(writer, sheet_name='Low Stock', index=False)
  6. IoT (Internet of Things):
    python
    import pandas as pd import json from datetime import datetime # Membaca data sensor dari CSV df = pd.read_csv('sensor_data.csv') # Mengonversi timestamp ke format yang sesuai df['timestamp'] = pd.to_datetime(df['timestamp']) # Mengelompokkan data per hari daily_avg = df.groupby(df['timestamp'].dt.date)['temperature'].mean() # Mengonversi ke JSON untuk dikirim ke cloud json_data = daily_avg.to_json(orient='index') # Menyimpan JSON with open('daily_temperature.json', 'w') as f: json.dump(json_data, f)
  7. Manajemen Pelanggan:
    python
    import pandas as pd import json # Membaca data pelanggan dari Excel df = pd.read_excel('customer_data.xlsx') # Menghitung nilai pelanggan df['Customer Value'] = df['Total Purchases'] * df['Average Purchase Value'] # Mengidentifikasi pelanggan high-value high_value_customers = df[df['Customer Value'] > 1000] # Mengekspor data high-value customers ke JSON untuk API high_value_json = high_value_customers.to_json(orient='records') with open('high_value_customers.json', 'w') as f: json.dump(high_value_json, f)
  8. Analisis Data Ilmiah:
    python
    import pandas as pd import matplotlib.pyplot as plt from scipy import stats # Membaca data eksperimen df = pd.read_csv('experiment_data.csv') # Melakukan t-test group1 = df[df['Group'] == 'A']['Result'] group2 = df[df['Group'] == 'B']['Result'] t_stat, p_value = stats.ttest_ind(group1, group2) # Visualisasi plt.figure(figsize=(10, 6)) df.boxplot(column='Result', by='Group') plt.title(f'Perbandingan Hasil Grup A dan B\np-value: {p_value:.4f}') plt.savefig('experiment_results.png')
  9. Otomatisasi Laporan:
    python
    import pandas as pd from openpyxl import Workbook from openpyxl.styles import Font, Alignment # Membaca data dari berbagai sumber sales_df = pd.read_csv('sales_data.csv') inventory_df = pd.read_excel('inventory.xlsx') customer_df = pd.read_json('customer_data.json') # Membuat laporan Excel wb = Workbook() ws = wb.active ws.title = "Sales Report" # Menambahkan judul ws['A1'] = "Monthly Sales Report" ws['A1'].font = Font(size=16, bold=True) # Menambahkan data penjualan sales_data = sales_df.values.tolist() for row in sales_data: ws.append(row) # Menyimpan laporan wb.save('monthly_report.xlsx')
  10. Integrasi Sistem:
    python
    import pandas as pd import json # Membaca data dari CSV sistem lama old_system_df = pd.read_csv('old_system_data.csv') # Mengonversi ke format JSON untuk sistem baru new_system_json = old_system_df.to_json(orient='records') # Menyimpan sebagai JSON with open('new_system_data.json', 'w') as f: json.dump(new_system_json, f) # Membaca kembali JSON untuk verifikasi with open('new_system_data.json', 'r') as f: verified_data = json.load(f) print("Data berhasil dikonversi dan diverifikasi.")
  11. Analisis Media Sosial:
    python
    import pandas as pd import json from collections import Counter # Simulasi data dari API media sosial with open('social_media_data.json', 'r') as f: social_data = json.load(f) # Mengonversi ke DataFrame df = pd.DataFrame(social_data) # Analisis hashtag all_hashtags = [tag for tags in df['hashtags'] for tag in tags] top_hashtags = Counter(all_hashtags).most_common(10) # Menyimpan hasil analisis results = pd.DataFrame(top_hashtags, columns=['Hashtag', 'Count']) results.to_csv('top_hashtags.csv', index=False)
  12. Manajemen Logistik:
    python
    import pandas as pd from datetime import datetime, timedelta # Membaca data inventaris dan pengiriman inventory_df = pd.read_excel('inventory.xlsx') shipment_df = pd.read_csv('shipments.csv') # Menghitung estimasi kedatangan shipment_df['Estimated Arrival'] = pd.to_datetime(shipment_df['Ship Date']) + pd.Timedelta(days=5) # Mengidentifikasi item yang perlu dipesan kembali reorder_items = inventory_df[inventory_df['Quantity'] < inventory_df['Reorder Point']] # Menyimpan laporan with pd.ExcelWriter('logistics_report.xlsx') as writer: inventory_df.to_excel(writer, sheet_name='Current Inventory', index=False) shipment_df.to_excel(writer, sheet_name='Ongoing Shipments', index=False) reorder_items.to_excel(writer, sheet_name='Reorder List', index=False)
  13. Pemrosesan Data Besar:
    python
    import pandas as pd import json from pymongo import MongoClient # Membaca file CSV besar secara efisien chunksize = 100000 chunks = [] for chunk in pd.read_csv('large_data.csv', chunksize=chunksize): # Proses setiap chunk processed_chunk = chunk.groupby('Category')['Value'].sum().reset_index() chunks.append(processed_chunk) # Menggabungkan hasil result = pd.concat(chunks) final_result = result.groupby('Category')['Value'].sum().reset_index() # Mengonversi ke JSON untuk penyimpanan di MongoDB json_data = final_result.to_json(orient='records') # Simulasi penyimpanan ke MongoDB client = MongoClient('mongodb://localhost:27017/') db = client['bigdata_db'] collection = db['processed_data'] collection.insert_many(json.loads(json_data))

Dengan memahami dan mengimplementasikan konsep-konsep ini, pengembang dapat memanfaatkan kemampuan Python untuk mengelola dan memproses data dalam berbagai format secara efisien, yang sangat berguna dalam berbagai aplikasi industri.



Comments

Popular posts from this blog

create image slider using phyton in web

Tahukah kamu Algoritma Genetika dan Penerapannya dalam Industri

create animated futuristic profile card using html+css+js

CRUD SPRING REACTIVE WEBFLUX +Mongo DB

Top 7 Digital Transformation Companies

100 perusahaan perangkat lunak (software) populer dari Eropa dan Amerika yang memiliki kehadiran atau operasional di Indonesia.

TOP 8 Framework Populer menggunakan bahasa .NET

Python Date and Time Manipulation

TOP 5 Trends Programming 2024

Daftar Kata Kunci (Keyword) dalam Bahasa Pemrograman Python