Cara Import file berukuran besar ke Mysql

Import dan load data ke dalam database adalah hal yang sering dilakukan. Jika file memiliki ukuran kecil, maka tidak akan terjadi masalah. Namun jika file yang kita upload berukuran besar dan melebihi batas maksimal yang bisa diupload, maka hal itu akan menjadi masalah.
biasanya akan nampak error seperti berikut ini :

Warning : POST Content-Length of 400192024 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

Saya akan share tentang cara-cara agar kita bisa mengimport file berukuran besar ke dalam Mysql.

Ada dua cara yang dapat dilakukan :

1) Mengubah konfigurasi pada php.ini
2) Menggunakan utility untuk memecah-mecah file sebelum diupload. seperti BigDump.
3) Memecah file secara manual lalu mengupload file-filenya satu per satu(not recommended)

Saya hanya akan menjelaskan tentang cara yang pertama dan kedua. Cara yang ketiga bukanlah hal yang baik dilakukan karena akan membutuhkan banyak waktu.

1)  Cara mengubah konfigurasi pada php.ini
Pertama buka php.ini (jika anda menggunakan localhost, carilah di folder instalan web server anda).
  • Di dalam file tersebut ada banyak sekali variable konfigurasi. Yang perlu kita perhatikan hanya upload_max_filesize, memory_limit, dan post_max_size. Ubah nilai default pada upload_max_file sesuai dengan ukuran file yang akan kita upload. contoh : upload_max_filesize = 400M
  • Ubah nilai default post_max_size dan memory_limit lebih besar dari ukuran upload_max_filesize.
  • Save php.ini yang telah diubah dan restart kembali webserver.

2) Cara menggunakan BigDump
Untuk detail tentang cara menggunakan BigDump, dapat dilihat disini.

Setelah mendownload script dari website BigDump, bukalah file tersebut dan ubah variabel-variabel berikut sesuai dengan kebutuhan anda. 

$db_server   = 'localhost';
$db_name     = 'articles';
$db_username = 'root';
$db_password = ''; 

nilai-nilai diatas adalah contoh, silahakan ganti nilai variabel-variabel diatas sesuai dengan yang anda butuhkan. lalu save.

Upload file tadi ke dalam webserver dan bukalah melalui browser.
contoh : localhost/tes/bigdump.php

Pilih file berukuran besar yang akan diimport dan tunggu prosesnya selesai.
BigDump akan memecah-mecah file yang berukuran besar tadi secara otomatis sehingga kita tidak perlu melakukannya secara manual.

Pengantar UML ( Unified Modeling Language )

Salah satu dari tahapan SDLC atau software development life cycle, adalah desain. Desain bertujuan agar software yang akan dibuat dapat memenuhi kebutuhan user dan handal. Oleh karena itu, desain menjadi tahapan penting dalam proses pembuatan software. Dalam mendesain software, kita perlu mentransformasikan kebutuhan user, baik secara fungsional maupun non fungsional ke dalam model.
Model adalah sebuah abstraksi dari hal nyata. Model merupakan penyederhanaan dari sistem yang sebenarnya sehingga desain dari sebuah sistem dapat dimengerti oleh pihak lain. Untuk memodelkan sesuatu, tentu diperlukan bahasa pemodelan. Bahasa pemodelan dapat berupa pseudo-code, code, gambar, diagram, atau deskripsi yang menggambarkan sebuah sistem. Disinilah UML berperan sebagai bahasa pemodelan.
Unified modeling language atau UML, adalah bahasa pemodelan standar dalam bidang software engineering yang digunakan untuk menggambarkan desain dari sebuah software dan sistem. 
Pertanyaannya adalah, "Mengapa harus menggunakan UML?". Jawabannya adalah untuk menghindari ambiguitas, penggunaan kata yang terlalu banyak dan detail yang tidak penting (jika pemodelan menggunakan kode maupun pseudocode) sehingga menyebabkan kesalahpahaman.
Pemodelan menggunakan UML memiliki keuntungan, yaitu : 
- UML adalah bahasa formal. Setiap elemen dari UML memiliki makna tersendiri sehingga tidak akan terjadi kesalahpahaman.
- UML singkat / ringkas. UML memiliki notasi yang jelas dan tidak berbelit-belit.
- UML komprehensif atau menyeluruh. UML dapat menggambarkan aspek-aspek penting dalam sistem.
- UML dapat menghandle sistem yang besar maupun kecil.
- UML memiliki banyak pengguna. Sehingga tersedia banyak tutorial tentang cara penggunaannya.
- UML adalah bahasa standar. Sehingga UML tidak terikat dengan produk tertentu.

Berikut merupakan daftar diagram UML dan penjelasannya :

- Use Case : Menggambarkan tentang interaksi antara sistem dan pengguna atau sistem lain. Sangat berguna untuk memetakan requirement atau kebutuhan dari suatu sistem.
- Activity : Menggambarkan tentang aktivitas sekuensial maupun paralel dari sistem.
- Class : Mengambarkan class, tipe, interface dan hubungan antar ketiganya.
- Object : Menggambarkan instance objek dari class yang telah didefinisikan di class diagram.
- Sequence : Menggambarkan interaksi antar objek dimana urutan dari interaksi tersebut merupakan hal penting.
- Communication : Menggambarkan cara objek beriteraksi dan koneksi yang dibutuhkan untuk melakukan interaksi.
- Timing : Menggambarkan interaksi antar objek dimana waktu merupakan hal yang penting.
- Component : Menggambarkan komponen penting dalam sistem dan interface yang digunakan untuk saling berinteraksi.
- Package : Menggambarkan hirarki dari sekelompok class dan component.
- State Machine :  Menggambarkan status dari objek selama masa aktifnya dan event yang dapat merubah state dari objek tersebut.
- Deployment : Menggambarkan bagaimana sistem dideploy di dunia nyata.
Detail tentang diagram-diagram UML akan dijelaskan pada post-post berikutnya. :)


Secara umum, UML digunakan sebagai berikut :

UML sebagai sketsa
UML hanya digunakan untuk pembuatan sketsa yang menyampaikan poin-poin penting. 
UML sebagai blueprint
UML digunakan untuk menyediakan spesifikasi dari sistem menggunakan UML diagram. 
Diagram ini kemudian dapat digenerate menggunakan UML tool. Pendekatan ini umumnya berkaitan dengan software dan biasanya menggunakan forward atau reverse engineering untuk menjaga model tetap sinkron dengan kode.
UML sebagai bahasa pemrograman
UML digunakan langsung dari model menjadi executable code (tidak hanya sebagian code seperti pada forward engineering). Hal ini berarti setiap aspek detail dari sistem akan dimodelkan. Keuntungan dari pendekatan ini adalah model dapat digunakan untuk menggenerate code ke berbagai environtment. 

Pendekatan mana yang akan dipakai tergantung pada tipe aplikasi dan metode dalam proses pengembangan software yang digunakan (ex: waterfall, interation, dll).
Sebagai contoh, pada industri tertentu seperti kesehatan, projek software menggunakan pendekatan UML sebagai blueprint. Hal ini karena software harus berkualitas tinggi. Kualitas merupakan hal penting pada industri ini karena kesalahan kecil dapat menyebabkan efek yang fatal. 

Seperti yang telah disebutkan, metode dalam proses pengembangan software juga berpengaruh pada pendekatan yang akan digunakan dalam UML.
Berikut merupakan metode yang sering digunakan dalam pengembangan software :

Waterfall

Metode waterfall akan menperoleh requirement dari software pada awal project life cycle. (Analisis Kebutuhan->Desain->Implementasi->Testing->Deployment). Setelah desain selesai, software diimplementasikan (coding). Kekurangan dari metode ini adalah tidak dapat mengakomodasi perubahan requirement. Pendekatan yang digunakan bisa UML sebagai sketsa dan UML sebagai blueprint.

Iterative

Metode Iterative bertujuan untuk menutupi kekurangan dari metode waterfall dengan cara menerima perubahan requirement (jika diperlukan). Pendekatan yang digunakan bisa UML sebagai sekta dan UML sebagai blueprint.

Agile Methods

Metode Agile menggunakan iterasi dalam waktu yang sangat singkat dan bertujuan meminimalisir resiko. Agile method menggunakan pendekatan UML sebagai sketsa. 




Accelerated Learning Part I ( Bagaimana Cara Otak Bekerja )

Beberapa hari yang lalu saya mendapatkan e-book yang berjudul "Accelerated Learning" oleh Colin Rose. Buku ini menjelaskan tentang banyak hal yang berkaitan dengan otak kita dan bagaimana menggunakan potensi otak secara maksimal. Khususnya dalam proses belajar. 
Peneliti dari Jerman bernama Hermann Ebbinghaus melakukan eksperimen pada tahun 1879 hingga 1885. Dari eksperimen tersebut, disimpulkan bahwa jumlah waktu yang kita habiskan untuk belajar, sebanding dengan jumlah pengetahuan yang kita dapat. Dengan kata lain, semakin lama kita belajar, semakin banyak pula pengetahuan yang kita dapat. Ebbinghaus menamakan hal ini total time hypothesis. Hal ini pula yang menjadi dasar cara kita belajar. Belajar harus disertai dengan tekad kuat dan pengulangan secara terus menerus.
Buku tentang accelerated learning ini, secara garis besar membahas tentang bagaimana kita keluar dari total time hypothesis. Belajar dengan waktu minimal, namun dengan hasil maksimal.
Saya selalu tertarik dengan buku-buku tentang self-development. Maka dari itu, saya akan merangkum dan berbagi pengetahuan kepada anda. Semoga postingan ini bermanfaat bagi para pembaca :)
Sebelum membahas trik-trik dalam accelerated learning, ada baiknya kita mengetahui bagaimana cara otak kita bekerja.

Otak Manusia

Tahukah anda bahwa manusia hanya menggunakan kurang dari 4% potensi otaknya? Masih terdapat 96% potensi otak yang belum terpakai. Bisa dibayangkan bagaimana jika kita dapat menggunakan potensi otak secara maksimal. Hasilnya tidak hanya berpengaruh pada kecepatan belajar, tapi juga pengayaan pada seluruh aspek kehidupan.

Neuron

Rata-rata otak manusia terdiri dari 12-15 miliar sel-sel saraf. Di dalamnya terdapat sel-sel saraf otak atau disebut neuron. Kekuatan otak tergantung pada jumlah neuron dan jumlah koneksi antar neuron. Semakin otak kita dirangsang, maka koneksi antar neuron akan semakin banyak.
Neuron sendiri terdiri dari serat yang disebut axon. Axon dibungkus oleh lapisan lemak yang disebut myelin. Juga terdapat dendrite yang terlihat seperti serat yang bercabang-cabang. Secara garis besar, axon mentransmisikan impuls elektrik dan dendrit menerimanya. Dan pertemuan dimana dua sel saraf bertemu disebut synapse. Synapse adalah jarak yang sangat kecil antar dua sel saraf. Koneksi antar dua sel terjadi ketika zat kimia tertentu (neuro-transmitter) menjembatani synapse.



Otak kanan dan Otak kiri

Otak dibagi secara fisik menjadi dua bagian, Otak kanan dan otak kiri. Otak kanan mengontrol dan menerima rangsang dari bagian tubuh sebelah kiri dan sebaliknya.
Kedua bagian otak tersebut dihubungkan oleh jaringan yang sangat kompleks yang disebut corpus callosum. Kedua bagian otak tersebut juga memiliki fungsi yang berbeda. Otak kiri fokus pada bahasa, proses matematis, logika, urutan, analisis (hal-hal yang berbau akademis). Sedangkan otak kanan fokus pada musik, gambar, pola spasial, warna, dll.


Kedua bagian otak tersebut penting. Tidak mungkin kita hanya menggunakan otak kiri saja atau otak kanan saja. Potensi yang sebenarnya dapat diraih ketika otak kanan dan otak kiri digabungkan atau digunakan bersama. 
Leonardo da Vinci adalah salah satu contoh bukti potensi yang dapat diraih oleh seseorang ketika menggunakan kedua bagian otaknya secara maksimal. Leonardo da Vinci adalah seniman terkenal, ahli matematika, dan ilmuwan yang sukses pada masanya. Two-brain is always better than one.

The Triune Brain

Otak tidak hanya dibagi secara horizontal menjadi otak kanan dan kiri tetapi juga secara vertikal menjadi 3 bagian. Yaitu otak reptilia (brainstem), otak mamalia (Lymbic system) dan Neo Cortex.





Otak reptilia mengontrol respon naluriah manusia,  Otak mamalia mengontrol emosi, seks pusat kesenangan, dan Neo-Cortex mengontrol proses intelektual.
Semua perilaku yang kita miliki, merupakan interaksi antar ketiganya. Sebagai contoh, kepribadian kita ditentukan oleh interaksi antara otak mamalia dan neo-cortex. 
Para ilmuwan menyimpulkan bahwa kunci dari proses belajar yang efektif berada pada lymbic system. Karena dengan melibatkan emosi, adalah cara yang paling efektif untuk menciptakan perhatian dan memori. Sebagai contoh, kita tidak akan lupa bagaimana kita merasa sakit hati kepada seseorang yang telah menyakiti kita. Bahkan kita mungkin akan ingat seumur hidup.


Notes :

Belajar tidak terbatas oleh usia. Belajar merupakan proses abadi yang ditempuh manusia dari lahir hingga mati. Tetapi banyak dari kita percaya bahwa semakin kita tua, semakin sulit dalam belajar atau menguasai hal baru. Hal ini menimbulkan pertanyaan " Apakah kemampuan seseorang berkurang seiring dengan bertambahnya usia? ". Jawabannya adalah TIDAK. Yang menurun atau memburuk adalah tubuh. Setelah kita melewati usia 50 tahun ke atas, 50% manusia akan mengalami pengurangan supply oksigen ke seluruh tubuh karena arteri yang tersumbat oleh lemak. Hal tersebut dikarenakan otak sangat membutuhkan oksigen. Otak yang beratnya hanya 2% dari berat tubuh membutuhkan 20% supply oksigen tubuh. D.A Rappaport dalam "emotions and memory" menyimpulkan bahwa tingginya tekanan darah mempengaruhi hilangnya kemampuan mental. Dan ketika hipertensi dan tekanan darah menurun, fungsi otak kembali meningkat.
Oleh karena itu, mengontrol asupan oksigen tubuh dengan cara berolahraga sangatlah penting.

Sistem Pendukung Keputusan (Decision Support System)

Definisi Sistem Pendukung Keputusan (DSS)

"Suatu sistem yang bertujuan untuk membantu pembuat keputusan dalam kondisi keputusan yang kurang terstruktur"
Efraim  

"Sekumpulan  model dari prosedur untuk pemrosesan data dan penentuan / justifikasi dalam membantu manager untuk mengambil keputusan."
Gorry & Scott-Morton

"Sistem berbasis komputer yang dapat digunakan untuk membantu para pengambil keputusan untuk memecahkan masalah-masalah rumit yang mustahil dilakukan dengan kalkulasi manual melalui cara simulasi yang interaktif, dimana data dan model analisis sebagai komponen utama."
- Sprague & Carlson


Manfaat Sistem Pendukung Keputusan

1)Meningkatkan kemampuan pengambil keputusan dengan memberikan alternatif keputusan yang lebih banyak atau lebih baik.
2) Membantu untuk merumuskan masalah menurut keadaan yang sedang dihadapi
3) Menghemat waktu, tenaga dan biaya yang dibutuhkan untuk memecahkan masalah
4) Meningkatkan efektivitas dan efisiensi dalam pengambilan keputusan
5) Memperluas kemampuan pengambil keputusan dalam memproses data/informasi untuk pengambilan keputusan
6) Menghasilkan solusi lebih cepat dan dapat diandalkan
7) Sebagai stimulan dalam memahami persoalan
8) Memperkuat keyakinan pengambil keputusan terhadap keputusan yang diambilnya

Sejarah Munculnya Sistem Pendukung Keputusan

- Tahun 1950, Teori pengambilan keputusan organisasi dikembangkan di Carnegie Institute of Technology
- Tahun 1960, Implementasi DSS dalam bentuk sistem komputer interaktif dilakukan di Massachusetts Institute of Technology
- Tahun 1970, Konsep DSS menjadi area riset
- Tahun 1980, Telah dikembangkan executive information system (EIS), group decision support system (GDSS) dan organizational decision support system(ODSS) untuk single user berbasis model
- Tahun 1990, Dikembangkan data warehousing dan online analytical processing (OLAP)
- Tahun 2000, Dikembangkan aplikasi analitik berbasis web

Notes :

Sistem pendukung keputusan seringkali disalah artikan sebagai sistem pakar. Namun keduanya merupakan hal yang berbeda. Berikut Scope dari DSS dan sistem pakar :

Sistem Pakar : Input berupa informasi yang kemudian diolah menjadi informasi akhir. Sistem bersifat pasif, hanya mampu berpikir sesuai dengan pengetahuan dari pakar dan sistem dapat digunakan untuk menggantikan keberadaan seorang pakar.

Sistem Pendukung Keputusan : Input berupa informasi + Semua tipe data yang kemudian diolah menjadi grafik dan informasi. Sistem bersifat aktif, mampu berfikir out of the box, namun sebatas sebagai sistem pendukung keputusan saja dan tidak dapat meniadakan keputusan dari seorang pengambil keputusan. Inti dari DSS adalah choice atau pilihan.


Pengambilan Keputusan 

Suatu aktivitas untuk memberikan pedoman kepada orang atau organisasi dalam mengambil keputusan sekaligus memperbaiki proses pengambilan keputusan dalam kondisi tidak pasti.

Macam-macam Kondisi dalam Pengambilan Keputusan 

- Kondisi pasti (Decision under certainty) :
Kondisi dimana faktor-faktor yang mempengaruhi diketahui secara pasti ukuran / parameternya
Contoh : Seseorang akan memutuskan untuk membeli handphone dengan spesifikasi processor, RAM, harga, ukuran, camera yang telah diketahui.
- Kondisi Tidak Pasti (Decision under uncertainty):
Kondisi dimana faktor-faktor yang mempengaruhi tidak diketahui secara pasti ukuran /parameternya atau terdapat faktor yang berada diluar kemampuan pembuat keputusan.
Contoh : Seorang trader merencanakan melakukan pembelian / penjualan suatu mata uang dimana hal tersebut dipengaruhi oleh faktor-faktor yang sulit diramalkan seperti tingkat inflasi suatu mata uang, kondisi makro ekonomi dan situasi politik
- Kondisi Beresiko (Decision under risk) :
Kondisi dimana semua keputusan mengandung resiko. baik dalam kondisi pasti maupun tidak pasti sehingga kalkulasi dan pertimbangan resiko menjadi dasar yang penting
Contoh : Seorang rektor harus mengambil keputusan dalam melakukan re-organisasi unit Teknologi Informasi dan Komunikasi, hal ini memungkinkan adanya gangguan pada sistem TIK dan jika tidak dilakukan, unit ini menjadi Super Body.

Unsur-unsur pengambilan keputusan secara umum 

- Available Alternatives
Pengambil keputusan dihadapkan pada beberapa alternatif pilihan, keputusan diambil dengan memilih satu pilihan yang menguntungkan untuk suatu institusi atau organisasi.
- State of Nature
Unsur-unsur yang berada di luar kekuasaan sang pengambil keputusan. Misalnya : peraturan pemerintah, tingkah laku pesaing, naik turunnya tingkat inflasi
- Payoff / hasil
Hasil merupakan kombinasi antara alternatif-alternatif keputusan yang ada dengan state of nature.

Contoh Kasus :
Seseorang memutuskan untuk menginvestasikan uangnya pada suatu perusahaan.
Target Keputusan :
Keputusan yang diambil harus memberikan keuntungan

Available Alternatives :
Terdapat perusahaan A, B, C, D yang semuanya merupakan perusahaan bonafit

State of Nature :
Kondisi ekonomi suatu negara yang akan mempengaruhi keuntungan perusahaan-perusahaan tersebut

Payoff :
Kombinasi alternatif keputusan dengan state of nature. Sehingga menghasilkan perusahaan A yang lebih baik (contoh).