Menangani Missing Data dengan Python

Dalam datascience, sering kali kita jumpai data-data yang tidak utuh, atau hilang (missing data atau missing value). Sebagai contoh adalah data berikut ini:

Contoh Missing Data

Gambar di atas menunjukkan data ketepatan waktu lulus dari mahasiswa dari beberapa program studi. Dalam hal ini kolom ‘Prodi’, ‘Usia’, dan ‘IPK’ kita sebut sebagai variabel bebas (X) dan kolom ‘LulusTepatWaktu’ sebagai variabel terikat (y). Jika diperhatikan, maka ada beberapa missing data dalam X, yaitu pada kolom ‘Usia’ dan ‘IPK’, khususnya pada data baris ke-4 dan 7.

Dalam praktiknya, missing data bisa disebabkan karena ada kendala pada aplikasi atau software yang digunakan untuk menyimpan data tersebut, human error, atau bisa juga disebabkan karena alat yang rusak.

Java Encapsulation dan Penerapannya

Tutorial Java kali ini akan membahas tentang encapsulation atau pengkapsulan, yang merupakan salah satu fitur di dalam pemrograman berorientasi obyek. Secara umum fitur ini bertujuan untuk mengontrol aksesibilitas properti dari sebuah obyek/class, khususnya atribut. Melalui fitur ini, kita dapat menentukan atribut mana yang bersifat read only, atau write only, atau bahkan keduanya. Selain itu, fitur ini juga dapat digunakan melakukan validitas terhadap value yang akan diassign pada sebuah atribut.

Apa dan bagaimana penerapan lebih dalam mengenai encapsulation di Java akan dipaparkan di artikel ini. Penerapan encapsulation nantinya akan diberikan melalui sebuah studi kasus.

Konsep Pewarisan (Inheritance) di Java

Salah satu kemampuan atau fitur yang menarik di dalam paradigma pemrograman beriorientasi obyek (PBO) adalah pewarisan (inheritance). Melalui fitur ini, kita dapat membuat class baru yang memiliki karakteristik mirip dengan class yang lainnya. Dikatakan mirip karena class yang baru ini nantinya dapat memiliki atribut dan method yang sama dengan class yang lain. Selain itu, pada class yang baru ini dapat kita tambahkan atribut dan method khusus yang tidak dimiliki oleh class yang lain.

Pada tutorial kali ini, saya akan memberikan sebuah studi kasus yang mengimplementasikan konsep pewarisan ini di dalam Java.

Penggunaan Array List di Java

Di dalam Java, terdapat struktur data array list yang secara umum kegunaannya sama dengan struktur data array biasa, yang mana dapat digunakan untuk menyimpan sejumlah value ke dalam sebuah variabel tunggal.

Akan tetapi, perbedaan keduanya adalah bahwa array list bersifat dinamis tidak seperti array biasa. Ketika mendeklarasikan sebuah variabel berstruktur data array list, kita tidak perlu mendefinisikan ukuran (size) atau dimensi nya di awal. Tidak seperti array yang sifat sizenya statis, size dari array list bisa berubah secara dinamis setiap saat seiring bertambah dan berkurangnya data di dalam array list.

Penggunaan Reguler Expression di MySQL Untuk Mencari Angka di Data Bertipe String

Penggunaan reguler expression (regex) tidak hanya diterapkan dalam bahasa pemrograman saja, sebut saja PHP, Python, Java dll, akan tetapi regex juga dapat diterapkan di dalam DBMS, misalnya MySQL.

Pada artikel kali ini akan dibahas bagaimana memanfaatkan regex di MySQL untuk mencari data angka di dalam field bertipe data string. Sebagai contoh kasus, misalkan diberikan sebuah tabel data sebagai berikut:

Analisis Time Series Data NetCDF dengan Library Python FBProphet

Melalui artikel kali ini, saya akan mencoba mengupas tuntas sebuah metode dalam data science, yaitu analisis time series, menggunakan Python.

Seperti yang sudah diketahui secara umum bahwa untuk keperluan data science, Python telah menyediakan banyak sekali library, yang dengannya analisis data menjadi lebih mudah dan cepat. Tidak terkecuali analisis time series.

Artikel ini akan membahas tentang cara melakukan analisis time series menggunakan library FBProphet di Python. Analisis yang dilakukan meliputi prediksi data time series, mengetahui pola data trend mingguan, bulanan, dan tahunan. Sebagai dataset analisisnya, akan diambil data rata-rata temperatur harian di beberapa titik di asia di sepanjang tahun 2010, yang berformat netCDF.

PHP

Script Download File Google Drive dengan PHP

Tutorial ini merupakan kelanjutan dari tutorial sebelumnya tentang upload file ke Google Drive via Google API dengan PHP. Pada tutorial ini saya akan menjelaskan cara membuat script PHP untuk menampilkan list file yang ada di akun Google Drive kita, kemudian bisa mengunduhnya. Lagi-lagi untuk membuat script ini, dibutuhkan Google API.

Seperti halnya ketika membuat script upload file, untuk membuat script download file ini kita juga membutuhkan beberapa hal, yaitu:

  • OAuth Credential File
  • PHP Google API Client Module

Untuk mendapatkan kedua hal tersebut, bisa kembali membaca artikel sebelumnya.

Namun, khusus untuk membuat file OAuth Credential File, pada bagian Authorized redirect URIs kita perlu mendefinisikan URL yang baru. Misalkan dalam contoh ini, URL dari script untuk menampilkan file list Google Drive adalah ‘http://localhost/gdrive/list.php’.

Setelah mendapatkan OAuth Credential File dan library PHP Google API Client Module, selanjutnya kita mulai coding. Dimulai dari membuat script list.php terlebih dahulu untuk menampilkan file list yang ada di Google Drive kita.

list.php

<?php
session_start();
include 'vendor/autoload.php';

$client = new Google_Client();
$client->setAuthConfig("oauth-credentials2.json");
$client->addScope("https://www.googleapis.com/auth/drive");

// service yang akan digunakan adalah Google Drive
$service = new Google_Service_Drive($client);

// mengecek jika code auth sudah ada namun token access nya blm ada
if (isset($_GET['code'])) {
  // gunakan code auth untuk mendapatkan token accessnya
  $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
  // simpan token ke session
  $_SESSION['upload_token'] = $token;
}

// mengecek jika token access nya blm ada
if (empty($_SESSION['upload_token'])){
	// lakukan login via oauth dan mendapatkan code auth
	$authUrl = $client->createAuthUrl();
	header("Location:".$authUrl);

} else {
	// jika token access sudah ada

	// gunakan token access untuk mengakses layanan Google API service
	$client->setAccessToken($_SESSION['upload_token']);
	$client->getAccessToken();

	// membaca list file
	$results = $service->files->listFiles();

	// menampilkan list file
	echo "<ul>";
	foreach ($results->getFiles() as $file) {
		echo "<li><a href='download.php?code=".$_GET['code']."&id=".$file->getID()."'>".$file->getName()."</a></li>";
	}
	echo "</ul>";
}

?>

Secara umum mekanisme yang terjadi di atas sama seperti di proses upload file, yaitu:

  1. Proses login melalui Google OAuth.
    Dari proses ini akan didapatkan code authentication. Kode ini secara otomatis akan muncul di URL parameter setelah proses redirecting dari login Google ke URL ‘http://localhost/gdrive/list.php’.
  2. Mendapatkan Token Access dari Code Authetication.
    Setelah proses login sukses, berikutnya code authentication digunakan untuk mendapatkan token access. Token access ini nanti dipakai untuk mengakses layanan API Google Drive nya

Dari script list.php di atas, perintah getID() digunakan untuk menampilkan ID dari setiap file yang ada di Google Drive. ID ini nantinya akan digunakan sebagai acuan untuk mengunduh file. Adapun getName() digunakan untuk menampilkan nama file.

Khusus untuk proses downloadnya, nanti kita buat script terpisah yaitu download.php

download.php

<?php
session_start();
include 'vendor/autoload.php';

$client = new Google_Client();
$client->setAuthConfig("oauth-credentials2.json");
$client->addScope("https://www.googleapis.com/auth/drive");
$service = new Google_Service_Drive($client);

if (isset($_GET['code'])) {
  $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
  $_SESSION['upload_token'] = $token;
}

if (empty($_SESSION['upload_token'])){
	$authUrl = $client->createAuthUrl();
	header("Location:".$authUrl);

} else {

	$client->setAccessToken($_SESSION['upload_token']);
	$client->getAccessToken();

	// membaca file ID yang akan diunduh
	$fileid = $_GET['id'];

	// membaca data file di Google Drive berdasarkan ID
	$file = $service->files->get($fileid);
	// membaca mime type dari file
	$mime = $file->getMimeType();
	// membaca nama file
	$name = $file->getName();

	// membuat header file yang akan didownload, sesuai mimenya
	header("Content-Disposition: attachment; filename=".$name);
	header("Content-type: ".$mime);

	// membaca content isi file dan menampilkan content
	$content = $service->files->get($fileid, array("alt" => "media"));

	while (!$content->getBody()->eof()) {
		echo $content->getBody()->read(1024);
	}
}

?>

Kegunaan dari MIME Type dari script download di atas supaya file tersebut bisa diunduh melalui web browser.

Adapun perintah read(1024) digunakan untuk mengatur ukuran file yang diunduh, yaitu setiap 1.024 bytes. Proses unduhan ini diatur demikian supaya proses downloadnya optimal, yaitu dengan memotong-motong ukuran filenya.

Demikian tutorial ini saya buat, semoga bermanfaat. Selamat mencoba! 😀

Cara Install PySpark di Windows dan Menjalankannya Via Jupyter Notebook

Untuk keperluan Big Data Analytics, dan juga Machine Learning, dibutuhkan sebuah engine tangguh yang mampu mengolah data yang sangat besar. Salah satu engine yang saat ini cukup tangguh terhadap penanganan data yang sangat besar (big data) adalah Apache Spark.

Apache Spark adalah engine analitik yang bekerja berdasarkan parallel computation framework sehingga mampu melakukan komputasi dengan sangat cepat. Basis dari Apache Spark menggunakan Hadoop MapReduce namun telah dilakukan pengembangan. Selain itu, Apache Spark dapat dideploy ke dalam beberapa bahasa pemrograman, yaituL Java, Scala, Python, dan R

Dalam artikel kali ini, saya akan paparkan bagaimana melakukan instalasi PySpark (Apache Spark deployment untuk Python) di sistem operasi Windows (khususnya Windows 10), serta bagaimana menjalankan PySpark melalui Jupyter Notebook.

34567