Minggu, 20 November 2011

BerdataBase Ria dengan Excel

UPACARA PEMBUKAAN
Seseorang ingin mengolah suatu daftar menjadi informasi dengan susunan, urutan dan terfilternya data sesuai keinginan. Problem seperti ini sering muncul: Tak pelak lagi ini adalah kerjaan "ber-database-ria" yg memang didukung oleh Excel. 
Dalam hal ini, ada “dalil” bahwa hendaknya ada semacam pemisahan tahap, yaitu tahap pengorganisasian data, dan tahap penyajian informasi. Walau pembacanya sudah bosan tetapi saya tidak bosan karena suatu posting di milis itu bersifat tulisan tunggal (bukan serial) yg bisa "gak nyambung" kalau suatu komponen pemahamannya dipotong begitu saja.
Urusan retrieving data, sudah banyak dicontohkan di internet, kasus per kasusengan rumus-rumus canggih, dan kadang dengan macro jitu. Tetapi urusan penyiapan dan pengorganisasian data-nya agak jarang disentuh. 


Kita lihat bahwa solusi yg diberikan seringnya berupa formula berdasarkan data /contoh data apa adanya meskipun tak jarang data yang ada sebetulnya belum memenuhi syarat untuk dapat disebut sebagai "Daftar Yang Baik". Ini bahkan menunjukkan bahwa jurus yg diperlihatkan sang pembuat solusi sudah berada di 'tingkat tinggi' karena terbukti dapat membuat solusi berdasarkan data yg kurang teratur. Ibarat pendekar SiauwLimPay kalo berantem tidak harus di lapangan nan rata berumput lembut, di ganasnya tebing jurang curam berkarang terjal pun jadi! 
Tetapi bagaimana pun juga, hampir dapat dipastikan bahwa: “Daftar yg kurang baik”: lebih terbatas kemungkinan diolahnya, dibanding dengan “Daftar yang baik”. Selain itu Daftar Yang Baik menjanjikan awetnya formula, terutama jika Daftar tsb ternyata merupakan daftar “transaksi” yaitu jenis daftar yg selalu dan selalu bertambah besar baik dilihat dari jumlah Rowsnya dan kadang-kadang Columns-nya. 
Coba kita renungi suatu Array Formula yg selalu sudah FIXED mencantumkan alamat-alamat Arraynya. Jika Daftarnya berkembang, maka tidak ada cara lain: kita harus selalu mengedit rumus-rumus array tsb jika ingin formula-nya menghasilkan result yg benar. 

BAGAIMANA MEMBUAT DAFTAR YANG BAIK?
Tidak semua apa yg tersaji atau yg kita tuliskan pada worksheet itu harus bernilai sebuah Daftar
Kata "Daftar" ini memang istilah resmi yg digunakan oleh Excel ( = List) yaitu merujuk ke pengertian: List adalah sekelompok baris dalam worksheet yg memuat data-data yg saling berhubungan, misal sebuah daftar Tagihan ataupun daftar Nama dan Nomor Telpon Pelanggan. Sebuah Daftar dapat dimanfaatkan sebagai "database" di mana baris-baris adalah RECORDS dan kolom-kolom adalah FIELDS. Baris pertama dalam sebuah List harus berupa label / Judul Kolom-kolomnya(List = A series of worksheet rows that contain related data, such as an invoice database or a set of client names and phone numbers. A list can be used as a database, in which rows are records and columns are fields. The first row of the list has labels for the columns).
Sebetulnya kalau sudah  serius “main-main database” ada beberapa hal yg harusnya sudah kita “pegang” dulu, antara lain pengertian & konsep mengenai “Database” itu sendiri, selain beberapa hal mendasar semisal: Entitas (entity), Atribute, DataValue, Field, Record/Tuple, Relation, File, DBMS, dsb. Tetapi untuk sekedar  Daftar sederhana, hal-hal tsb dapat kita lupakan dulu.
Sebelum terlanjur salah tangkap, dalam bekerja dengan worksheet kita tidak harus membuat Daftar / "database". Worksheet dapat kita perlakukan semau kita, misal sekedar untuk menulis dokumen, sekedar scratch / oret-oretan, daftar-daftar yg tidak dimasudkan untuk diolah lebih lanjut, dan sebagainya. Sebuah Daftar atau "database" (yang baik) baru kita perlukan bila kita menginginkan ada pengolahan lebih lanjut berdasarkan data-data dalam Daftar / "database" tersebut.
Di Excel telah disediakan fitur untuk membuat Daftar / "database", yaitu dengan ditambahkannya menu LIST pada menu utama Data ( Data > List > Create List ). Sangat terasa bahwa Excel terbaru pun masih mempertahankan kata LIST, bukan "database", karena database memang bukan sekedar Daftar yg baik saja. Definisi database menyangkut hal yg lebih luas termasuk tersedianya piranti untuk mengelola datanya. 
Menu baru ini memang membebaskan kita dari kewajiban “menghafal aturan” bagaimana cara membuat Daftar Yg Baik plus beberapa kemudahan lain. Yah namanya kan versi lebih baru, ada beberapa enhancing yg memang sudah kita rindukan. Kontrasnya: ada pula beberapa peningkatan yg bahkan di versi lamanya pun: belum pernah kita sentuh.
Untuk membuat Daftar yg baik memang ada beberapa hal yg perlu diperhatikan dan (kalau perlu) dipatuhi:

Pengorganisasian Daftar
  • Buatlah / gunakan hanya satu Daftar untuk setiap worksheet, hindari menggunakan lebih satu Daftar di setiap satu worksheet. Ini ada hubungannya dengan fitur manajemen daftar (misal pemfilteran) yg setiap kali penggunaan hanya dapat diberlakukan terdadap satu Daftar.
  • Tuliskan item yg sejenis pada satu kolom. Rancanglah suatu Daftar sehingga item yg sejenis di semua baris ada di kolom yang sama. Misal dalam daftar Nama dan  Nomor Telepon, terdiri dari dua kolom;  kolom1 berisi hanya nama-nama, dan kolom2 berisi hanya nomor-nomor telpon. Tetapi bila dilihat per baris harus tetap tercermin hubungan bahwa si A nomor telponnya adalah sekian-sekian-sekian. (Selama ini kita sudah berperilaku seperti itu, cuma ndak sadar bahwa ini termasuk ‘rules of game’-nya).
  • Jaga agar Daftar tsb terpisah dari data lain.  Paling tidak ada sebuah baris kosong atau kolom kosong untuk memisahkan Daftar dari data lain yg memang kita kehendaki bukan termasuk dalam Daftar tsb. Dengan cara ini Excel akan dapat lebih mudah dalam mendeteksi suatu Daftar ketika kita akan memberlakukan operasi pengurutan, pemfilteran dsb.
  • Tempatkan (bila ada) data lain yg penting / kritis di ATAS atau di BAWAH Daftar. Hindari penempatkan  data-penting-lain di sebelah kiri atau kanan dari Daftar, karena akan dapat ikut menjadi tersembunyi bila ada operasi pemfilteran. Tempat “paling aman” bagi “DataLain” adalah posisi diagonal dari Daftar utama, yaitu cells yg tidak sekolom maupun tidak sebaris dengan Daftar.
  • Saat membuat Daftar jangan ada Baris atau Kolom yg tersembunyi. Yakinkan dulu bahwa semua Baris dan Kolom dalam status terdisplay. Gunakan menu Format > Row/Colum > Unhide. Dalam keadaan ada Baris / Kolom tersembunyi, kemungkinan bisa terjadi terhapusnya data secara tidak sengaja, atau bahkan munculnya data kembar yg tidak perlu.
Bentuk Daftar
  • Gunakan Baris Pertama dalam Daftar sebagai Judul-Judul Kolom (Label /Field Name). Excel akan menggunakan Label ini untuk menciptakan Report dan mengorganisasikan data. Fungsi-fungsi Database juga akan mendasarkan 'kriteria-kriteria'nya dari Judul Kolom tsb. Gunakan Font, Perataan (Alignment), Format Warna Latar (pattern), Border ataupun Huruf Kapital terhadap Judul-Judul Kolom. Ini dalam rangka membedakan format Judul dengan format data yg ada didalam Daftar secara visual. Sebelum menuliskan Judulnya, formatlah terlebih dahulu cel-celnya dengan format Text.
  • Antara baris Judul dengan baris Data jangan diberi antara misal dengan sebuah baris kosong atau baris yg berisi karakter dash (-) atau (=). Bila diinginkan sebuah garis, lebih baik kita buat dengan memformat Judul dengan border. 
  • Jangan ada baris kosong maupun kolom kosong di dalam Daftar (bedakan dengan pengertian cell kosong di antara data). Ini ada hubungannya dengan Excel dalam mendeteksi batas daerah Daftar. VBA macro pun akan sangat diuntungkan oleh dua aturan terakhir ini, antara lain: dapat-diberlakukannya property CurrentRegion untuk mengakui seluruh Daftar hanya dengan mengetahui salah satu Cell-nya saja. Kita sering melihat contoh data dari suatu kasus: setiap baris data diseling oleh baris kosong. Rupanya baris kosong tersebut dibuat dalam rangka “memperindah tampilan”  atau memikirkan bentuk Informasi pada saat dilihat-lihat atau dicetak (that is = “penyajian informasi”), yg sebetulnya bisa dicapai dengan mengatur “Row Height”. 
  • Jangan mengetikkan Spasi SEBELUM maupun SESUDAH data. Spasi extra itu nantinya akan mempengaruhi hasil pemfilteran, pengurutan mau pun pencarian data. Harus kita sadari bahwa Excel itu di sisi lain memang tolol, karena tidak menganggap SAMA: “UDIN” dengan “spasiUDIN” maupun “UDINspasi” .Keinginan menjauhkan data dari batas kiri cell dapat dipenuhi dengan memanfaatkan fitur Indentifikasi  (menu Format > Cells > Alignment > Horizontal > naikkan nilai "Indent" yg semula 0 menjadi 1 atau 2 sesuai kebutuhan).
  • Aturlah fitur "Extend List Format & Formula". Fitur ini dapat di-set (On/Off) dari menu Tools > Options > Tab: Edit > CheckBox "Extend List Format & Formula". Bila fitur ini dihidupkan (dengan memberi tanda checked/centrang pada chekBoxnya) maka bila setidaknya ada 3 baris terakhir dari lima baris records dengan format dan formula tertentu, maka penambahan records di bawahnya akan menyebabkan baris tsb menjadi otomatis terformat seperti format baris di atasnya. Kolom/Field yg seharusnya berisi formula juga akan otomatis terCopy formula seperti yg telah ada di atasnya. Ini berarti: kita TIDAK PERLU memformat baris-baris kosong serta TIDAK PERLU mengisi cell-cell di kolom tertentu dengan formula pada saat records belum sampai ke baris tersebut (Hal ini sering terlihat pada contoh-contoh data yg dikirim ke milis: dalam rows yg masih kosong ternyata sudah "disiapkan" ratusan baris berisi formula, padahal seharusnya tidak perlu). Keuntungan yg kita peroleh dari fitur ini adalah: volume size file bisa menjadi lebih kecil, serta kegesitan Excel dalam menerima perubahan isi  juga menjadi relatif lebih baik (karena tidak dibebani ratusan bahkan ribuan formula yang masih menghasilkan data blank di baris-baris yg memang belum berisi "data").
  • Jangan me-merged  (menyatukan beberapa) cells menjadi satu cell, dalam Judul kolom maupun data dalam Daftar. Merged-Cells hanya baik dibuat dalam worksheet yg tujuannya untuk dilihat-lihat (sebagai informasi) saja, bukan untuk diolah lebih lanjut. Judul Kolom akan sering menjadi sebuah "Kriteria" ataupun “Cell Rujukan” dalam suatu formula. Kriteria sulit dibuat jika harus merujuk ke merged-cells. Rujukan ke suatu cell juga gagal bila cell yg akan dirujuk ternyata tidak dapat diakses karena sudah di-merged dengan cells lain. Sebagai pengganti merging cell (jika masih memikirkan soal tampilan pada Daftar) sekali-sekali cobalah menu: Format > Cells > Alignment > Horizontal > Center Accros Selection.
  • Sebaiknya tidak memformat Records (cell-cell data) dengan format yang aneh-aneh. Format cara tampilnya Angka (number) dan format tampilnya Tanggal memang hampir menjadi suatu keharusan, dan ini tidak menjadi masalah. Tetapi format text (style berbagai size, type dan warna Font, serta backround yg hanya bertujuan demi penampilan) pada data yg dimaksudkan sebagai Daftar, hampir tidak ada gunanya. Akan lebih sederhana dan kelihatan kokoh bila kita biarkan dalam format standar saja. Ingat bahwa data yg sedang dibicarakan ini akan dipergunakan hanya sebagai pangkalan data. Kecuali bila Anda memang ingin menampilkan Daftar tsb juga sekaligus sebagai penyajian informasi.

PENGGUNAAN DAFTAR SEBAGAI DATABASE

Di Microsft Excel kita dapat dengan gampang memanfaatkan sebuah Daftar sebagai sebuah database. Pada saat kita memberlakukan "database task"  misalnya Pencarian, Pengurutan (sorting) ataupun SubTotaling data, Excel secara otomatis memperlakukan Daftar sebagai Database. Selama ber-database-ria itu Excel mengorganisasikan data dengan memanfaatkan elemen-elemen:
·     Kolom-kolom dalam Daftar dianggap sebagai Fields dalam Database
·     Judul-judul kolom dianggap sebagai Nama Fields dalam Database
·     Baris-baris dalam Daftar dianggap sebagai Records dalam database.
DATA FORM ADALAH “PASANGAN YG BAIK” BAGI “DAFTAR YG BAIK”:
"Data Form" adalah sebuah DialogBox yang dapat dimunculkan dgn menu  Data > Form;  sebelumnya di sheet harus sudah terselect/blok sebuah Daftar paling tidak di seluruh judul Kolom PLUS satu baris data. 
Dengan DialogBox tersebut kita akan dimanjakan dengan penampilan data dalam satu Record/baris lengkap, tampil dalam bentuk Form, dengan setiap Field berada di satu TextBox.  Data Form di Excel mampu menampilkan maksimal 32 Field setiap kali menampilkan 1 record/ baris data.
Dengan Data Form, kita mendapat kemudahan & kenyamanan dalam:
·     Menambahkan Records/Baris baru
·     Mencari Records berdasarkan Kriteria (Kriteria-Kriteria) yg kita tentukan
·     Meng-edit Records / Baris data
·     Menghapus Records / Baris dara
Bila kurang puas dengan tampilan 'built-in' Data Form, kita masih diberi keleluasaan membuat dialogBox buatan sendiri, yaitu dengan "UserForm" melalui VBEditor. Konsekuensinya hanya harus membuat sendiri fitur-fiturnya dengan code bahasa VBA Excel.

DATABASE FUNCTIONS MENANTI ANDA.
Bila kita telah punya sebuah DAFTAR, kita dapat memanfaatkan Fungsi-Fungsi worksheet yg memang dikhususkan untuk database. Di Excel telah ada: tak kurang dari puluhan Fungsi yg termasuk Kategori Fungsi Database, dengan ciri khasnya dimulai dengan huruf D dan dengan syntax kembar-nya:
DAVERAGE;  DCOUNT
DCOUNTA;  DGET
DMAX;  DMIN
DPRODUCT;  DSTDEV
DSTDEVP;  DSUM
DVAR;  DVARP

FORMULA, MACRO, QUERY dan TOOL LAIN untuk MENYAJIKAN INFORMASI BERDASARKAN DAFTAR
Selain memudahkan penggunaan Data Form dan Database Functions, Daftar yg telah dibuat dengan baik juga akan memudahkan proses Penyajian Informasi dengan cara-cara lain
Cara-Cara Lain di bawah ini akan dapat memenuhi janji-janji seperti yang akan disebutkan di bawah, dengan satu syarat: “bentuk Daftar”nya juga harus sudah bersifat umum/normal, sehingga ketika Daftar harus berkembang, “Bentuk Daftar”nya TIDAK berubah, Ini memang prinsip & tujuan utama dalam mencipta sebuah daftar, yang  agaknya terlalu dipanjang-lebarkan pada subCaptions di atas.
  • Formula-Formula akan lebih pendek dan berkurang kerumitannya. Tingkat kesulitan menciptakan formula: menurun, yang artinya akan lebih banyak "orang biasa" (tidak termasuk: “InsanBiasa”) dapat membuat formulanya. 
  • Demikian juga dengan pembuatan macro (bila diperlukan) untuk menyajikan informasi. Coding macronya lebih sederhana, lebih singkat, lebih mudah dibuat, lebih berlaku umum (tidak perlu modifikasi walaupun data berkembang).
  • Hanya Daftar yang baik lah yang dapat dipanggil (diolah lebih lanjut) dengan QUERY. Dengan Microsoft Query yg sudah integrated pada Excel, kita dapat membuat Worksheet baru berdasarkan Daftar yg telah kita miliki itu. Worksheet baru akan berupa Daftar yg sesuai dengan keinginan kita, Kolom mana saja yg akan di"ambil", Record dengan Kriteria apa saja yang akan “disertakan. Para penggemar SQL tentu sangat menikmati sepotong puisi seperti ini :  select * from Anggota where Nama like ‘%tono%’ . SQL (Structured Query Language) telah menjadi bahasa standar untuk berhubungan dengan database tak peduli apapun jenis database-filenya / aplikasi pembuatnya, termasuk Daftar yg dibuat dengan Excel (sekali lagi: asal Daftarnya memenuhi syarat sebagai database).
  • Tanyakan kepada rekan-rekan lain yg sering bekerja dengan Pivot Table / Pivot Chart, apakah bisa memberlakukan "Pivot Table" ataupun "Group & Outline" pada data di worksheet yg TIDAK terorganisir sebagai Daftar? Jawabannya pasti bukan hal yang mengejutkan lagi.
  • Selain itu, bila kita juga sebagai penggemar MS Access ataupun aplikasi RDBMS lain (database beneran), semisal FoxPro, Oracle, Informix, dsb, kita akan tersenyum lebar alias tidak bersungut-sungut bila diserahi Daftar yang baik (ex Excel Worksheet buatan kita tadi) untuk diolah lebih lanjut dengan aplikasi RDBMS kesayangan itu, karena Daftar tsb telah memenuhi syarat sebagai sebuah Table.



UPACARA PENUTUP
Excel memang termasyhur karena keluwesannya untuk dapat digunakan membantu pekerjaan setiap orang dengan masing-masing scope keperluannya, sehingga setiap orang memandangnya dari sudut keperluan masing-masing dan mengerjakan dengan caranya sendiri. Memang harus begitu. Namun apabila kita telah sampai ke titik penyusunan data yang akan diolah lebih lanjut, kayaknya kita harus belajar memenuhi aturannya. Bukan untuk siapa-siapa, melainkan untuk diri kita sendiri, yaitu kenyamanan pada tahap-tahap berikutnya yg telah menunggu kita…

dikutip dari Mbak Ayu Siti Vi di milis XL-Mania.



Artikel Terkait:

2 komentar:

Anonim mengatakan...

Akan lebih smart kalau kutipan sambil menyebutkan URL sumbernya, bila ada.
(jadi pembaca merasa diberi hak/kemudahan untuk melongok sendiri sumbernya)
btw, terima kasih..

Haeruddin, S.Pd mengatakan...

terima kasih telah mengingatkan. Sumber sudah diberi Link.