SlideShare a Scribd company logo
1 of 22
Download to read offline
Membuat Sliding window menggunakan MDI Window
untuk digunakan menjadi Hamburger Menu Style atau Waffle Menu
Oleh :
zulmach@pbdev.id
PART 1 : KONSEP
Saat ini sangat umum suatu aplikasi memiliki tampilan dengan menu utama tersembunyi walaupun
banyak kontra yang menyatakan bahwa hamburger menu style tidak efektif untuk menunjukkan
bahwa fitur-fitur dari suatu aplikasi tersembunyi dalam suatu laci (drawer). Namun disisi lain, bagi
pengguna yang sudah terbiasa menggunakan aplikasi dan menggunakan nya untuk pekerjaan sehari-
hari, keberadaan menu yang tersembunyi memberikan ruang yang lapang untuk menampilkan apa
yang sedang dikerjakan pada satu layar penuh.
Berikut konsep Hamburger Menu style dan implementasinya dengan PowerBuilder.
1. MDI Style, dalam konsep ini jenis window yang digunakan adalah MDI style, dipilih dengan
beberapa alasan antara lain, komunikasi antar object yang mudah, dapat tampil seperti
Single Page Application, dimana semua window akan muncul dalam MDI workspace,
kemudian jika di deploy ke Appeon Web, MDI akan berada di dalam browser dan tidak
seperti SDI window yang ditampilkan diluar browser seolah-olah hamya seperti desktop
application yang dipanggil melalui browser, sedangkan jika window ditampilkan didalam
browser ia akan tampak seperti halnya halaman web.
2. Layout object, lalu untuk memudahkan memahami konsep dalam model sliding menu ini,
berikut beberapa definisi yang perlu di ketahui :
a. Aplikasi menggunakan model MDI (Multiple Document Interface) sebagai Frame
Window yang akan berfungsi sebagai container dan module loader
b. Sliding Menu merupakan Sheet Window yang akan di gerakkan oleh timer object
c. Semua fungsi dan cara pemanggilan akan disematkan pada window object sehingga
tidak diperlukan scripting yang rumit.
Berikut gambaran struktur layout object nya :
3. Object yang dibutuhkan, seperti gambaran konsep layout diatas maka berikut adalah daftar
object yang akan digunakan dalam model framework sliding window, dengan asumsi sudah
mempunya workspace (misalnya pbsliding.pbw) dan target application object (pbsliding)
No. Nama Object Jenis Catatan
1 w_frame Window object, tipe MDI Frame yang akan berfungsi
sebagai container
2 m_frame Menu object Wajib ada untuk window
bertipe MDI
3 w_sheet Window object, tipe pop up,
no border, no title bar
Akan digunakans sebagai
ancestor
4 t_slide w_sheet Timing object Dibuat sebagai window object,
lebih fleksibel dibanding
menggunakan timer event
5 m_sheet Menu object inherit dari
m_frame untuk disematkan
pada w_sheet
Memungkinkan untuk
mengaktifkan shortcut
keyboard untuk akses menu
item
6 u_titlebar Standar datawindow user
object yang
diletakkan sebagai title bar di
window sheet
7 dwo_titlebar Datawindow object untuk
u_titlebar
8 w_home Window object yang di
inherit dari w_sheet
w_home akan menjadi concrete
object sebagai contoh modul
yang dapat digunakan sebagai
entri point
9 w_feature Window object yang di
inherit dari w_sheet
w_feature akan menjadi
concrete object sebagai contoh
modul yang akan di panggil
melalui sliding menu window
10 w_slidingmenu Window object yang di
inherit dari w_sheet
Window ini yang akan menjadi
contoh sliding menu
Pada pembuatan konsep framework ini kita akan menggunakan PowerBuilder Versi 11.5. dan berikut
beberapa hal lain yang digunakan selain powerbuilder.
1. Gambar Icon
Gambar dan ikon yang digunakan diambil dari icon library gratis yang dapat anda akses
melalui https://icons8.com/ yang bisa kita download aplikasi Pichon nya
2. Font, dan font yang digunakan diambil dari https://www.fontsquirrel.com/fonts/roboto
namun perlu diingat bahwa penggunaan font tidak akan berfungsi di mobile, di web dapat
difungsikan jika pc user juga menginstall font yang sama.
3. Referensi Warna, Referensi warna diambil dari https://www.materialui.co/colors Pada web
ini anda bisa langsung klik warna yang anda inginkan, dan di clipboard anda sudah tercopy
code warna nya jika anda memilih tipe code warna RGB maka yang akan dicopy dalam
format RGB(xxx,xxx,xxx)
PART 2 : MEMBUAT OBJECT BAGIAN PERTAMA
Setelah memahami konsep di atas dan mengetahui object yang diperlukan, selanjutnya adalah
membuat , Langkah-langkah dalam pembuatan sliding window dapat diikuti dalam uraian dibawah
ini :
1. Buat Workspace dan Target yang dibutuhkan
2. Lalu buat object yang dibutuhkan, yang pertama adalah m_frame, object menu yang akan
disematkan pada w_frame. Caranya dari menu FILE kita pilih NEW, Pilih Tab PB Object dan
pilih item MENU
1
2
Dan edit sesuai kebutuhan, dan menu bar pada m_frame (dalam hal ini adalah FILE) dibuat
visible=false agar window tidak menampilkan menu seperti biasanya. Namun menu yang
tersembunyi ini dapat tetap memfungsikan shortcut key nya.
3. Kemudian kita membuat window object untuk tipe MDI yang akan dijadikan sebagai frame
window, langkahnya seperti tadi dari menu FILE pilih NEW dari tab PB OBJECT pilih item
WINDOW, lalu sematkan menu, pilih WindowType : MDI
2
3
4
1
2
4. Buat menu m_sheet inherit dari m_frame untuk disematkan pada w_sheet yang akan dibuat
berikut nya.
5. Buat satu window object w_sheet dengan m_sheet sebagai menu, lalu pilih WindowType
popup uncheck border dan uncheck titlebar, hal ini akan memungkinkan MDI Sheet tampil
secara penuh tanpa title bar
1
2
3
Masih dalam window painter w_sheet kita tambahkan timing object dengan memilih menu
insert >> object >> timing. Kemudian ganti nama nya menjadi t_slide, lalu simpan
PART 3 : MEMBUAT OBJECT BAGIAN KEDUA
6. Buat satu datawindow object external dengan satu column title dengan tipe string(50) yang
akan kita gunakan sebagai pengganti titlebar pada window sheet.
Setelah finish dan tercreate datawindow objectnya, select All control lalu hapus
Pada band detail, Buat satu compute field c_modules dengan expression :
bitmap(“modules.png”) untuk menampilkan gambar hamburger icon dan satu lagi c_close
dengan expression bitmap(“close.png”) untuk icon close window, lalu tempatkan column
titletext untuk menampilkan judul modul.
Pada band header buat satu rectangle r_width yang akan digunakan sebagai referensi posisi
dan ukuran titiletext column dan close icon computed field, dengan mengatur expression
dari masing-masiing control.
Pada tab Data, klik kanan untuk ShareData lalu insert satu row untuk menampilkan row yang
sama pada pada tampilan preview.
Berikut tampilan datawindow title nya
Untuk mengatur warna band detail, digunakan dw expression pada properti background
color sebagai berikut :
1
2
3
Untuk mengatur posisi x compute field icon close c_close digunakan expression sebagai
berikut :
Sedangkan untuk titletext column pengaturan width nya dibuat dalam expression seperti
dibawah ini :
Sehingga dari hasil expression tersebut akan dihasilkan efek, ketika r_width kita ubah-ubah
lebarnya, maka posisi titletext column dan compute c_close akan menyesuaikan diri. Ukuran
lebar r_width nanti nya akan diatur saat window parent nya mengalami perubahan ukuran
(resize) dan isi datawindow akan mengikuti pengaturan tersebut tanpa script satu persatu.
Jangan lupa kembalikan ukuran tinggi band header menjadi 0 untuk menyembunyikan isi nya
sehingga tampilan datawindow hanya detail saja yang muncul. Simpan dengan nama
dwo_titlebar
1
2
3
3
1
2
Dengan mengubah
ukuran r_width
maka posisi
titletext dan
c_close ikut
berubah
7. Kemudian kita akan membuat satu standar userobject yaitu datawindow control, yang akan
digunakan sebagai container dwo_titlebar yang tadi sudah kita buat.
Create new standar visual user object, pilih tipe datawindow
Isikan datawindow object nya dwo_titlebar, uncheck border dan uncheck semua scroll
properties
Lalu buat satu mapped user event ue_mouseup untuk menangkap mouse up, dengan tujuan
sebelum user melepas mouse (atau mengangkat jari jika menggunakan touch screen, atau
setelah deploy menjadi mobile app) letakkan script disini ketimbang meletakkan nya di click
event, user event ini di map ke system event ID pbm_dwnlbuttonup
Lalu simpan dengan nama u_titlebar
1
2
3
4
5
8. Lalu tempatkan u_titlebar pada window w_sheet lalu simpan, anda bisa lakukan selagi
berada di window painter w_sheet lakukan drag u_titlebar dari system tree, lalu ganti
namanya dari dw_1 menjadi dw_title lalu jangan lupa simpan
9. Object berikutnya di inherit dari w_sheet lalu simpan menjadi w_home
Tambahkan text untuk membedakan nya dengan window lain. Dan simpan
1
2
10. Kemudian kita akan membuat window w_feature yang juga akan inherit dari w_sheet
tambahkan juga text untuk membedakan nya dengan window lainnya, lalu simpan
11. Satu object berikut nya ada w_slidingmenu yang kita inherit dari w_sheet yang digunakan
sebagai menu untuk mengakses home dan feature, untuk contoh ini kita tambahkan dua
command button untuk membuka window dan mengatur ukuran lebarnya mengikuti lebar
menu yang kita inginkan.
Nah kita sudah membuat semua object yang dibutuhkan, selanjutnya kita akan menambahkan script
yang dibutuhkan untuk membuat sliding window nya.
PART 4 : MENAMBAHKAN SCRIPT BAGIAN PERTAMA
Dalam menuliskan script untuk model sliding window ini ada beberapa kaidah yang diuraikan
sebagai berikut :
1. Sebagian besar script dituliskan pada user event
2. Window w_frame akan menghandle fungsi umum
3. Komunikasi antar object menggunakan message object
Selanjutnya kita akan mulai dengan menuliskan script pada masing-masing object.
1
2
3
1. Application Object : pbsliding, sebagai entri point, kita akan membuka window w_frame dari
event open dan menuliskan script nya seperti dibawah ini
2. Buat instance variabel pada w_sheet sebagai berikut :
Ib_sliding akan digunakan untuk menentukan apakah window akan di animasi kan saat
dibuka, ib_maximize diberikan false jika ukuran window akan ditampilkan tidak penuh
(misalnya w_slidingmenu hanya ditampilkan sesuai ukuran lebarnya), kemudian simpan
deklarasi instance variable ini
3. Lalu pada object u_titlebar kita akan buat beberapa script yang dimulai dengan membuat
instance variabel bertipe window dengan nama iw_parent, yang akan digunakan sebagai
varibel rujukan pada window dimana ia di letakkan.
Lalu buat satu user defined function yang akan mengisi variabel tersebut, caranya buka tab
Function list, lalu klik kanan pada daftar function nya pilih ADD
1
2
1
1
Isikan nama function, kemudian argumen type pilih window, argumen name isi dengan
aw_parent, lalu tuliskan scriptnya seperti berikut :
Kemudian pada event yang sudah kita buat sebelumnya yaitu ue_mouseup, kita tuliskan
script sebagai berikut :
Script tersebut akan menangani mouseup pada icon module untuk membuka w_slidingmenu
dan icon close untuk menutup window dengan memanggil deactivate event
4. Selanjutnya sebelum membuat script untuk w_sheet menjadi sliding window, berikut
beberapa logika pemrograman yang akan dbuat :
1
3
1
2
2
a. Window w_sheet akan memiliki pilihan apakah akan dibuka dan ditampilkan dengan
digerakkan bergeser oleh timer atau tidak. Maka akan kita buatkan instance variabel
bertipe boolean IB_SLIDING yang jika TRUE maka akan dianimasikan (sliding) dan jika
FALSE maka langsung dibuka
b. Sliding masuk dan keluar dapat dilakukan KE empat arah : UP, DOWN, LEFT, RIGHT,
untuk ini akan dibuatkan instance variable dengan tipe string IS_DIRIN dan ISDIROUT
c. Pada saat open w_sheet akan di tempatkan diluar workspace area (mdi_1 control )
Catatan : jika anda belum mengetahui mdi_1 adalah standar control berupa container
atau client area dimana sheet window yang di buka menggunakan opensheet akan
berada didalam client area mdi_1 tersebut. properti mdi_1 dapat diakses ketika window
anda bertipe MDI
d. Window w_sheet akan digerakkan oleh timer ke arah yang di tentukan.
e. Jika user melakukan klik pada object lain yang mengakibatkan w_sheet memicu event
deactivate maka w_sheet akan di gerakkan ke arah keluar dan di close
f. Window object w_sheet akan menerima parameter dengan tipe window yang disimpan
dalam instance variabel iw_caller dan digunakan sebagai rujukan pada window
pemanggil
buat satu user event ue_postopen untuk menempatkan script yang dijalankan setelah
window w_sheet di open, yaitu memanggil timer t_slide yang akan menggerakkan window
setelah terbuka setelah memeriksa apakah variable ib_sliding berkondisi TRUE
Selanjutnya tuliskan script pada event open sebagai berikut, menyimpan variabel window
pemanggil dalam iw_caller dan memanggil script yang ada pada event ue_postopen
1
Berikutnya pada event deactivate kita juga akan menuliskan script sebagai berikut :
Juga pada resize event untuk mengatur lebar dw_title dan isinya, juga memeriksa apakah
w_sliding menu sedang terbuka maka kita akan menutupnya
Selanjutnya pada event closequery ditambahkan script berikut ini
Lalu pada event activate tambahkan script ini untuk menutup w_slidingmenu ketika user
mengaktivasi atau mengganti fokus ke window lain
Lalu tuliskan script untuk timer event pada object t_slide untuk menangani gerakan bergeser
window seperti yang diinginkan, seperti ini lah scriptnya, hanya mengatur posisi x dan y saja
Dan pada control dw_title di event constructor kita tuliskan script untuk mengisi variabel
iw_parent dengan script sebagai berikut :
Lalu kita extend script pada event ue_mouseup di dw_title dengan script ini
PART 5 : MENAMBAHKAN SCRIPT BAGIAN KEDUA
5. Untuk window w_slidingmenu kita perlukan beberapa script khusus untuk perlakuan yang
berbeda, antara lain dengan script dibawah ini yang mengatur tinggi window w_slidingmenu
sama dengan tinggi window pemanggilnya
Kemudian pengaturan properti nya sebagai berikut, ib_maximize tidak kita centang karena
window ini akan ditampilkan dengan lebar sesuai ukuran, namun tingginya akan mengikuti
ukuran window yang membuka nya (lihat script diatas)
1
2
1 2
1
4
2
3
3
5
Dan sedikit script untuk merubah penampilan dengan mengganti judul window dan
warnanya, dengan script berikut di object dw_title pada event constructor, selain mengganti
judul window script ini juga mengganti icon pada compute field c_modules menjadi
“back.png” dan menyembunyikan compute field c_close
Oh ya, jangan lupa menulis script pada cb_home dan cb_feature untuk memanggil dan
membuka window window tersebut, pada event click masing-masing command button
seperti berikut :
Dengan sedikit tambahan untuk memeriksa apakah window w_home sudah dibuka, maka
saat membuka w_feature, kita tutup dulu w_home nya, dan demikian sebaliknya kita tutup
window w_feature jika terbuka sebelum membuka w_home
1
1
6. Pengaturan window home, window home tidak memerlukan script karena script sudah kita
tuliskan pada window ancestornya yaitu window w_sheet, dan kita hanya tinggal mengatur
nilai pada instance variabel yang pada w_home muncul sebagai properties
Tambahkan script pada dw_title untuk mengganti isi column menjadi nama Window yang
kita inginkan
7. Juga pada window w_feature sama dengan w_home, kita atur properti nya
1
2
3
4
1
2
3
4
5
5
Tambahkan script pada dw_title untuk mengganti isi column menjadi nama Window yang
kita inginkan
8. Kemudian pada window w_frame kita buat script untuk membuka window w_home
PART 6 : MELIHAT HASILNYA
Nah, jika semua langkah sudah kita lakukan dengan benar, maka hasil Run dengan menekan Ctrl+R
akan terlihat seperti dibawah ini :

More Related Content

What's hot

Pemrogaman Visual Basic.NET (Modul 2)
Pemrogaman Visual Basic.NET (Modul 2)Pemrogaman Visual Basic.NET (Modul 2)
Pemrogaman Visual Basic.NET (Modul 2)
Materi Kuliah Online
 
Laporan tugas akhir
Laporan tugas akhirLaporan tugas akhir
Laporan tugas akhir
ahmadranddy
 
Visual basic materi pembelajaran dasar
Visual basic materi pembelajaran dasarVisual basic materi pembelajaran dasar
Visual basic materi pembelajaran dasar
muhammad nainuridho
 
Mengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basicMengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basic
Firdaus MKom
 
Pemrograman akuntansi visual basic finish
Pemrograman akuntansi visual basic finishPemrograman akuntansi visual basic finish
Pemrograman akuntansi visual basic finish
Tresna Jm
 
Visual basic 6 tutorial its 4
Visual basic 6 tutorial its 4Visual basic 6 tutorial its 4
Visual basic 6 tutorial its 4
Renhard Manurung
 
7 hari-belajar-macromedia-flash
7 hari-belajar-macromedia-flash7 hari-belajar-macromedia-flash
7 hari-belajar-macromedia-flash
Ahmad Bashir
 
Tutorial membuat-kuis-flash
Tutorial membuat-kuis-flashTutorial membuat-kuis-flash
Tutorial membuat-kuis-flash
bass91
 
Modul Tutorial Membuat Class pada Visual Studio 2010
Modul Tutorial Membuat Class pada Visual Studio 2010Modul Tutorial Membuat Class pada Visual Studio 2010
Modul Tutorial Membuat Class pada Visual Studio 2010
Choi Melia
 
Belajar macromedia flash 8 bagi pemula
Belajar macromedia flash 8 bagi pemulaBelajar macromedia flash 8 bagi pemula
Belajar macromedia flash 8 bagi pemula
Izza Anshory
 
Pertemuan 2 desain user interface
Pertemuan 2 desain user interfacePertemuan 2 desain user interface
Pertemuan 2 desain user interface
heriakj
 

What's hot (19)

Tutorial Visual Basic "Aplikasi Kasir"
Tutorial Visual Basic "Aplikasi Kasir"Tutorial Visual Basic "Aplikasi Kasir"
Tutorial Visual Basic "Aplikasi Kasir"
 
M2t1
M2t1M2t1
M2t1
 
My modul visual basic 6.0
My modul visual basic 6.0My modul visual basic 6.0
My modul visual basic 6.0
 
Tutorial Android Template Aplikasi Edukasi
Tutorial Android Template Aplikasi EdukasiTutorial Android Template Aplikasi Edukasi
Tutorial Android Template Aplikasi Edukasi
 
Pemrogaman Visual Basic.NET (Modul 2)
Pemrogaman Visual Basic.NET (Modul 2)Pemrogaman Visual Basic.NET (Modul 2)
Pemrogaman Visual Basic.NET (Modul 2)
 
Laporan tugas akhir
Laporan tugas akhirLaporan tugas akhir
Laporan tugas akhir
 
E book vb.net+mysql(cara cepat)
E book vb.net+mysql(cara cepat)E book vb.net+mysql(cara cepat)
E book vb.net+mysql(cara cepat)
 
Visual basic materi pembelajaran dasar
Visual basic materi pembelajaran dasarVisual basic materi pembelajaran dasar
Visual basic materi pembelajaran dasar
 
Mengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basicMengenal format tanggal dalam visual basic
Mengenal format tanggal dalam visual basic
 
Pemrograman akuntansi visual basic finish
Pemrograman akuntansi visual basic finishPemrograman akuntansi visual basic finish
Pemrograman akuntansi visual basic finish
 
Pemanfaatan crystal report 8,5 pada VB6
Pemanfaatan crystal report 8,5 pada VB6Pemanfaatan crystal report 8,5 pada VB6
Pemanfaatan crystal report 8,5 pada VB6
 
Visual basic 6 tutorial its 4
Visual basic 6 tutorial its 4Visual basic 6 tutorial its 4
Visual basic 6 tutorial its 4
 
7 hari-belajar-macromedia-flash
7 hari-belajar-macromedia-flash7 hari-belajar-macromedia-flash
7 hari-belajar-macromedia-flash
 
Tutorial membuat-kuis-flash
Tutorial membuat-kuis-flashTutorial membuat-kuis-flash
Tutorial membuat-kuis-flash
 
Modul Tutorial Membuat Class pada Visual Studio 2010
Modul Tutorial Membuat Class pada Visual Studio 2010Modul Tutorial Membuat Class pada Visual Studio 2010
Modul Tutorial Membuat Class pada Visual Studio 2010
 
Membuat aplikasi database dengan windows form application
Membuat aplikasi database dengan windows form applicationMembuat aplikasi database dengan windows form application
Membuat aplikasi database dengan windows form application
 
Belajar macromedia flash 8 bagi pemula
Belajar macromedia flash 8 bagi pemulaBelajar macromedia flash 8 bagi pemula
Belajar macromedia flash 8 bagi pemula
 
Dasar pemrograman visual basic
Dasar pemrograman visual basicDasar pemrograman visual basic
Dasar pemrograman visual basic
 
Pertemuan 2 desain user interface
Pertemuan 2 desain user interfacePertemuan 2 desain user interface
Pertemuan 2 desain user interface
 

Similar to Membuat left side menu hamburger style

Laporan tugas akhir
Laporan tugas akhirLaporan tugas akhir
Laporan tugas akhir
ahmadranddy
 
new Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfnew Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdf
rahmantoyuri
 
Pertemuan 4 alert dan toast
Pertemuan 4 alert dan toastPertemuan 4 alert dan toast
Pertemuan 4 alert dan toast
heriakj
 
Dasarpemrogramanvisualbasic
DasarpemrogramanvisualbasicDasarpemrogramanvisualbasic
Dasarpemrogramanvisualbasic
dhi her
 
Dasarpemrogramanvisualbasic
DasarpemrogramanvisualbasicDasarpemrogramanvisualbasic
Dasarpemrogramanvisualbasic
dhi her
 
Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0
Nurdin Al-Azies
 
Pemrograman visual basic
Pemrograman visual basicPemrograman visual basic
Pemrograman visual basic
ahmadranddy
 

Similar to Membuat left side menu hamburger style (20)

Laporan tugas akhir
Laporan tugas akhirLaporan tugas akhir
Laporan tugas akhir
 
[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop
 
Makalah Desain web menggunakan dreamweaver 8
Makalah Desain web menggunakan dreamweaver 8Makalah Desain web menggunakan dreamweaver 8
Makalah Desain web menggunakan dreamweaver 8
 
Modul Delphi ,buat pemula
Modul Delphi ,buat pemulaModul Delphi ,buat pemula
Modul Delphi ,buat pemula
 
Pengenalan vb
Pengenalan vbPengenalan vb
Pengenalan vb
 
new Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdfnew Chapter 2 - New Project Visual Studio C#.pdf
new Chapter 2 - New Project Visual Studio C#.pdf
 
Pertemuan 4 alert dan toast
Pertemuan 4 alert dan toastPertemuan 4 alert dan toast
Pertemuan 4 alert dan toast
 
MODUL_DREAMWEAVER_TIK_XII
MODUL_DREAMWEAVER_TIK_XIIMODUL_DREAMWEAVER_TIK_XII
MODUL_DREAMWEAVER_TIK_XII
 
Dasarpemrogramanvisualbasic
DasarpemrogramanvisualbasicDasarpemrogramanvisualbasic
Dasarpemrogramanvisualbasic
 
Dasarpemrogramanvisualbasic
DasarpemrogramanvisualbasicDasarpemrogramanvisualbasic
Dasarpemrogramanvisualbasic
 
Chapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek BaruChapter 02 - Pembuatan Projek Baru
Chapter 02 - Pembuatan Projek Baru
 
MODUL_FLASH_TIK_XI
MODUL_FLASH_TIK_XIMODUL_FLASH_TIK_XI
MODUL_FLASH_TIK_XI
 
Ms. Power Point 2007 Bab 1-3
Ms. Power Point 2007 Bab 1-3Ms. Power Point 2007 Bab 1-3
Ms. Power Point 2007 Bab 1-3
 
Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0Analisis dan Desain Objek dgn Visual FoxPro 8.0
Analisis dan Desain Objek dgn Visual FoxPro 8.0
 
Pemrograman Desktop VB
Pemrograman Desktop VBPemrograman Desktop VB
Pemrograman Desktop VB
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
Modul delphi
Modul delphiModul delphi
Modul delphi
 
Modul Intel XDK Workshop ver 1.0 Sept 2013 - Modul 4 - Pengembangan Aplikasi ...
Modul Intel XDK Workshop ver 1.0 Sept 2013 - Modul 4 - Pengembangan Aplikasi ...Modul Intel XDK Workshop ver 1.0 Sept 2013 - Modul 4 - Pengembangan Aplikasi ...
Modul Intel XDK Workshop ver 1.0 Sept 2013 - Modul 4 - Pengembangan Aplikasi ...
 
Pemrograman visual basic
Pemrograman visual basicPemrograman visual basic
Pemrograman visual basic
 

More from zulmach .

More from zulmach . (14)

PowerBuilder Short Logic : Loop
PowerBuilder Short Logic : LoopPowerBuilder Short Logic : Loop
PowerBuilder Short Logic : Loop
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programming
 
PowerBuilder Productive programming
PowerBuilder Productive programmingPowerBuilder Productive programming
PowerBuilder Productive programming
 
Cara memperkecil ukuran maksimum kapasitas VM Disk
Cara memperkecil ukuran maksimum kapasitas VM DiskCara memperkecil ukuran maksimum kapasitas VM Disk
Cara memperkecil ukuran maksimum kapasitas VM Disk
 
Cara print ke lokal printer dari remote any desk
Cara print ke lokal printer dari remote any deskCara print ke lokal printer dari remote any desk
Cara print ke lokal printer dari remote any desk
 
How to create sliding window hamburger menu style in Powerbuilder
How to create sliding window hamburger menu style in PowerbuilderHow to create sliding window hamburger menu style in Powerbuilder
How to create sliding window hamburger menu style in Powerbuilder
 
Tile Menu Using Datawindow Object
Tile Menu Using Datawindow ObjectTile Menu Using Datawindow Object
Tile Menu Using Datawindow Object
 
Sharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah SakitSharing Tentang Implementasi Sistem Rumah Sakit
Sharing Tentang Implementasi Sistem Rumah Sakit
 
#PowerBuilder #tile #menu using #Datawindow
#PowerBuilder #tile #menu using #Datawindow#PowerBuilder #tile #menu using #Datawindow
#PowerBuilder #tile #menu using #Datawindow
 
Creating Modern UI PowerBuilder Framework using native objects
Creating Modern UI PowerBuilder Framework using native objectsCreating Modern UI PowerBuilder Framework using native objects
Creating Modern UI PowerBuilder Framework using native objects
 
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application PlatformFastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
Fastest Path to Dekstop, Web and Mobile Enterprise Business Application Platform
 
Sistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakitSistem bisnis dan manajemen rumah sakit
Sistem bisnis dan manajemen rumah sakit
 
Sistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah SakitSistem Bisnis dan Manajemen Rumah Sakit
Sistem Bisnis dan Manajemen Rumah Sakit
 
PowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application DeploymentPowerBuilder 11 .Net Application Deployment
PowerBuilder 11 .Net Application Deployment
 

Membuat left side menu hamburger style

  • 1. Membuat Sliding window menggunakan MDI Window untuk digunakan menjadi Hamburger Menu Style atau Waffle Menu Oleh : zulmach@pbdev.id PART 1 : KONSEP Saat ini sangat umum suatu aplikasi memiliki tampilan dengan menu utama tersembunyi walaupun banyak kontra yang menyatakan bahwa hamburger menu style tidak efektif untuk menunjukkan bahwa fitur-fitur dari suatu aplikasi tersembunyi dalam suatu laci (drawer). Namun disisi lain, bagi pengguna yang sudah terbiasa menggunakan aplikasi dan menggunakan nya untuk pekerjaan sehari- hari, keberadaan menu yang tersembunyi memberikan ruang yang lapang untuk menampilkan apa yang sedang dikerjakan pada satu layar penuh. Berikut konsep Hamburger Menu style dan implementasinya dengan PowerBuilder. 1. MDI Style, dalam konsep ini jenis window yang digunakan adalah MDI style, dipilih dengan beberapa alasan antara lain, komunikasi antar object yang mudah, dapat tampil seperti Single Page Application, dimana semua window akan muncul dalam MDI workspace, kemudian jika di deploy ke Appeon Web, MDI akan berada di dalam browser dan tidak seperti SDI window yang ditampilkan diluar browser seolah-olah hamya seperti desktop application yang dipanggil melalui browser, sedangkan jika window ditampilkan didalam browser ia akan tampak seperti halnya halaman web. 2. Layout object, lalu untuk memudahkan memahami konsep dalam model sliding menu ini, berikut beberapa definisi yang perlu di ketahui : a. Aplikasi menggunakan model MDI (Multiple Document Interface) sebagai Frame Window yang akan berfungsi sebagai container dan module loader b. Sliding Menu merupakan Sheet Window yang akan di gerakkan oleh timer object c. Semua fungsi dan cara pemanggilan akan disematkan pada window object sehingga tidak diperlukan scripting yang rumit. Berikut gambaran struktur layout object nya :
  • 2. 3. Object yang dibutuhkan, seperti gambaran konsep layout diatas maka berikut adalah daftar object yang akan digunakan dalam model framework sliding window, dengan asumsi sudah mempunya workspace (misalnya pbsliding.pbw) dan target application object (pbsliding) No. Nama Object Jenis Catatan 1 w_frame Window object, tipe MDI Frame yang akan berfungsi sebagai container 2 m_frame Menu object Wajib ada untuk window bertipe MDI 3 w_sheet Window object, tipe pop up, no border, no title bar Akan digunakans sebagai ancestor 4 t_slide w_sheet Timing object Dibuat sebagai window object, lebih fleksibel dibanding menggunakan timer event 5 m_sheet Menu object inherit dari m_frame untuk disematkan pada w_sheet Memungkinkan untuk mengaktifkan shortcut keyboard untuk akses menu item 6 u_titlebar Standar datawindow user object yang diletakkan sebagai title bar di window sheet 7 dwo_titlebar Datawindow object untuk u_titlebar 8 w_home Window object yang di inherit dari w_sheet w_home akan menjadi concrete object sebagai contoh modul yang dapat digunakan sebagai entri point 9 w_feature Window object yang di inherit dari w_sheet w_feature akan menjadi concrete object sebagai contoh modul yang akan di panggil melalui sliding menu window 10 w_slidingmenu Window object yang di inherit dari w_sheet Window ini yang akan menjadi contoh sliding menu
  • 3. Pada pembuatan konsep framework ini kita akan menggunakan PowerBuilder Versi 11.5. dan berikut beberapa hal lain yang digunakan selain powerbuilder. 1. Gambar Icon Gambar dan ikon yang digunakan diambil dari icon library gratis yang dapat anda akses melalui https://icons8.com/ yang bisa kita download aplikasi Pichon nya 2. Font, dan font yang digunakan diambil dari https://www.fontsquirrel.com/fonts/roboto namun perlu diingat bahwa penggunaan font tidak akan berfungsi di mobile, di web dapat difungsikan jika pc user juga menginstall font yang sama.
  • 4. 3. Referensi Warna, Referensi warna diambil dari https://www.materialui.co/colors Pada web ini anda bisa langsung klik warna yang anda inginkan, dan di clipboard anda sudah tercopy code warna nya jika anda memilih tipe code warna RGB maka yang akan dicopy dalam format RGB(xxx,xxx,xxx) PART 2 : MEMBUAT OBJECT BAGIAN PERTAMA Setelah memahami konsep di atas dan mengetahui object yang diperlukan, selanjutnya adalah membuat , Langkah-langkah dalam pembuatan sliding window dapat diikuti dalam uraian dibawah ini : 1. Buat Workspace dan Target yang dibutuhkan 2. Lalu buat object yang dibutuhkan, yang pertama adalah m_frame, object menu yang akan disematkan pada w_frame. Caranya dari menu FILE kita pilih NEW, Pilih Tab PB Object dan pilih item MENU 1 2
  • 5. Dan edit sesuai kebutuhan, dan menu bar pada m_frame (dalam hal ini adalah FILE) dibuat visible=false agar window tidak menampilkan menu seperti biasanya. Namun menu yang tersembunyi ini dapat tetap memfungsikan shortcut key nya. 3. Kemudian kita membuat window object untuk tipe MDI yang akan dijadikan sebagai frame window, langkahnya seperti tadi dari menu FILE pilih NEW dari tab PB OBJECT pilih item WINDOW, lalu sematkan menu, pilih WindowType : MDI 2 3 4 1 2
  • 6. 4. Buat menu m_sheet inherit dari m_frame untuk disematkan pada w_sheet yang akan dibuat berikut nya. 5. Buat satu window object w_sheet dengan m_sheet sebagai menu, lalu pilih WindowType popup uncheck border dan uncheck titlebar, hal ini akan memungkinkan MDI Sheet tampil secara penuh tanpa title bar 1 2 3
  • 7. Masih dalam window painter w_sheet kita tambahkan timing object dengan memilih menu insert >> object >> timing. Kemudian ganti nama nya menjadi t_slide, lalu simpan PART 3 : MEMBUAT OBJECT BAGIAN KEDUA 6. Buat satu datawindow object external dengan satu column title dengan tipe string(50) yang akan kita gunakan sebagai pengganti titlebar pada window sheet.
  • 8. Setelah finish dan tercreate datawindow objectnya, select All control lalu hapus Pada band detail, Buat satu compute field c_modules dengan expression : bitmap(“modules.png”) untuk menampilkan gambar hamburger icon dan satu lagi c_close dengan expression bitmap(“close.png”) untuk icon close window, lalu tempatkan column titletext untuk menampilkan judul modul. Pada band header buat satu rectangle r_width yang akan digunakan sebagai referensi posisi dan ukuran titiletext column dan close icon computed field, dengan mengatur expression dari masing-masiing control.
  • 9. Pada tab Data, klik kanan untuk ShareData lalu insert satu row untuk menampilkan row yang sama pada pada tampilan preview. Berikut tampilan datawindow title nya Untuk mengatur warna band detail, digunakan dw expression pada properti background color sebagai berikut : 1 2 3
  • 10. Untuk mengatur posisi x compute field icon close c_close digunakan expression sebagai berikut : Sedangkan untuk titletext column pengaturan width nya dibuat dalam expression seperti dibawah ini : Sehingga dari hasil expression tersebut akan dihasilkan efek, ketika r_width kita ubah-ubah lebarnya, maka posisi titletext column dan compute c_close akan menyesuaikan diri. Ukuran lebar r_width nanti nya akan diatur saat window parent nya mengalami perubahan ukuran (resize) dan isi datawindow akan mengikuti pengaturan tersebut tanpa script satu persatu. Jangan lupa kembalikan ukuran tinggi band header menjadi 0 untuk menyembunyikan isi nya sehingga tampilan datawindow hanya detail saja yang muncul. Simpan dengan nama dwo_titlebar 1 2 3 3 1 2 Dengan mengubah ukuran r_width maka posisi titletext dan c_close ikut berubah
  • 11. 7. Kemudian kita akan membuat satu standar userobject yaitu datawindow control, yang akan digunakan sebagai container dwo_titlebar yang tadi sudah kita buat. Create new standar visual user object, pilih tipe datawindow Isikan datawindow object nya dwo_titlebar, uncheck border dan uncheck semua scroll properties Lalu buat satu mapped user event ue_mouseup untuk menangkap mouse up, dengan tujuan sebelum user melepas mouse (atau mengangkat jari jika menggunakan touch screen, atau setelah deploy menjadi mobile app) letakkan script disini ketimbang meletakkan nya di click event, user event ini di map ke system event ID pbm_dwnlbuttonup Lalu simpan dengan nama u_titlebar 1 2 3 4 5
  • 12. 8. Lalu tempatkan u_titlebar pada window w_sheet lalu simpan, anda bisa lakukan selagi berada di window painter w_sheet lakukan drag u_titlebar dari system tree, lalu ganti namanya dari dw_1 menjadi dw_title lalu jangan lupa simpan 9. Object berikutnya di inherit dari w_sheet lalu simpan menjadi w_home Tambahkan text untuk membedakan nya dengan window lain. Dan simpan 1 2
  • 13. 10. Kemudian kita akan membuat window w_feature yang juga akan inherit dari w_sheet tambahkan juga text untuk membedakan nya dengan window lainnya, lalu simpan 11. Satu object berikut nya ada w_slidingmenu yang kita inherit dari w_sheet yang digunakan sebagai menu untuk mengakses home dan feature, untuk contoh ini kita tambahkan dua command button untuk membuka window dan mengatur ukuran lebarnya mengikuti lebar menu yang kita inginkan. Nah kita sudah membuat semua object yang dibutuhkan, selanjutnya kita akan menambahkan script yang dibutuhkan untuk membuat sliding window nya. PART 4 : MENAMBAHKAN SCRIPT BAGIAN PERTAMA Dalam menuliskan script untuk model sliding window ini ada beberapa kaidah yang diuraikan sebagai berikut : 1. Sebagian besar script dituliskan pada user event 2. Window w_frame akan menghandle fungsi umum 3. Komunikasi antar object menggunakan message object Selanjutnya kita akan mulai dengan menuliskan script pada masing-masing object. 1 2 3
  • 14. 1. Application Object : pbsliding, sebagai entri point, kita akan membuka window w_frame dari event open dan menuliskan script nya seperti dibawah ini 2. Buat instance variabel pada w_sheet sebagai berikut : Ib_sliding akan digunakan untuk menentukan apakah window akan di animasi kan saat dibuka, ib_maximize diberikan false jika ukuran window akan ditampilkan tidak penuh (misalnya w_slidingmenu hanya ditampilkan sesuai ukuran lebarnya), kemudian simpan deklarasi instance variable ini 3. Lalu pada object u_titlebar kita akan buat beberapa script yang dimulai dengan membuat instance variabel bertipe window dengan nama iw_parent, yang akan digunakan sebagai varibel rujukan pada window dimana ia di letakkan. Lalu buat satu user defined function yang akan mengisi variabel tersebut, caranya buka tab Function list, lalu klik kanan pada daftar function nya pilih ADD 1 2 1 1
  • 15. Isikan nama function, kemudian argumen type pilih window, argumen name isi dengan aw_parent, lalu tuliskan scriptnya seperti berikut : Kemudian pada event yang sudah kita buat sebelumnya yaitu ue_mouseup, kita tuliskan script sebagai berikut : Script tersebut akan menangani mouseup pada icon module untuk membuka w_slidingmenu dan icon close untuk menutup window dengan memanggil deactivate event 4. Selanjutnya sebelum membuat script untuk w_sheet menjadi sliding window, berikut beberapa logika pemrograman yang akan dbuat : 1 3 1 2 2
  • 16. a. Window w_sheet akan memiliki pilihan apakah akan dibuka dan ditampilkan dengan digerakkan bergeser oleh timer atau tidak. Maka akan kita buatkan instance variabel bertipe boolean IB_SLIDING yang jika TRUE maka akan dianimasikan (sliding) dan jika FALSE maka langsung dibuka b. Sliding masuk dan keluar dapat dilakukan KE empat arah : UP, DOWN, LEFT, RIGHT, untuk ini akan dibuatkan instance variable dengan tipe string IS_DIRIN dan ISDIROUT c. Pada saat open w_sheet akan di tempatkan diluar workspace area (mdi_1 control ) Catatan : jika anda belum mengetahui mdi_1 adalah standar control berupa container atau client area dimana sheet window yang di buka menggunakan opensheet akan berada didalam client area mdi_1 tersebut. properti mdi_1 dapat diakses ketika window anda bertipe MDI d. Window w_sheet akan digerakkan oleh timer ke arah yang di tentukan. e. Jika user melakukan klik pada object lain yang mengakibatkan w_sheet memicu event deactivate maka w_sheet akan di gerakkan ke arah keluar dan di close f. Window object w_sheet akan menerima parameter dengan tipe window yang disimpan dalam instance variabel iw_caller dan digunakan sebagai rujukan pada window pemanggil buat satu user event ue_postopen untuk menempatkan script yang dijalankan setelah window w_sheet di open, yaitu memanggil timer t_slide yang akan menggerakkan window setelah terbuka setelah memeriksa apakah variable ib_sliding berkondisi TRUE Selanjutnya tuliskan script pada event open sebagai berikut, menyimpan variabel window pemanggil dalam iw_caller dan memanggil script yang ada pada event ue_postopen 1
  • 17. Berikutnya pada event deactivate kita juga akan menuliskan script sebagai berikut : Juga pada resize event untuk mengatur lebar dw_title dan isinya, juga memeriksa apakah w_sliding menu sedang terbuka maka kita akan menutupnya Selanjutnya pada event closequery ditambahkan script berikut ini Lalu pada event activate tambahkan script ini untuk menutup w_slidingmenu ketika user mengaktivasi atau mengganti fokus ke window lain
  • 18. Lalu tuliskan script untuk timer event pada object t_slide untuk menangani gerakan bergeser window seperti yang diinginkan, seperti ini lah scriptnya, hanya mengatur posisi x dan y saja
  • 19. Dan pada control dw_title di event constructor kita tuliskan script untuk mengisi variabel iw_parent dengan script sebagai berikut : Lalu kita extend script pada event ue_mouseup di dw_title dengan script ini PART 5 : MENAMBAHKAN SCRIPT BAGIAN KEDUA 5. Untuk window w_slidingmenu kita perlukan beberapa script khusus untuk perlakuan yang berbeda, antara lain dengan script dibawah ini yang mengatur tinggi window w_slidingmenu sama dengan tinggi window pemanggilnya Kemudian pengaturan properti nya sebagai berikut, ib_maximize tidak kita centang karena window ini akan ditampilkan dengan lebar sesuai ukuran, namun tingginya akan mengikuti ukuran window yang membuka nya (lihat script diatas) 1 2 1 2 1 4 2 3 3 5
  • 20. Dan sedikit script untuk merubah penampilan dengan mengganti judul window dan warnanya, dengan script berikut di object dw_title pada event constructor, selain mengganti judul window script ini juga mengganti icon pada compute field c_modules menjadi “back.png” dan menyembunyikan compute field c_close Oh ya, jangan lupa menulis script pada cb_home dan cb_feature untuk memanggil dan membuka window window tersebut, pada event click masing-masing command button seperti berikut : Dengan sedikit tambahan untuk memeriksa apakah window w_home sudah dibuka, maka saat membuka w_feature, kita tutup dulu w_home nya, dan demikian sebaliknya kita tutup window w_feature jika terbuka sebelum membuka w_home 1 1
  • 21. 6. Pengaturan window home, window home tidak memerlukan script karena script sudah kita tuliskan pada window ancestornya yaitu window w_sheet, dan kita hanya tinggal mengatur nilai pada instance variabel yang pada w_home muncul sebagai properties Tambahkan script pada dw_title untuk mengganti isi column menjadi nama Window yang kita inginkan 7. Juga pada window w_feature sama dengan w_home, kita atur properti nya 1 2 3 4 1 2 3 4 5 5
  • 22. Tambahkan script pada dw_title untuk mengganti isi column menjadi nama Window yang kita inginkan 8. Kemudian pada window w_frame kita buat script untuk membuka window w_home PART 6 : MELIHAT HASILNYA Nah, jika semua langkah sudah kita lakukan dengan benar, maka hasil Run dengan menekan Ctrl+R akan terlihat seperti dibawah ini :