Penerapan Database MongoDB dengan Jupyter Notebook
Penerapan Database MongoDB dengan Jupyter Notebook
Selamat datang kembali, para pembaca setia blog ini! Kali ini, kita akan memasuki dunia menarik pengaplikasian database NoSQL, khususnya MongoDB, dengan menggunakan alat yang sangat bermanfaat, yaitu Jupyter Notebook.
Apa itu MongoDB?
MongoDB merupakan salah satu jenis database NoSQL yang berbasis dokumen. Berbeda dengan database relasional tradisional, MongoDB menggunakan format BSON (Binary JSON) untuk menyimpan data. Keunggulan MongoDB terletak pada kemampuannya menangani data semi-struktural atau tidak terstruktur dengan lebih efisien.
Mengapa MongoDB?
Pertanyaan ini wajar muncul. MongoDB menjadi pilihan populer karena kemudahannya dalam menyimpan data yang beragam, skalabilitas horizontal yang baik, dan fleksibilitas dalam memodelkan data. Penerapan MongoDB seringkali memberikan solusi yang optimal untuk aplikasi yang membutuhkan penanganan data yang cepat dan terdistribusi.
Apa Itu Jupyter Notebook?
Jupyter Notebook, di sisi lain, adalah lingkungan komputasi interaktif yang memungkinkan kita menggabungkan teks naratif, kode, dan hasil eksekusi dalam satu dokumen. Cocok sekali digunakan untuk eksplorasi data, visualisasi, dan analisis. Keterbukaan Jupyter terhadap berbagai bahasa pemrograman menjadikannya pilihan utama para data scientist dan pengembang.
Kombinasi MongoDB dan Jupyter Notebook
Menggabungkan MongoDB dengan Jupyter Notebook memberikan kita keunggulan lebih dalam menganalisis dan memanipulasi data. Pada artikel ini, kita akan menjelajahi langkah-langkah penerapan MongoDB dengan menggunakan Jupyter Notebook, serta bagaimana kombinasi ini dapat memberikan nilai tambah pada proyek pengembangan perangkat lunak atau analisis data kita.
Jadi, mari kita memulai petualangan kita dalam memahami penerapan database MongoDB dengan pengaplikasian Jupyter Notebook! Simak langkah-langkahnya dengan seksama dan jangan ragu untuk mencoba sendiri di lingkungan pengembangan Anda.
Penerapan
Sebelum masuk ke materi prakter, tentunya kita perlu data untuk diolah, data dapat di cari pada laman web kaggle.com. Tampilannya seperti ini.
Disini saya menggunakan database dari "Spotify Track Genre".
Import Data dari File CSV ke MongoDB Menggunakan Python
Dalam artikel ini, kita akan membahas bagaimana cara mengimpor data dari file CSV ke MongoDB menggunakan Python. Untuk demonstrasi, kita akan menggunakan contoh file CSV Spotify.csv dan menghubungkannya dengan koleksi 'Data' pada database 'Spotify'.
1. Menghubungkan ke MongoDB
Pertama-tama, kita menggunakan pymongo untuk menghubungkan Python dengan MongoDB. Dalam contoh ini, kita terhubung ke server MongoDB yang berjalan di localhost dan port 27017. Pastikan Anda sudah mengganti 'nama_database' dan 'nama_koleksi' sesuai dengan kebutuhan Anda.
from pymongo import MongoClient
# Terhubung ke MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['Spotify'] # Ganti 'nama_database' dengan nama database Anda
koleksi = db['Data'] # Ganti 'nama_koleksi' dengan nama koleksi Anda
2. Menentukan Jalur File CSV
Selanjutnya, kita tentukan jalur file CSV yang akan diimpor. Pastikan file CSV Anda memiliki struktur yang sesuai dengan kebutuhan.
# Tentukan jalur ke file CSV Anda
path_csv = 'Spotify.csv'
3. Membuka dan Memasukkan Data ke MongoDB
Buka file CSV menggunakan csv.DictReader untuk membaca setiap baris sebagai kamus. Kemudian, konversi kunci menjadi string dan masukkan setiap baris ke dalam koleksi MongoDB.
import csv
# Buka file CSV dan masukkan setiap baris ke dalam koleksi MongoDB
with open(path_csv, 'r', encoding='utf-8') as csvfile:
csv_reader = csv.DictReader(csvfile)
for row in csv_reader:
# Konversi setiap kunci menjadi string
row_str_keys = {str(key): value for key, value in row.items()}
# Masukkan setiap baris sebagai dokumen dalam koleksi MongoDB
koleksi.insert_one(row_str_keys)
Tampilannya akan seperti ini:
Setelah proses selesai, Anda akan mendapatkan pesan "Data berhasil diimpor. :)" yang menandakan bahwa data telah berhasil dimasukkan ke dalam koleksi MongoDB.
Membangun Aplikasi MongoDB dengan Fungsionalitas CRUD dan Visualisasi Data Menggunakan Python
Selanjutnya, kita akan membahas bagaimana membangun aplikasi sederhana menggunakan Python untuk berinteraksi dengan MongoDB. Aplikasi ini mencakup fungsi dasar CRUD (Create, Read, Update, Delete) serta visualisasi data dengan grafik histogram, line plot, dan vertical bar chart.
1. Koneksi ke MongoDB
Pertama-tama, kita perlu terhubung ke MongoDB menggunakan library pymongo. Dengan menggunakan MongoClient, kita dapat mengakses database dan koleksi yang akan digunakan.
import pymongo
# Koneksi ke MongoDB
client = pymongo.MongoClient("mongodb://localhost:27017/")
database = client["Spotify"]
collection = database["Data"]
2. Fungsi CRUD
Kemudian, kita mendefinisikan fungsi untuk operasi CRUD. Ini mencakup pembuatan dokumen baru, membaca dokumen berdasarkan kueri, memperbarui dokumen, dan menghapus dokumen.
def create_document(data):
# Membuat dokumen baru
result = collection.insert_one(data)
print(f"Dokumen berhasil ditambahkan dengan ID: {result.inserted_id}")
def read_documents(query={}):
# Membaca dokumen berdasarkan kueri
documents = collection.find(query)
# Mengubah dokumen menjadi DataFrame
df = pd.DataFrame(documents)
return df
def update_document(query, new_data):
# Memperbarui dokumen berdasarkan kueri
result = collection.update_one(query, {"$set": new_data})
print(f"Jumlah dokumen yang diubah: {result.modified_count}")
def delete_document(album_name):
# Menghapus dokumen berdasarkan kueri
result = collection.delete_one({'album_name': album_name})
if result.deleted_count > 0:
print(f'Album dengan nama "{album_name}" telah dihapus.')
else:
print(f'Album dengan nama "{album_name}" tidak ditemukan.')
3. Visualisasi Data
Selanjutnya, kita membuat fungsi untuk menampilkan tabel data dan visualisasi data. Fungsi ini mencakup tampilan tabel data parsial, histogram, line plot, dan vertical bar chart.
def display_partial_table(df, start=0, end=5):
# Menampilkan tabel data parsial
if not df.empty:
partial_df = df.iloc[start:end]
table = tabulate(partial_df, headers='keys', tablefmt='pretty', showindex=False)
print(table)
else:
print("Tidak ada data untuk ditampilkan.")
def display_histogram(df, column_name):
# Menampilkan histogram dari kolom tertentu
if column_name in df.columns:
try:
df[column_name] = pd.to_numeric(df[column_name])
plt.hist(df[column_name], bins=20, color='blue', edgecolor='black')
plt.title(f'Histogram dari Kolom {column_name}')
plt.xlabel(column_name)
plt.ylabel('Frekuensi')
plt.show()
except ValueError as e:
print(f"Error: {e}")
print(f"Gagal mengonversi kolom {column_name} ke tipe data numerik.")
else:
print(f"Kolom dengan nama {column_name} tidak ditemukan.")
def display_line_plot(df, x_column, y_column):
# Menampilkan line plot dari dua kolom tertentu
if x_column in df.columns and y_column in df.columns:
try:
df[x_column] = pd.to_numeric(df[x_column], errors='coerce')
df[y_column] = pd.to_numeric(df[y_column], errors='coerce')
plt.plot(df[x_column], df[y_column], marker='o', linestyle='-')
plt.title(f'Line Plot dari {y_column} terhadap {x_column}')
plt.xlabel(x_column)
plt.ylabel(y_column)
plt.show()
except ValueError as e:
print(f"Error: {e}")
print(f"Gagal mengonversi kolom {x_column} atau {y_column} ke tipe data numerik.")
else:
print(f"Kolom {x_column} atau {y_column} tidak ditemukan.")
def display_vertical_bar_chart(df, x_column, y_column):
# Menampilkan vertical bar chart dari dua kolom tertentu
if x_column in df.columns and y_column in df.columns:
try:
df[x_column] = pd.to_numeric(df[x_column], errors='coerce')
df[y_column] = pd.to_numeric(df[y_column], errors='coerce')
plt.bar(df[x_column], df[y_column], color='blue')
plt.title(f'Vertical Bar Chart dari {y_column} terhadap {x_column}')
plt.xlabel(x_column)
plt.ylabel(y_column)
plt.show()
except ValueError as e:
print(f"Error: {e}")
print(f"Gagal mengonversi kolom {x_column} atau {y_column} ke tipe data numerik.")
else:
print(f"Kolom {x_column} atau {y_column} tidak ditemukan.")
# Fungsi untuk membuat dan menampilkan pie chart dari kolom tertentu
def display_pie_chart(df, column_name):
if column_name in df.columns:
try:
# Menghitung frekuensi nilai unik dalam kolom
counts = df[column_name].value_counts()
# Menampilkan pie chart
plt.pie(counts, labels=counts.index, autopct='%1.1f%%', startangle=90, colors=plt.cm.Paired.colors)
plt.title(f'Pie Chart dari Kolom {column_name}')
plt.axis('equal') # Memastikan pie chart berbentuk lingkaran
plt.show()
except ValueError as e:
print(f"Error: {e}")
print(f"Gagal menghitung frekuensi untuk kolom {column_name}.")
else:
print(f"Kolom dengan nama {column_name} tidak ditemukan.")
Maka tampilannya akan seperti ini
Dengan menggabungkan fungsionalitas CRUD dan visualisasi data, kita dapat membangun aplikasi yang dapat membantu dalam manajemen dan analisis data Spotify pada database MongoDB. Artikel ini memberikan dasar untuk memahami cara menggunakan Python untuk berinteraksi dengan MongoDB dan memvisualisasikan data dengan grafik.
Testing
Menambahkan Data Baru ke Database Spotify Menggunakan Python
Dalam contoh ini, kita akan membahas cara menambahkan data baru ke database Spotify kita menggunakan Python. Kita akan menggunakan fungsi create_document yang telah kita definisikan sebelumnya.
Kode di bawah ini menunjukkan cara membuat dokumen baru dalam database Spotify dengan menggunakan data contoh. Dokumen ini mencakup informasi tentang sebuah lagu, seperti artis, nama album, nama trek, popularitas, durasi, dan sebagainya.
sample_data = {
'artists': 'Tulus ',
'album_name': 'Monokrom',
'track_name': 'Monokrom',
'popularity': 80,
'duration_ms': 200400,
'explicit': False,
'danceability': 0.75,
'energy': 0.8,
'key': 5,
'loudness': -5.5,
'mode': 1,
'speechiness': 0.1,
'acousticness': 0.2,
'instrumentalness': 0.05,
'liveness': 0.3,
'valence': 0.7,
'tempo': 120,
'time_signature': 4,
'track_genre': 'Jazz'
}
# Menambahkan data baru ke database
create_document(sample_data)
Tampilan gambar:
Dengan menjalankan kode di atas, kita dapat melihat hasilnya di MongoDB dengan dokumen baru yang berhasil ditambahkan. Pada contoh ini, kita menambahkan data lagu "Monokrom" oleh Tulus ke koleksi 'Data' dalam database 'Spotify'.
Membaca Data dari Database
Pertama-tama, kita akan membaca data dari koleksi 'Data' dalam database 'Spotify' menggunakan fungsi read_documents.
# Memanggil fungsi read_documents
df = read_documents()
Memperbarui Data Lagu Tertentu
Selanjutnya, kita akan memperbarui data lagu "This Time Tomorrow" dengan meningkatkan nilai popularitasnya.
# Memperbarui data
update_query = {'track_name': 'This Time Tomorrow'}
updated_data = {'popularity': 85}
update_document(update_query, updated_data)
Menghapus Data Album
Selanjutnya, kita akan menghapus data album dengan nama "Monokrom" dari koleksi.
# Menghapus data album
album_name_to_delete = 'Monokrom'
delete_document(album_name_to_delete)
Visualisasi Data
Terakhir, kita akan memvisualisasikan data menggunakan grafik histogram, line plot, vertical bar chart dan pie.
# Memanggil fungsi display_histogram untuk kolom 'popularity'
display_histogram(df, 'popularity')
# Memanggil fungsi display_line_plot untuk kolom 'tempo' dan 'popularity'
display_line_plot(df, 'tempo', 'popularity')
# Memanggil fungsi display_vertical_bar_chart untuk kolom 'artists' dan 'popularity'
display_vertical_bar_chart(df, 'tempo', 'popularity')
Dengan menjalankan kode-kode di atas, kita dapat menambahkan, membaca, memperbarui, dan menghapus data dalam database MongoDB serta melihat visualisasi data untuk memahami karakteristiknya. Semoga artikel ini memberikan pemahaman tentang cara melakukan berbagai operasi pada data menggunakan Python dan MongoDB. Selamat mencoba!
Komentar
Posting Komentar