Menghemat Waktu Mempelajari Python


Beberapa hari ini saya sedang belajar pemrograman Python. Kenapa saya belajar Python? Alasannya sederhana aja: Penasaran.

Temen2 dosen di grup wa dengan ramai bicarain, saya jadi tertarik. Setelah baca artikel yang bilang bahwa kuliah algoritma pemrograman di MIT untuk mahasiswa tingkat awal pake Python, saya makin tertarik. Ditambah lagi baca artikel yang bilang bahwa pemrograman yang cocok untuk data analysis opsinya adalah R atau Python, saya sangat tertarik! 😀

Nah berhubung saya pengennya cepet, maka setelah survey sana sini, tanya sana sini, alhasil saya belajar Python nya pake tools PyCharm Edu yg bisa didownload di sini.

Serupa tapi tak sama, ada PyCharm dan ada PyCharm Edu. PyCharm sendiri adalah IDE untuk Python, lisensinya ada yang berbayar dan ada yang gratis (untuk mahasiswa dan dosen gratis, asal punya email di domain akademik). Nah klo si PyCharm Edu fiturnya memang tidak selengkap PyCharm, tetapi PyCharm Edu dilengkapi 1 project yang namanya “Introduction to Python”. Di dalam project ini ada 50 source code singkat yang dilengkapi dengan tutorial singkat. Jadi dalam 1 source code, ada tutorial singkatnya (kanan) dan ada source code yang harus dimodif sebagai bahan latihan (tengah).

Yang paling menarik adalah, dengan mengklik 1 tombol di kanan atas kita bisa mengetahui apakah modifikasi yang kita lakukan sudah benar atau belum dan kita juga bisa memilih source code sesuai topik yang ingin dipelajari sekaligus mengecek progress pembelajaran kita (kiri).Total ada 50 latihan berupa source code singkat yang bisa dipelajari/dimodifikasi untuk latihan, progress pembelajaran dianggap sudah 100% jika ke-50 source code latihan itu sudah berhasil kita modifikasi dengan benar sesuai permintaan PyCharm Edu. Coba lihat screenshotnya di bawah ini.

pycharm edu

Saya merasa belajar Python dengan menggunakan PyCharm Edu ini ada plus minusnya. Keuntungannya adalah tidak bertele-tele, ada contoh, ada studi kasusnya, bisa langsung dipraktekkan dan dilihat hasilnya, jadi untuk saya, tidak membosankan. Nah kekurangannya mungkin belajar Python menggunakan PyCharm Edu ini kurang cocok buat yang belum punya dasar pemahaman terhadap konsep algoritma atau yang belum paham dengan struktur-struktur dalam pemrograman seperti pencabangan, looping, procedure/function dan sebagainya.

Gimana? tertarik belajar Python? PyCharm Edu bisa jadi salah satu alternatif belajar Python yang menyenangkan. Selamat belajar 🙂

[Sebelum dan Sesudah] Shutdown Database Oracle 12c


Sebelumnya laptop saya diinstal Oracle 11g Express Edition, tetapi karena saya merasa penasaran dengan Oracle 12c, saya memberanikan diri untuk beralih dari 11g ke 12c. Saya pun mendownload installernya dengan akun OTN saya, tidak tanggung-tanggung, 2.5GB ukuran installernya. Dengan memanfaatkan koneksi internet di kampus, proses downloadnya membutuhkan waktu sekitar 10 jam saja 😀

Dari beberapa opsi yang ditawarkan, saya memilih Enterprise Edition yang total ukuran file setelah instalasinya 6.8 GB (ngapain pilih yang Personal edition, nanggung, hahaha…). Proses instalasinya lumayan beda dengan 11g, dan membutuhkan waktu jauh lebih lama, sekitar 1.5 jam. Bagian terlamanya adalah saat initial configuration, sukses bikin saya dag dig dug. Alhamdulillah lancar, proses instalasi berhasil, tidak ada masalah.

Kemudian setelah beberapa kali restart komputer saya merasakan bahwa laptop saya sedikit kurang responsif ketimbang saat sebelum diinstal Oracle 12c. Kemudian saya iseng men-shutdown database Oracle 12c saya. Alhasil laptop saya kembali responsif seperti biasa. Sepertinya si Oracle 12c ini memang banyak menghabiskan resource di laptop saya, jadi saya buka task manager, saya buka tab performance, dan kemudian saya startup database Oracle 12c.

before shutdown

Wow! setelah startup maka terjadi lonjakan pengunaan resource. Utilitas CPU 22% dan penggunaan memory 3.55 GB, pantesan aja laptop saya jadi lemot. kemudian saya shutdown lagi database Oracle saya dan tampilan di task manager menjadi seperti ini:

after shutdown

Penggunaan resource nya turun drastis. Utilitas CPU 4% saja dan penggunaan memory pun hanya 1.98 GB, laptop saya pun gesit kembali 😀

Alhasil sejak saat itu, Oracle 12c di laptop saya selalu dalam keadaan shutdown, kecuali saat saya ingin menggunakannya barulah saya startup lagi 😀 Sama sekali gak ada niat untuk kembali ke 11g karena saya sangat pengen mempelajari Oracle 12c yang konon sarat fitur baru dan dioptimasi untuk cloud coumputing ini.

Jadi bagi yang masih ragu-ragu mau beralih ke 12c atau tidak, semoga tulisan saya ini bisa memberi gambaran tentang what’re you going to deal with, wakakak… Selamat belajar, semoga sukses 🙂

Picasa Picture Collage


Alma dan Ayah

Foto di atas adalah hasil keisengan saya siang ini. Saya kumpulkan beberapa foto saya dan Alma, kemudian setiap foto itu saya beri efek warna sephia, setelah itu saya satukan menjadi foto di atas. Saya menggunakan fitur “picture collage” yang ada di software Picasa.

Cara membuatnya sangat mudah, cukup pilih beberapa foto yang akan disatukan, kemudian klik menu Create –> Picture Collage. Setelah itu tinggal saya drag dan drop untuk mengatur susunan fotonya. Tiap foto juga bisa diperbesar atau diperkecil, bisa dimiringkan dan bisa diatur mana yang diletakkan di atas atau di bawah tumpukan. Untuk picture border nya sendiri saya pilih “plain white border” supaya batas antar tumpukan fotonya terlihat jelas. Setelah puas dengan susunan fotonya saya tinggal klik tombol create collage. Voila! sekarang foto ini saya pajang jadi cover photo di facebook saya 🙂

Oiya, Picasa yang saya gunakan adalah Picasa versi 3.9 yang bisa didownload di sini

Semoga bermanfaat dan selamat mencoba 🙂

Mengubah Nama Tabel dan Nama Kolom di Oracle


Saya pernah menemukan di kelas saya, seorang mahasiswa men-drop table nya dan meng-create table itu lagi dari awal hanya karena salah memberi nama tabelnya. Pernah juga seorang mahasiswa saya men-drop sebuah kolom kemudian meng-add kolom itu lagi dengan alasan yang kurang lebih sama; salah memberi nama. What a big effort.

Well, saya sih sebetulnya merasa bangga dengan kegigihan dan kreativitas mereka 😎 tapi bagaimana kalau tabel itu sudah punya banyak data? Artinya mereka selain melakukan drop dan create table, mereka juga harus insert data lagi dari awal bukan? Belum lagi constraint-constraintnya, bisa bikin pusing tujuh keliling.

Sebetulnya ada cara yang lebih efisien jika kita ingin mengubah (me-rename) nama tabel di Oracle tanpa harus membuat ulang dari awal, tanpa harus kehilangan data dan tanpa harus membuat ulang constraint-constraintnya. Gunakan saja perintah RENAME.

RENAME nama_lama TO nama_baru;

rename

Yes, it is that simple 😀 Yang paling saya suka dari perintah ini adalah semua integrity constraint yang sudah kita buat sebelumnya akan tetap terjaga. Tidak perlu membuat ulang foreign key dan kawan-kawannya 😎 Perlu diingat bahwa perintah RENAME ini tidak bisa di-rollback.

Adapun untuk mengubah nama kolom caranya agak sedikit lebih panjang yaitu dengan menggunakan perintah ALTER TABLE dan klausa RENAME COLUMN

ALTER TABLE nama_tabel
RENAME COLUMN nama_lama TO nama_baru;

rename column

Sama halnya dengan perintah RENAME, perintah ALTER TABLE RENAME COLUMN ini juga tidak akan mempengaruhi data yang sudah ada, tidak mengubah tipe data dan tidak akan mengganggu constraint-constraint yang sudah ditetapkan sebelumnya 😎 Hanya saja perlu diperhatikan bahwa klausa RENAME COLUMN ini tidak bisa digunakan bersama klausa lain dan hanya bisa digunakan untuk mengubah nama 1 kolom saja. Well, dengan sedikit modifikasi sebetulnya kita bisa juga sih mengubah nama beberapa kolom sekaligus dengan satu perintah ALTER TABLE. Caranya yaitu dengan menggunakan substitution variable.

ALTER TABLE nama_tabel
RENAME COLUMN &nama_kolom_lama TO &nama_kolom_baru;

Hasilnya nanti akan seperti ini:

multi-column rename

Mudah bukan? Selamat mempraktekkan dan semoga bermanfaat 🙂

Tiga Alternatif Multiple Insert pada Oracle


Misalkan kita memiliki sebuah tabel Mata_Kuliah di Oracle dengan struktur seperti berikut:

desc mk

Bagi yang sudah terbiasa dengan MySQL, jika ingin meng-insert beberapa baris data sekaligus pada MySQL maka dapat dengan mudah menggunakan tanda koma sebagai pemisah antar record seperti contoh berikut ini:

insert into Mata_Kuliah values
('MI1133', 'Perancangan Basis Data', 3),
('MI3322', 'Migrasi Data', 2),
('TK1064', 'Basis Data', 3);

Sayangnya untuk melakukan multiple insert (menginsert beberapa baris data sekaligus) di Oracle kita tidak bisa menggunakan tanda koma seperti contoh MySQL di atas. Kalaupun kita mencoba melakukannya di Oracle maka kita akan mendapatkan peran error “command not properly ended” seperti yang ditampilkan pada gambar berikut:

command not properly ended

Sebetulnya ada beberapa alternatif cara untuk meng-insert beberapa barus data di Oracle, yaitu sebagai berikut:

  1. Menggunakan Table DUAL dan Klausa UNION
    Sebetulnya kita memanfaatkan fakta bahwa Oracle bisa melakukan insert data dari hasil sebuah query dan hasil dari beberapa query bisa digabungkan dengan klausa UNION.

    insert into Mata_Kuliah(
    select 'MI1133', 'Perancangan Basis Data', 3 FROM DUAL
    UNION
    select 'MI3322', 'Migrasi Data', 2 FROM DUAL
    UNION
    select 'TK1064', 'Basis Data', 3 FROM DUAL
    );
    

    dan berikut ini adalah screenshot hasilnya, berhasil meng-insert 3 baris data dengan 1 perintah insert:
    insert dengan dual dan union

  2. Menggunakan Statement INSERT ALL
    Perintah INSERT ALL sebetulnya adalah perintah Multi-Table insert, artinya bisa meng-insert beberapa baris data ke beberapa tabel YANG BERBEDA sekaligus. Namun teknik ini juga bisa digunakan untuk meng-insert beberapa baris data ke SATU TABEL sekaligus.

    insert all
    INTO Mata_Kuliah VALUES ('MI1133', 'Perancangan Basis Data', 3)
    INTO Mata_Kuliah VALUES ('MI3322', 'Migrasi Data', 2)
    INTO Mata_Kuliah VALUES ('TK1064', 'Basis Data', 3)
    Select 1 from DUAL;
    

    Berikut saya tampilkan screenshotnya, berhasil meng-insert tiga baris data sekaligus dengan satu perintah insert
    insert dengan insert all dan select dual

  3. Menggunakan Substitution Variable
    Nah, kalau yang ini adalah teknik yang paling mudah dan paling sederhana, yaitu kita menggunakan substitution variable. Oracle akan meminta input untuk setiap values dalam perintah insert yang diawali dengan ampersand alias tanda tanya (&). Jadi kita tinggal menempelkan ampersand di awal tiap values yang ada di perintah insert.
    Yang perlu diingat adalah jika tipe data kolom yang akan diisi values tersebut bukan numerik maka kita perlu mengapit values tersebut dengan tanda kutip (single quote). Setelah itu kita ulangi terus perintah tersebut dengan tanda slash (/) dan menginputkan setiap values yang diminta

    insert into Mata_Kuliah values ('&KodeMK', '&NamaMK', &SKS);
    

    Berikut adalah screenshotnya:
    insert dengan substitution variable

Sebetulnya masih ada cara lain yaitu dengan menggunakan Oracle SQL Loader tapi cara itu relatif lebih rumit karena banyak parameter yang harus dimasukkan, jadi mungkin akan saya bahas di posting yang terpisah.

Demikian, semoga bermanfaat 🙂

Scroll Lock pada Keyboard Lenovo Thinkpad


Kemarin siang saya sempat dibuat bingung oleh si Tuminah, laptop kesayangan saya yang selalu setia menemani di kantor. Masalahnya, saat saya mengerjakan sebuah spreadsheet di Excel, saya tidak bisa memindahkan kursor dengan menggunakan tombol panah seperti biasa. Biasanya kalau saya mau memindahkan kursor dari sel yang satu ke sel yang lain saya selalu menggunakan tombol panah. Siang itu kalau saya menekan tombol panah bawah maka layar spreadsheet saya akan scroll ke bawah, kalau saya menekan tombol tombol panah atas maka layar spreadsheet saya akan scroll ke atas, mirip dengan kalau kita menekan tombol panah pada aplikasi browser. Lama-lama saya perhatikan ternyata keanehan perilaku si tombol panah ini disebabkan oleh posisi Scroll Lock yang sedang ON, tapi saya lihat di keyboard si Tuminah tidak terlihat ada tombol bertuliskan Scroll Lock 😯 Alhasil siang itu saya terpaksa menggunakan mouse untuk memindahkan kursor dari dari satu sel ke sel yang lain 😥

Karena tidak nyaman dan penasaran, akhirnya saya gugling mencari tau di mana letak si tombol Scroll Lock yang hilang itu. Konyol sekali, setelah hampir 2 tahun make laptop ini (Lenovo Thinkpad Edge 11″ yang saya beri nama Tuminah), saya baru tau bahwa pengganti tombol scroll lock pada si Tuminah adalah Baca lebih lanjut

Copy Table vs Migrate Database


Misalkan kita memiliki sebuah database di MySQL yang ingin kita pindahkan ke Oracle maka dengan menggunakan tool Oracle SQLDeveloper, kita dapat menggunakan fitur Copy Table atau fitur Migrate Database. Masing-masing fitur memiliki kelebihan dan kekurangannya. Oleh karena itu pemilihan fitur yang digunakan harus disesuaikan dengan kebutuhan.

Copy Table adalah fitur di SQL Developer untuk menyalin sebuah tabel pada database MySQL ke database Oracle. untuk melakukan Copy Table cukup dengan membuat koneksi ke MySQL dengan menggunakan Oracle SQL Developer, kemudian klik kanan pada tabel yang akan dicopy, lalu pilih “Copy Table”

Ada beberapa hal yang perlu dikonfigurasi pada fitur Copy Table: Baca lebih lanjut