Tujuan: Memperkenalkan Beberapa Algoritma Umum pada Python
\n",
"
Keluaran: Peserta dapat menulis kode sederhana untuk algoritma umum di Python dan mengaplikasikannya pada data katalog gempabumi sederhana
\n",
"
Sesi: 2
\n",
"
Waktu/Tempat: Sabtu, 20 Februari 2021/ Zoom Meeting
\n",
"
\n",
"
"
]
},
{
"cell_type": "markdown",
"id": "interstate-harvey",
"metadata": {},
"source": [
"## Membaca Data Tabular Menggunakan Pandas\n",
"\n",
"Pada pertemuan di sesi kedua ini kita akan mulai bermain data dan mengaplikasikan beberapa-beberapa algoritma sederhana di Python untuk data tersebut. Data yang kita gunakan adalah katalog gempa Badan Meteorologi dan Geofisika (BMKG) pada kejadian gempa Mw 6.2 di Mamuju pada Januari lalu. Katalog gempa yang digunakan adalah dalam jangka waktu 11 Januari sampai 30 Januari 2021. Format data katalog berbentuk *Comma Separated Values* (CSV) dan sudah disesuaikan agar lebih mudah dibaca menggunakan Python. Peserta dapat mengunduh data ini dengan menekan [download data](data/demo_data_BMKG_Mamuju.csv) atau melalui [github](https://github.com/anangsahroni/geoscope-geohazard-workshop/blob/main/data/demo_data_BMKG_Mamuju.csv) kemudian taruh di dalam folder `data`. Format dari data ini adalah seperti berikut ini:\n",
"\n",
"\n",
"```\n",
"time,latitude,longitude,depth,magnitude\n",
"2021-01-27T18:43:24.965Z,-2.97,118.83,11,3.7\n",
"2021-01-25T16:04:16.363Z,-3.01,118.80,47,2.8\n",
"2021-01-24T20:52:08.070Z,-2.94,118.61,10,2.6\n",
"2021-01-24T16:52:55.221Z,-3.00,118.80,35,2.4\n",
"2021-01-24T02:38:50.171Z,-2.95,118.88,14,3.1\n",
"2021-01-21T11:55:35.955Z,-2.90,118.91,10,4.0\n",
"```\n",
"\n",
"Pembacaan data untuk format CSV seperti di atas dapat dilakukan dengan berbagai macam cara seperti menggunakan fungsi bawaan seperti `open`, `numpy.genfromtxt`, atau menggunakan fungsi yang lebih *high level* atau mudah seperti `pandas.read_csv`. Pada praktik ini kita akan menggunakan cara yang paling mudah dan paling pendek yaitu menggunakan `pandas.read_csv` yang berada dalam modul `pandas`. Modul `pandas` memiliki spesialiasi manipulasi data dalam berbagai format, salah satunya yaitu format tabular seperti yang akan kita olah."
]
},
{
"cell_type": "markdown",
"id": "circular-advertising",
"metadata": {},
"source": [
"### Mengimpor Modul `pandas`\n",
"\n",
"Seperti pada pertemuan pertama dimana kita harus mengimpor modul yang akan kita gunakan (`math`), kita juga akan mengimpor `pandas` dan kemudian memberikan alias panggilan `pd` agar untuk penulisan kode lebih mudah."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "capable-sitting",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"id": "assigned-conditioning",
"metadata": {},
"source": [
"Cara pengimporan modul atau paket seperti di atas akan lazim kita temui dalam penulisan kode di Python, selain cara tersebut kita juga dapat langsung mengimpor fungsi yang akan kita gunakan, alih-alih mengimpor modul secara umum. Contoh yang terakhir akan kita berikan di pembahasan di bagian belakang."
]
},
{
"cell_type": "markdown",
"id": "excess-auditor",
"metadata": {},
"source": [
"### Membaca Data Menggunakan Fungsi `pandas.read_csv`\n",
"Fungsi dari `pandas` yang berguna untuk membaca data tabular dalam bentuk CSV adalah `pandas.read_csv` tetapi karena `pandas` sudah kita berikan alias `pd` maka kita cukup mengetikkan `pd.read_csv`. Sebelum kita menggunakan fungsi tersebut kita terlebih dahulu akan membaca petunjuk penggunaan fungsinya dengan menggunakan fungsi `help`:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "reserved-cheese",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on function read_csv in module pandas.io.parsers:\n",
"\n",
"read_csv(filepath_or_buffer: Union[ForwardRef('PathLike[str]'), str, IO[~T], io.RawIOBase, io.BufferedIOBase, io.TextIOBase, _io.TextIOWrapper, mmap.mmap], sep=