Mainan Macro Yuk… (Part 2)

Beckham datang, jembatan KuKar ambrol, apa hubungannya? Nggak ada. Tulisan ini juga nggak ada hubungannya dengan kedua topik tersebut (biar dibahas sama ahlinya masing-masing), cuma sekadar ingin melanjutkan tulisan sebelumnya di Part 1 tentang macro Excel. Sudah lama ngantri sebenarnya, cuma karena masih kalah prioritas dengan topik launching buku dan training akhirnya ya baru sekarang bisa terbit…

Setelah sebelumnya bermain dengan function untuk membuat formula alias rumus sendiri, sekarang kita manfaatkan macro untuk membaca input dan menampilkan hasilnya pada sel Excel secara langsung (termasuk menghitungnya tentu saja). Jadi kalau yang dulu mesti tahu rumus atau formulanya, yang ini bisa langsung dipakai. Memang hampir sama dengan membuat perhitungan biasa di Excel (lewat link sel sana-sini plus rumus), bedanya di sini rumus perhitungannya tidak tampak di lembar/sheet-nya, karena hitungannya ada di VBE alias Visual Basic Editor. Eh… VBE? Apa itu ya? Kalau lupa atau belum tahu, buka saja Part 1 terdahulu… Kembali ke topik, jadi dengan memanfaatkan macro tampilan di sheet Excel bisa lebih ringkas, rapi dan bersih tampilannya, karena yang diperlukan hanya sel-sel untuk input, output, dan interface (misal tombol “HITUNG”) bila diperlukan. Bahkan, tampilan bisa dibuat lebih menarik dan profesional seolah-olah menjadi seperti memakai program/software sendiri.

Subyek contoh hitungannya sederhana saja, mencari reaksi tumpuan simple beam untuk variasi beban titik dan beban merata seperti gambar berikut :

Simple Beam

Untuk format sheet di Excel bisa memakai seperti di bawah ini (download juga contoh file di sini) :

Format Excel

Intinya, balok sederhana sendi-rol dibebani dengan beban titik jarak tertentu diukur dari tumpuan kiri (ada beberapa, dalam contoh ini dibatasi maksimum 4 buah, kalau mau lebih edit sendiri ya…) dan beban merata sepanjang bentangan tertentu, dengan reaksi di masing-masing tumpuan yang akan dihitung.

Input yang dperlukan adalah teks berwarna biru, sedangkan output (reaksi) teks dengan warna merah. Satuan ikut dimasukkan di sini, dengan input akan menyesuaikan secara otomatis lewat pemakaian rumus penggabungan karakter secara sederhana , contoh  =”Jarak (“&C4&”)”. Data beban titik yang diperlukan adalah besar beban dan jarak dari kiri, jumlah bisa 0-4 beban titik. Beban merata dimasukkan mulai jarak tertentu sampai ke jarak berikutnya, bisa sepanjang bentang atau hanya sebagian saja (atau tidak ada sama sekali juga bisa).

Untuk format input sampai di sini hanya memakai fasilitas dari Excel secara umum. Satu obyek yang juga perlu ditambahkan adalah tombol “HITUNG” di sebelah kanan bawah. Fungsinya? Ya setelah input sudah benar semua, silakan klik tombol tersebut agar reaksi dihitung dan ditampilkan di sel-sel output. Sebenarnya fungsi perintah mulai menghitung ini tidak harus diberikan melalui tombol (istilah kerennya command button), bisa juga berupa gambar kotak biasa, atau berdasar perubahan isi sel input otomatis menghitung langsung seperti halnya perhitungan dengan link sel secara biasa. Namun biar kelihatan lebih canggih, dipakai command button hehehe… Caranya?

Kalau di Excel versi 2007, klik pada tab Developer, lalu klik tombol Insert, lalu di bawah ActiveX Controls, pilih yang kelihatan seperti tombol (kiri atas). Kalau dilihat memang pilihannya ada banyak, tidak hanya tombol command button saja, misal check box, list box, dll. seperti membuat interface program.

Insert Button

Selanjutnya tinggal menggambar tombolnya, klik di tempat tertentu, sambil tetap menekan tombol mouse, geser (drag) ke arah diagonal sampai terbentuk kotak persegi panjang dan lepaskan.

Command Button

Perhatikan pada tab Developer, tombol Design Mode otomatis menjadi aktif. Artinya, obyek seperti tombol yang barusan dibuat tadi kalau diklik hanya untuk mengeditnya saja. Sedangkan jika tombol Design Mode tidak aktif, maka kalau tombol “CommandButton1” diklik perintah hitungan akan dijalankan.

Design Mode

Coba saja klik tombol “CommandButton1” saat Design Mode aktif, maka yang muncul adalah hanya bulatan kecil di sekeliling tombol untuk merubah ukuran tombol. Matikan Design Mode (klik pada Design Mode), lalu coba klik lagi pada tombol “CommandButton1”, maka akan tampak efek penekanan tombol seperti umunya pada interface suatu program. Tapi kok tidak terjadi apa-apa? Lha kan tombolnya juga belum di berikan perintah apa-apa… Nanti kita bereskan kok.

Judul tombolnya kok nggak keren begitu ya… Untuk mengganti judul atau nama yang tampak pada tombol (Design Mode dalam kondisi aktif), klik Properties pada tab Developer (akan muncul gambar berikut), lalu klik lagi pada tombol baru tadi.

Properties

Pada kotak Properties akan nampak data-data dari tombol yang baru dibuat tadi. Untuk mengganti judul tombol, klik pada baris Caption, lalu ketikkan nama atau judul yang diinginkan, misal “HITUNG” (di kotak yang sebelah kanan, tanpa tanda kutip), maka otomatis tulisan di tombol juga terganti. Selanjutnya kita ganti juga nama identitas si tombol tadi. Masih pada kotak Properties, pilih baris pertama / paling atas yaitu (Name) lalu ganti kotak di kananya dengan misal Cmd_Hitung. Jangan bingung, nama yang di sini (Cmd_Hitung) adalah untuk identitas nama tombolnya untuk keperluan membuat macro nanti, sedangkan nama/judul yang tadi (HITUNG) adalah untuk tampilan di tombolnya saja. Sebenarnya masih banyak property lain yang bisa diganti, misal jenis font, warna, dll. silakan coba-coba sendiri.

                                                Properties     Properties

Berikutnya, kita masuk ke tahap pembuatan macro untuk hitungannya. Klik tombol Visual Basic pada tab Developer, lalu akan muncul jendela Visual Basic Editor (VBE).

Selanjutnya di jendela VBE tinggal kita masukkan perintah macro hitungannya, untuk kali ini kita pakai prosedur “Sub” . Baris perintah dituliskan pada module. Buat dahulu module baru lewat menu Insert > Module. Kemudian pada layar kosong sebelah kanan, baru diketikkan perintah-perintahnya, dengan format seperti berikut :

Visual Basic Editor

Sub [nama] ([variabel])
                [perintah]
End Sub

Dalam contoh ini misal prosedur hitungan diberi nama “Analisis_Struktur”, maka penulisannya menjadi :

Sub Analisis_Struktur ()
                [perintah]
End Sub

Pada contoh ini variabel tidak kita definisikan dahulu sehingga hanya ditulis dengan “()”. Sebenarnya sebaiknya variabel ditulis juga sekaligus tipe datanya, misal L : byte, dst. agar lebih menghemat memori komputer saat perhitungan, namun agar contohnya tidak terlalu rumit maka tidak dicantumkan di sini (belajar sendiri ya…). Sekarang coba kita cermati baris-baris perintah hitungannya. Tahap pertama untuk pembacaan input dari sel di Excel, secara tipikal seperti berikut.

. . .
L = Range(“C6″).Value
. . .

Formatnya adalah variabel diikuti alamat sel. Di contoh ini L adalah nama variabel untuk panjang bentang simple beam, yang akan diisi oleh nilai hasil pembacaan sel C6. Demikian seterusnya untuk input-input lainnya. Jadi, alamat sel harus sesuai dengan variabelnya. Berikutnya, hitungan reaksi akibat beban, pertama dihitung reaksi dari beban titik.

. . .
R1 = (L – xP1) / L * P1
R1 = R1 + ((L – xP2) / L * P2)
. . .

R1 adalah reaksi untuk tumpuan kiri, yang pertama kali nilainya diisi oleh hitungan reaksi  dari beban pertama (P1) berdasar jaraknya dari kiri (xP1). Berikutnya, dihitung nilai reaksi dari beban P2 yang berjarak xP2, lalu hasilnya ditambahkan ke reaksi hasil hitungan sebelumnya. Demikian seterusnya sampai pada beban titik P4. Selanjutnya, dihitung reaksi akibat beban merata, sekaligus hasil reaksi akhir.

. . .
PM = W * (xW2 – xW1)
xW = xW1 + (xW2 – xW1) / 2
R1 = R1 + ((L – xW) / L * PM)
R2 = R2 + (xW / L * PM)
. . .

Pertama reaksi beban merata diekuivalensikan menjadi beban titik sebesar PM yaitu besar beban W dikalikan jaraknya (xW2xW1). Lokasi titik beban ekuivalensi ini (xW) akan berada di pertengahan bentangan beban merata: (xW2xW1) / 2, tinggal tambahkan dengan xW1 untuk mendapatkan jarak dari tumpuan kiri. Untuk reaksi final, maka hitungan reaksi akibat beban merata yang diekuivalensikan tadi tinggal ditambahkan pada reaksi R1 dan R2 sebelumnya seperti hitungan beban titik biasa. Terakhir, menuliskan atau meng-update data output reaksi di sel Excel.

. . .
Range(“C21″).Value = R1
Range(“C22″).Value = R2
. . .

Perintahnya berkebalikan dengan pembacaan input, yaitu alamat sel dahulu baru diikuti variabel yang sesuai. Nah, sampai di sini sudah selesai kan… Eh belum lho. Ingat, pertama tadi baru membuat tombol, kemudian menulis perintah macro, maka masih ada satu yang kurang yaitu menghubungkan antara perintah dengan aksi tombolnya.

Kalau tadi mengedit pada Module, sekarang beralih ke obyek “Sheet1 (MACRO-Reaksi)” (masih di jendela Visual Basic, dengan “MACRO-Reaksi” adalah nama sheet di contoh ini). Klik pada “Sheet1 (MACRO-Reaksi)” pada contoh ini, di bawah “Microsoft Excel Objects”.

Sheet Code

Untuk menuliskan perintah, klik pada kotak drop-down sebelah kiri atas jendela editor, lalu pilih pada nama identitas tombol yang telah diberikan di awal tadi (Cmd_Hitung), perhatikan pula kotak drop-down sebelah kanan aktif pada pilihan “Click”. Pada editor akan otomatis tertulis seperti berikut :

Sub Click

Private Sub Cmd_Hitung_Click()

End Sub

Pada baris di antara “Private Sub” dan “End Sub” dituliskan nama prosedur hitungan reaksi tadi, yaitu “Analisis_Struktur”, sehingga baris perintah keseluruhan menjadi :

Private Sub Cmd_Hitung_Click()
    Analisis_Struktur
End Sub

Nah kalau sudah begini, maka lengkap lah masakan macro kita. Tinggal kita cicipi saja rasanya… Coba kembali ke Excel, isikan input sesuai hati (tapi jangan aneh-aneh), oh ya non-aktifkan Design Mode pada tab Developer bila belum, lalu klik tombol “HITUNG”!

Silakan cross-check hasilnya dengan hitungan lain. Asyik kan… Selanjutnya silakan dikembangkan dan bayangkan sendiri bisa dipakai apa saja kemampuan macro Excel ini. Oh ya, sebagai pamungkas dari rangkaian bahasan macro Excel, tulisan terakhir akan menyajikan manipulasi obyek gambar memakai macro. Sampai jumpa di Part 3 !

Part 3

About these ads

7 responses to “Mainan Macro Yuk… (Part 2)

  1. Pingback: Mainan Macro Yuk… (Part 1) | The Web Logs of Purbo

  2. Pingback: Mainan Macro Yuk… (Part 3 – Habis) | The Web Logs of Purbo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s