Maret 16

Print Halaman dengan JQuery

Cerita dimulai saat seminggu yang lalu teman saya ada kesulitan dengan tugasnya. Dia disuruh buat web agar saat tekan tombol langsung tampil Print. Dikarenakan saat itu saya sedang banyak sekali tugas menumpuk, jadi saya belum sempat bantu saat itu. Sebagai gantinya, saya akan memberikan cara & contoh pada tulisan saya kali mengenai tugas teman saya tersebut. Tapi, terlebih dahulu teman-teman perlu download jquery pada link berikut dikarenakan saya akan menggunakan jquery pada tulisan ini :

https://jquery.com/download/

Untuk print area pada html, saya menggunakan library printThis. Teman-teman dapat download terlebih dahulu pada link berikut :

https://github.com/jasonday/printThis

Setelah semua persiapan selesai, saatnya kita mulai untuk pembuatan htmlnya. Berikut langkah-langkahnya :

  1. Buat sebuah halaman, misal saya namakan index.html. Masukkan kode html berikut :

2. Buat sebuah folder, beri nama js. Folder ini yang akan kita gunakan sebagai tempat untuk menaruh Jquery dan printThis.js yang telah teman-teman download tadi.

  1. Teman bisa langsung buka index.html tadi untuk melihat hasilnya. Akan tampil seperti berikut :

Print_Jquery

Apa yang terjadi saat tombol Print Area ditekan? Yang akan tercetak hanya area yang berada pada div dengan id printArea. Ini dikarenakan penggunaan fungsi printThis() yang kita gunakan dari library printThis.js. Teman-teman dapat mengkustomisasi area mana yang akan diprint dengan menggunakan id, class, dan macam-macam lainnya dalam area div, table, dan lainnya pula. Jadi tidak terbatas hanya id dan div saya.

Lalu apa yang terjadi saat tombol Print All ditekan? Yang akan tercetak adalah satu halaman penuh. Ini dikarenakan penggunaan perintah print() yang ada pada javascript. Perintah print() sebenarnya bukan merupakan perintah dari Jquery dikarenakan itu perintah javascript dasar. Lalu kenapa kita memerlukan jquery? Jquery di sini saya gunakan untuk mentrigger perintah click() pada tombol. Selain itu, printThis() yang teman-teman gunakan memerlukan Jquery sebagai library dasarnya.

Untuk kode lengkapnya, teman-teman dapat download pada link berikut :

https://drive.google.com/file/d/0B9_2JJSi4W6RYzZtUndIa3VySlU/view?usp=sharing

Mungkin sekian tulisan dari saya, mudah-mudahan bermanfaat buat teman-teman yang kesulitan dalam membuat perintah print. Terima kasih dan selamat beraktifitas. 😀

Januari 27

Membuat Menu Treeview dengan C#

Di hari yang cerah ini, waktunya saya untuk berbagi. Jadi ceritanya teman saya ada permasalahan dalam tasknya, dia disuruh untuk membuat menu dengan Treeview namun menu tersebut harus dinamis. Nah, di sinilah tantangannya. Saya pun ikut mencari cara untuk permasalahan ini. Dikarenakan dinamisnya dan menu-menu itu pun dapat memiliki anak-anak yang kita tidak tahu cabangnya sampai level berapa. Saya memikirkan untuk membuat sebuah fungsi rekursif untuk mengisi setip node anak pada TreeView ini. Apa itu fungsi rekursif? Fungsi rekursif merupakan sebuah fungsi yang memanggil dirinya sendiri. Di dalam fungsi tersebut diharuskan adanya sebuah kondisi yang memungkinkan untuk keluar dari fungsi. Bila tidak, maka tentunya akan menyebabkan hang dikarenakan pemanggilan yang tak terhenti. Untuk membuatnya, berikut langkah-langkah yang bisa teman-teman ikuti :

1. Buat sebuah project pada Visual Studio. Di sini saya menggunakan Visual Studio 2010 dengan .NET Framework 4.0. Pilih Jenis Project ASP Web Empty Application.

Create Project

2. Tambahkan Connection String berikut pada Web.config

3. Tambahkan class DataAccess pada project. Class dapat diakses pada link berikut :

DataAccess.cs

4. Tambahkan sebuah halaman Web dan tambahkan sebuah TreeView dengan nama tvMenu.

TreeViewCode

TreeView

5. Isi code Default.aspx.cs dengan code berikut :

6. Buat database MenuTreeView. Buat table tblMenu dengan Query berikut :

7. Buat sp sp_GetMenuList dengan query berikut :

8. Isi table tblMenu dengan data seperti berikut :

Isi Table

9. Coba jalankan.

Saya akan menjelaskan beberapa code yang saya buat.

Pada fungsi GetData di atas, saya membuat fungsi ini menghasilkan tipe data DataTable. Kita akan mendapatkan data dari hasil execute sp_GetMenuList yang akan kita gunakan sebagai data acuan untuk me-list menu.

Pada bagian Page_Load di bagian code di atas, saya mendeklarasikan sebuah variable dengan tipe DataTable. Dari hasilnya, data tersebut kemudian saya filter kembali hanya untuk yg parent saja.

Pada code di atas, saya hapus terlebih dahulu semua node yg ada pada TreeView. Ini untuk menghindari duplicate node saat AutoPostBack ataupun Refresh halaman. Pada bagian for ini, saya ingin membuat node Parent dari data yang telah kita filter pada baris code sebelumnya. Untuk data-data yang memiliki alamat URL, saya tambahkan link URL tersebut pada node. Bila tidak ada, saya jadikan ActionSelect node agar meng-expand Tree saat diklik.

Pada bagian di ataslah saya mendefinisikan setiap node anak sacara rekursif pada fungsi setChildNode

Fungsi di atas yang digunakan untuk mendefinisikan node anak dengan kondisi dimana node tersebut masih memiliki anak. Jika tidak, maka fungsi rekursif akan keluar. Bila benar, saat dijalankan akan tampil seperti berikut :

Running

Demikian sharing dari saya, mudah-mudahan bermanfaat untuk teman-teman yang mengalami masalah serupa. Selamat bekerja… 😀

Source Code lengkap dapat di download di sini :

https://drive.google.com/file/d/0B9_2JJSi4W6RT01ybmJtWEcwYWs/view?usp=sharing

SQL dapat di download di sini :

https://drive.google.com/file/d/0B9_2JJSi4W6RdmF6dnBjVlF2b1U/view?usp=sharing

Desember 15

Mengganti User pada Visual Studio

Cerita berawal ketika saya mau login untuk Visual Studio 2015, tapi ternyata versi trial saya sudah habis. Lalu bos memasukkan User loginnya ke Visual Studio saya agar saya tetap dapat bekerja (Maklum pada saat itu versi teranyar dari Visual Studio ini masih tahap pembelian lisensi oleh kantor). Setelah lisensi ada, saya mau login menggunakan user saya, tapi ternyata tidak bisa karena masih teridentifikasi user bos saya. Saya sudah Uninstall dan Install ulang Visual Studio 2015 tetap saja tidak bisa. Kira-kira seperti ini errornya :

Error User Visual Studio

Singkat cerita, saya akan men-share cara untuk mengubah user yang sudah terlanjur login pada Visual Studio dalam kasus ini Visual Studio 2015 yang sudah saya praktekan ternyata berhasil. 😀

Langkah-langkah yang saya lakukan berikut :

  1. Pastikan Visual Studio ditutup atau tidak dalam keadaan terbuka.

  2. Buka Developer Command Prompt for VS2015 yang ada pada folder Visual Studio 2015 sebagai administrator.

Developer Command Prompt Administrator

  1. Tunggu proses yang dilakukan Command Prompt saat pertama dibuka. Kemudian ketik perintah berikut ‘devenv /resetuserdata’ pada layar Command Prompt dan Enter.

Command Prompt

  1. Buka kembali Visual Studio 2015 dan login dengan Usermu.

Itulah cara yang berhasil saya gunakan, mudah-mudah artikel ini membantu untuk teman-teman yang memiliki masalah yang sama. 😀

Desember 4

Mencari Posisi SSIS pada SQL Server

Siang yang cerah untuk melakukan testing UAT SSIS (maklum di kantor saya sedang ada migrasi DTS ke SSIS). Ternyata SSIS yang saya testing tidak ada dalam folder yang ada dalam list. Saya pun disuruh untuk mencari di semua folder (alamak, banyak banget foldernya). Setelah tanya ke paman googling akhirnya saya menemukan query untuk mencari lokasi SSIS dengan mudah. Berikut querynya :

Mudah-mudahan query tersebut juga membantu teman-teman yang sedang melakukan kegiatan sama dengan saya. Selamat beraktifitas. 😀

Oktober 31

Disable/Enable Developer Options pada Android

Di malam minggu ini mungkin menjadi malam yang sangat biasa untuk developer seperti saya ini, saya masih harus bermain dengan Android Studio, hiks..hiks… :'(

Oke, saya melanjutkan latihan saya dengan Android Studio, tapi saat saya ingin testing, loh kok Device saya tidak terlihat? (di sini saya ingin testing dengan langsung ke smartphone saya. Saya menggunakan Xiaomi Redmi 2 dan Lenovo A3300) Setelah bertanya kepada Paman Google, akhirnya saya menemukan cara agar device saya tampil saat hendak Debug dan Running aplikasi saya. Ternyata Android menyediakan fasilitas untuk enable/disable opsi untuk developer. Berikut langkah-langkah yang dilakukan :

A. Enable Developer Options

  1. Masuk ke menu Setting, pilih About Phone untuk Smartphone (contoh Xiaomi saya) dan About Tablet untuk Tablet (contoh Lenovo saya).

About PhoneXiaomi Redmi 2

About TabletLenovo A3300

  1. Setelah masuk menu, saya tap/sentuh 7 kali MIUI version (Xiaomi) dan Hardware version (Lenovo) atau sesuaikan dengan yang ada pada Smartphone/Tablet kamu. Mungkin bisa mencobanya dengan tap 7 kali pada setiap pilihan.

MIUI versionXiaomi Redmi 2

Hardware VersionLenovo A3300

  1. Maka Developer Options akan tampil pada menu Setting. Pastikan USB Debugging di set On agar dapat terbaca Android Studio.

Developer OptionsXiaomi Redmi 2

Developer Options LenovoLenovo A3300

B. Disable Developer Options

1. Pada menu Setting, pilih Appl. Cari aplikasi Setting.

Apl XiaomiXiaomi Redmi 2

Apl LenovoLenovo A3300

2. Pilih Clear Data. Bila tampil pertanyaan, pilih Ok.

Clear Data XiaomiXiaomi Redmi 2

Clear Data LenovoLenovo A3300

3. Maka Developer Options akan hilang pada menu Setting.

Hide Developer Options XiaomiXiaomi Redmi 2

Hide Developer Options LenovoLenovo A3300

Begitulah solusi yang saya dapatkan. Mudah-mudah sharing ini bermanfaat dan Selamat berkoding ria.. 😀

Oktober 17

Error 18456 saat login SQL Server

Sore telah tiba, namun saat mau coding sambil menikmati kopi hangat dengan komputer kantor (komputer saya kebetulan sedang error), tiba-tiba tampil error saat mau login menggunakan User ID yang telah saya buat di SQL Server. Tampilan errornya kira2 seperti ini :

Error 18456

Kok bisa tampil error Login failed padahal sudah saya granting user tersebut dengan benar. Setelah mencari cara, akhirnya saya menemukan solusinya. Error tersebut terjadi karena SQL Server (servicenya yang saya maksud di sini) yang kita punya masih di setting Security Windows Authentication mode. Adapun langkah-langkah yang saya lakukan agar saya bisa login menggunakan User yang telah saya buat sebagai berikut :

  1. Lakukan login dengan menggunakan Windows Authentication pada SQL Server (SSMS).

  2. Klik kanan pada SQL Server. Pilih Properties.

Properties SQL Server

  1. Pada bagian Security, kita pindahkan ke mode SQL Server and Windows Authentication mode.

Security

  1. Restart Service SQL Server kemudian login kembali dengan User ID yang telah kita buat.

Service

Restart Service

Mudah-mudahan langkah ini bisa menolong teman-teman yang mengalami masalah yang sama. Selamat mencoba. 😀

Agustus 10

Download APK Android di PC

Siang yang cerah untuk berbagi. Pada hari ini, kebetulan saya sedang tidak terlalu sibuk di kantor (tidak ada kerjaan,hehe), saya bingung mau melakukan apa. Kebetulan saya sedang membawa tablet kesayangan dan saya ingat saat di kereta (angkutan umum andalan) saya tidak dapat melihat subtitle dari film kesayangan saya saat memainkannya. Setelah sampai kantor, saya langsung men-download apk dari software android untuk memutar film yakni “VLC for Android”. Adapun langkah-langkah yang saya lakukan sebagai berikut :

  1. Buka website google play dan cari software yang diinginkan (VLC for Android) :

Search VLC

Klik VLC

 

  1. Copy-kan alamat halaman aplikasi yang kita buka

Copy Link

  1. Buka alamat website http://apps.evozi.com/apk-downloader/ kemudian paste-kan alamat yang telah kita copy ke bagian Package name or Google Play URL :

Evozi

Paste Link

  1. Klik Generate Download Link :

  2. Setelah tampil tombol Click here to download …. now berwarna hijau, klik tombol tersebut untuk mendownload APK yang diinginkan :

Download APK

  1. Copy-kan APK yang telah di-download tadi ke dalam tablet atau smartphone android kemudian Install.

Demikian cara saya untuk men-download APK aplikasi android yang sering saya lakukan. Dengan menggunakan cara ini kita akan berhemat kuota internet jika suatu hari kita ingin menginstal ulang aplikasi yang telah dihapus di tablet ataupun smartphone kita. Mudah-mudahan bermanfaat untuk teman-teman.

Juli 20

Shortcut menulis bahasa Arab dan tulisan Al-Quran

Taqabbalallahu Minna Wa Minkum. Mudah2an segala amal kebaikan kita diterima ALLAH SWT. Mungkin ini doa yang pertama dalam rangka Hari Raya Idul Fitri. Untuk menulis di microsoft Word mungkin sesuatu hal yang tidaklah asing bagi kita. Namun, kita tidak akan mengetahui kalau ternyata ada banyak shortcut tersembunyi yang tidak kita ketahui. Kali ini saya ingin membagikan beberapa shorcut yang jarang sekali kita ketahui namun akan sangat bermanfaat untuk penulisan berbagai tulisan/artikel Islam Insya ALLAH. Berikut listnya :

Fdfd ==> alt+x
Fdfa ==> alt+x
Fdfb ==> alt+x
Fdf2 ==> alt+x
Fdf3 ==> alt+x
Fdf4 ==> alt+x
Fdf5 ==> alt+x
Fdf6 ==> alt+x
Fdf7 ==> alt+x
Fdf8 ==> alt+x
Fdf9 ==> alt+x
Fdf0 ==> alt+x

Mudah2an sedikit info tentang shorcut-shortcut yang mungkin sangat bermanfaat… 😀

Juni 18

Table Variable, Global Table Temporary, dan Local Table Temporary

Marhaban Yaa Ramadhan…

Bulan penuh berkah telah tiba. Pada hari pertama di bulan penuh berkah ini, saya akan menjelaskan table variable dan table temporary. Apa itu table variable dan table temporary?

Mungkin teman-teman sudah tidak asing dengan kata-kata table. Yuph, table merupakan tempat untuk penyimpanan data berupa baris dan kolom. Lalu apa yang dimaksud table variable dan table temporary? Apa perbedaan table biasa dalam database dengan table variable dan table temporary? Mungkin untuk membedakan keduanya akan saya urai satu persatu.

1. Table Variable

Table variable merupakan table yang dideklarasikan seperti halnya variable. Penggunaannya biasanya dipakai untuk menyimpan data sementara yang membutuhkan tampungan data seperti sebuah table. Table variable hanya dapat digunakan dalam satu koneksi data (biasanya dalam satu stored procedure) dan satu kali execute. Untuk mendeklarasikan table variable (karena seperti variable, table variable dideklarasikan, bukan di-create), digunakan kata kunci DECLARE dan diberi @ (a keong) sebagai nama variable serta TABLE sebagai tipe datanya. Contoh penggunaan table variable :

Jika kita execute query di atas, maka akan menghasilkan data seperti berikut :

Table Variable

2. Table Temporary

Table temporary sebenarnya hampir sama seperti table variable, namun table temporary dapat digunakan untuk beberapa kali execute. Proses create table temporary dapat dilakukan dengan query SELECT… INTO… selain dengan query CREATE seperti pembuatan table umumnya. Table temporary sendiri dibagi menjadi dua, global dan local table temporary.

  • Local Table Temporary

Local table temporary ditandai dengan kres satu (#). Local table temporary hanya dapat digunakan hanya dalam satu session. Jika kita meng-create local table temporary dalam suatu session, kemudian kita lakukan proses insert, update, maupun delete pada session yang lain maka akan menyebabkan error. Contoh penggunaan Local Table Temporary :

Jika kita execute query di atas, maka akan menghasilkan data seperti berikut :

Local Table Temporary

  • Global Table Temporary

Global table temporary ditandai dengan dua kres (##). Global table temporary dapat digunakan dalam semua session. Jika kita meng-create global table temporary dalam suatu session, maka kita dapat melakukan proses insert, update, maupun delete pada session yang lain. Contoh penggunaan Global Table Temporary :

Jika kita execute query di atas, maka akan menghasilkan data seperti berikut :

Global Table Temporary

Untuk perlu diingat, baik table variable maupun table temporary, pada saat deklarasi maupun create, keduanya akan ter-create secara fisik pada database tempdb pada System Database. Namun untuk table variable, tabel fisik akan otomatis hilang/dihapus (biasanya saat proses eksekusi telah selesai dilakukan). Namun, untuk table temporary, table fisik hanya akan terhapus bila kita melakukan DROP TABLE terhadap table tersebut. Bila kita menjalankan query berikut :

atau :

atau :

Saat kita eksekusi query tersebut, kita akan melihat bahwa object pada database tempdb akan bertambah

Hasil Create

Dari penjelasan di atas, ada beberapa hal penting mengenai table variable dan table temporary yang perlu diperhatikan :

1. Table variables tidak dapat digunakan dalam proses TRANSACTION (dengan query BEGIN TRAN/BEGIN TRANSACTION) sehingga tidak dapat dilakukan proses ROLLBACK.

  1. Perlu diperhatikan untuk melakukan DROP TABLE terhadap table temporary dikarenakan table tersebut akan tetap tersimpan dalam database master dan tentunya akan memperbesar kapasitas database.

Demikian penjelasan singkat mengenai table variable dan table temporary dari saya. Bila ada yang ingin ditambahkan bisa diisi pada kolom komentar. Akhir kata, saya mengucapkan Selamat berpuasa. Semoga segala puasa dan amal ibadah kita diterima ALLAH SWT dan segala sesuatunya menjadi keberkahan untuk kita. Amin… 😀

Juni 15

INSERT INTO … VALUES … , INSERT INTO …. SELECT, dan SELECT … INTO ….

Pagi hari yang cerah ini, saat yang tepat untuk berbagi,hehe….

Kali ini saya ingin menjelaskan tentang 3 pola query insert (untuk SQL Server) yang sering digunakan untuk menginputkan data. Mungkin teman-teman sudah tidak asing menggunakan pola INSERT INTO. Dalam penggunaannya ternyata memiliki pola yang lain untuk keperluan yang berbeda. Baik, saya langsung jelaskan satu persatu, namun sebelumnya saya asumsikan teman-teman telah memiliki tabel barang dan produk yang ada pada artikel Menyimpan hasil insert yang disimpan ke suatu tabel dari suatu tabel ke dalam tabel lain.

1. INSERT INTO … VALUES …

Untuk query ini, tentunya teman-teman sudah biasa menggunakannya. Query ini digunakan untuk menginput data ke database baik satu atau lebih dari suatu inputan. Misalnya, kita ingin menambahkan data ke tabel barang dengan kode_barang=C021,kode_gudang=G01B,nama_barang=Mi Instan. Maka kita dapat membuat query seperti berikut :

Atau kita ingin menambahkan dua buah data ke tabel barang dengan kode_barang=C022,kode_gudang=G01B,nama_barang=Kopi dan kode_barang=C023,kode_gudang=G01B,nama_barang=Kopi Luwak. Maka kita dapat membuat query seperti berikut :

2. INSERT INTO …. SELECT

Untuk query yang satu ini biasanya digunakan untuk menyimpan data ke tabel dari tabel yang lain (baik itu tabel lokal, table variable, maupun table temporary). Misalnya, kita ingin memasukkan semua data yang memiliki kode gudang G01B pada tabel barang ke dalam tabel produk. Maka kita dapat membuat query seperti berikut :

Walaupun query ini sebenarnya dapat digunakan untuk memasukkan data dari suatu inputan (namun hanya terbatas satu inputan saja). Misalnya kita ingin menambahkan data ke tabel barang dengan kode_barang=C024,kode_gudang=G01B,nama_barang=Teh Botol. Maka kita dapat membuat query seperti berikut :

3. SELECT … INTO ….

Untuk query yang satu ini dapat kita gunakan untuk menginput data dari suatu tabel ke tabel yang lain, namun tabel tujuan belum ada/belum di-create. Biasanya query ini digunakan pada saat migrasi data maupun saat kita memerlukan sebuah tabel untuk tempat menampung data sementara dari suatu tabel. Tabel yang ter-create dari query ini akan memiliki properties yang sama persis dengan tabel sumber, baik dari jumlah kolom, tipe data kolom-kolomnya, dan lain-lainnya. Namun, tabel tujuan yang dapat di-create hanya tabel lokal dan table temporary saja (table variable tidak bisa menggunakan query ini). Misalnya, kita ingin memasukkan tabel barang ke tabel lain sebagai tempat menampung data sementara dengan spesifikasi tabel yang sama dengan tabel barang. Maka kita dapat membuat query seperti berikut :

  • Tabel tujuan adalah tabel fisik :
  • Tabel tujuan adalah tabel temporary global :
  • Tabel tujuan adalah tabel temporary local :

Demikian penjelasan singkat mengenai 3 pola query untuk Insert data ini. Mudah-mudahan bermanfaat, selamat berkerja… 😀