Export HTML to PDF in MVC 4 Application

I just solved my old obstacel, generate html to pdf, in Joniss project. I am using rotativa library for it.

Apparently it is so simple. First step is I create generator action then its action will be direct to which action and of course view want to generate to pdf. That’s it.

public ActionResult GeneratePDF(int ProNo)
{
return new Rotativa.ActionAsPdf("Details", new { ProNo = ProNo });
}

Yg pernah Resign atau sedang ingin Resign (wajib baca)

Alkisah ada seorang Sales bernama Juli yg bekerja di di Distributor Produk IT, ni orang baru aja lolos tes perusahaan IT yg sudah go public yg jelas masa depannya dan mau resign, berikut ini perdebatannya dengan atasannya. kita singkat aja ya,
Atasannya = A,
Juli = J
A = Baru Kerja 1 Tahun Sudah mau resign, dimana morality kamu?
J = morality saya ikut berlari bersama morality perusahaan, yg nyuruh karyawannya kerja melebihi aturan pemerintah sampe sakit tapi tunjangan kesehatan gak full
A = sebenernya mau kamu apa? dimana-mana kerja itu sama. Saya udah menjalani 2 company sebelum ini
J = karena kerja dimana2 itu sama, makanya saya gak ragu resign pak, wong sama aja kok, cuma rewardnya yg beda tho…. ya saya pilih yg rewardnya lebih
A = yg bener itu kerja bener dulu baru naik gaji, bukan gaji naik dulu baru kerja bener.
J = kerjanya sama2 bener tapi yg satu ngasih gaji lebih tinggi, ya saya pilih yg lebih tho pak.
A = kenapa kamu gak mencoba profesional disini aja, klo alasannya reward, kan nanti karir serta salary kamu juga bakal naik kalo kamu bertahan
J = kenapa saya harus nunggu, klo ada company yg nawarin itu sekarang?
A = tapi sayang sekali, saya pandang kamu yg paling berpotensi diantara yg lain
J = bapak udah ngomong gitu ke semua sales yg resign sebelum saya
A = tidak, ini serius, kamu memiliki potensi besar, disini kamu bisa sukses! daripada kamu memulai lagi dari bawah di company lain yg belum ketauan nanti disana kamu bakal sukses atau gak
J = disini juga sama aja saya belum tau bakal sukses apa gak, wong namanya masa depan kok. Sama2 gak ketauan, tapi yg satu awalannya lebih baik, ya pilih yg lebih baik donk……
A = maksud kamu lebih baik itu apa? money? uang itu bukan segala2nya
J = klo emang begitu ngapain company costdown gaji saya, apa artinya uang segitu untuk mempertahankan performance sales
A = Kita kan tidak hanya mengejar uang. Kalau orientasi kamu hanya uang,kamu hanya mengejar “live”. No difference with buffalo, Bekerja hanya untuk bertahan hidup, Kamu itu sales!!!! harus berorientasi pada yg lebih mulia, bekerja untuk berkarya, untuk mengembangkan diri
J = saya pengennya seperti itu, makanya saya resign. Gimana saya mau lepas dari orientasi “live” kalau tiap bulan saya harus pusing mikir bayaran kos, pulsa, makan, bensin, nabung buat merit, bayar cicilan kredit. Naaaa sekarang ada company yg nawarin itu, salary yg membuat saya tenang, tak berpikir lagi tentang “live existence”. So, boleh donk saya ambil untuk menaikkan derajat pekerjaan saya
A = Juli…. kalau kamu ngejar yg lebih baik, gak akan abis2…. selalu ada yg lebih baik. Saya sudah mengalaminya di 2 company terdahulu
J = emang gak bakal abis pak…. karena itu, ngapain saya abisin disini ? Mending saya terus2an dapet yg lebih baik sampai berhenti karena cape. Lagian Bapak juga nyatanya dulu juga berhenti kan ?
A = inilah yg membuat bangsa kita gak maju2. Oportunis. Orang jepang maju karena loyal
J = loyalitas itu kata2 pembenaran buat ngegaji orang dibawah level pendidikannya pak. Betul jepang itu maju. Tapi lihatlah, terjadi ketimpangan karir antara lelaki dan wanita. karena lelakinya gila kerja semua, mereka jarang menemui anaknya, akibatnya istri2 mereka harus mengimbanginya, ngalah keluar dari kerja buat nambal waktu bapak yg hilang untuk anak2nya karena bapaknya lebih cinta kerja daripada mereka.
Tanya deh cewek jepang, lelaki jepang tu paling nggak romantis. Cewek bawa tas berat aja dicuekin
A = tapi dimana responsibility kamu Juli?
J = responsibility itu apa pak? perasaan dulu saya pernah punya, pas awal2 masuk disini, tapi kata2 itulah yg dijadikan pembenaran untuk menindas saya. Atas nama responsibility, saya mengorbankan kesehatan untuk mengejar target penjualan. Betul, manusia harus punya responsibility. Apa responsibility paling utama? Keluarga. Anak dan istri adalah amanah dari Yg Diatas.
A = kamu kurang bersyukur, masih banyak orang yg susah dapet kerjaan kenapa kamu malah lepas pekerjaan ini.
J = saya sudah diterima Pak, itu rejeki dari Yg Diatas, Kalau nggak saya ambil, itu yg namanya nggak bersyukur. Yg Diatas itu tau kebutuhan saya. Makanya Dia memberi saya kerjaan baru, mungkin karena tau kebutuhan saya meningkat. Selain itu, Yg Diatas juga memberi pekerjaan pada satu orang pengangguran yg akan menggantikan posisi saya disini setelah resign.
A = !^^

sumber: http://verrisuryadi.com/

 

Menentukan Bilangan Prima dengan Bahasa C#

Beberapa waktu yang lalu, saya dapat pertanyaan: Bagaiaman membuat program (dengan bahasa pemograman apa saja) untuk menentukan suatu bilangan itu merupakan bilangan prima atau bukan? *garuk-garuk mata* Dengan susah payah mengingat macam mana membuat program tersebut? Corat-coret untuk mencoba menjawabnya dan seadanya lah itu jawaban.

Sesampainya di depan PC, langsung lah blusukan sana-sini akhirnya sudah dipastikan jawaban tadi itu sangat lah ngaco. Jumlah variable-nya pun beda apalagi code selanjutnya. Kemudian ketemu lah blog ini, yang ngebahas secara lengkap dan mudah dipahami. Berikut adalah penampakannya:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BilanganPrima
{
class Program
{
static void Main(string[] args)
{
//Console.WriteLine("\n\n");
Console.WriteLine("Bilangan Prima");
Console.WriteLine("================");

int bilangan;
int x, y;
bool prima = true;
Console.WriteLine("Masukan batas bilangan : ");
bilangan = Convert.ToInt16(Console.ReadLine());
for (x = 2; x <= bilangan; x++)
{
for (y = 2; y < x; y++)
{
if (x % y == 0)
{
prima = false;
break;
}
}
if (prima)
Console.WriteLine(x + "merupakan bilangan prima");
prima = true;
}
Console.ReadLine();
}
}
}

Langsung saja saya jelaskan arti code di atas. Pertama kita deklarasikan dulu variabel bilangan untuk menyimpan bilangan yang akan diinputkan oleh user nanti, yang di mana variabel tersebut nantinya akan berperan sebagai batas bilangan. Ada juga variabel prima yang sudah kita set ke true. Pada line 20, itu berarti kita meminta inputan dari user. Inputan dari user itu bertipe string, oleh karena itulah kita perlu mengubahnya dulu ke dalam bentuk integer.

Nah dari line 21 sampai line 35 itulah code yang sangat penting pada program kita. Akan saya jelaskan satu persatu. Pada baris 21 kita tentukan dulu variabel x bernilai 2, kenapa ? Karena bilangan 1 tidak bisa dimasukkan sebagai bilangan prima (setidaknya begitulah yang saya lihat-lihat di blog-blog orang lain :p). Lalu ada yang namanya syarat agar code di atas dapat berulang terus, di mana x <= bilangan, yang di mana artinya selama x lebih kecil dan sama dengan bilangan. Lalu ada x++ yang berarti x akan ditambah 1. Di dalam for, kita tambahkan lagi for yang lain. Penjelasannya sama dengan sebelumnya.

Sampai sini kita bisa melihat bahwa x mempunyai nilai 2 dan y juga mempunyai nilai 2. Lalu kita akan masuk ke if, if ((x % y) == 0) yang artinya jika x modulus y sama dengan 0 (sisa bagi dari x dan y sama dengan 0), variabel prima yang tadi kita set true akan kita ubah false, kenapa? Misalkan di sini x = 4, y = 2, itu berarti x masih bisa dibagi dengan y (4%2=0 atau tidak ada sisa baginya), sedangkan syarat bilangan prima itu hanya bisa dibagi 1 dan dirinya sendiri, selain itu tidak bisa disebut bilangan prima. Maka kita set variabel prima tadi menjadi false. Break itu sendiri artinya berhenti/selesaikan alur coding-nya, artinya looping-nya kita hentikan. Jika dia tidak dihentikan/di-break, dia loncat lagi ke atas (ke for yang di dalam). Variabel y akan ditambah 1, lalu dicek apakah y < x, jika tidak dia akan langsung loncat ke for yang bagian luar. Variabel x akan ditambah 1, cek apakah x <= bilangan, jika iya masuk lagi ke for yang di dalam.

Nah di sini y kembali di-set menjadi 2. Lalu seterusnya sampai x tidak lebih kecil dan sama dengan bilangan. Pada line 31, itu berarti dia mengecek apakah variabel prima bernilai true, jika iya tampilkan pesan bahwa variabel x tadi merupakan bilangan prima. Lalu set lagi variabel prima menjadi true. Jadi intinya, coding di atas itu akan mengecek apakah selama looping for bagian dalam dia masuk ke dalam rumus if (x % y == 0) dan jika menghasilkan nilai true, itu berarti dia sudah bukan bilangan prima (prima = false). Berikut adalah penampakan program setelah dijalankan dan dimasukan angka 10.Hasil Bilangan Prima

Nah, mudah-mudahan dengan membaca dan memahami tulisan di atas kita semua bisa memahaminya.

Store Procedure dan Trigger. Benda apaan lagi tuh???

“Ya Allah, berilah selalu hambaMu semangat dalam bekerja, semangat dalam belajar dan semangat dalam beraktivitas sehingga hambaMu dapat dengan mudah mengembangkan pengetahuan”.

Kalimat pembuka di atas merupakan salah satu doa yang saya mohon kepada Allah SWT disetiap setelah shalat. Iya, dalam setiap aktivitas pasti mempunya value yang bisa saya ambil. Walaupun saya belum pernah mengimplementasikan Store Procedure dan Trigger pada database tapi setidaknya saat ini saya sedang mempelajari dan akan mengimplematasikan hasil dari pembelajaran tersebut.

Database

Database

STORED PROCEDURE

Stored Procedure adalah kumpulan perintah SQL yang diberi nama dan disimpan di server. Stored Procedure biasanya berisi perintah-perintah umum yang berhubungan dengan database pada server, dan menghasilkan sekumpulan record. Stored Procedure ditulis dalam bentuk sebuah script.

Stored Procedure akan meningkatkan performasi database, meningkatkan sekuritas database. Performasi ditingkatkan melalui pemakaian tempat penyimpanan lokal (lokal terhadap database), program yang telah terkompilasi terlebih dahulu, dan pemakaian cache. Setiap kali sebuah perintah atau Stored Procedure dikirimkan ke server untuk diproses, server harus menentukan apakah dikirimkan ke server untuk diproses, server harus menentukan apakah pengirim mempunyai hak untuk menjalankan perintah tersebut dan apakah perintah tersebut benar, Setelah hak dan perintah diperiksa dan benar, SQL Server akan membuat rencana eksekusi.
Stored Procedure lebih efisien dari perintah biasa, karena procedure disimpan si server pada saat dibuat dan dijalankan di server. Stored Procedure yang berisi sekumpulan perintah Transact-SQL akan dipanggil oleh sebuah perintah Transact-SQL.
Sebelum Stored Procedure dibuat, sintaks penulisan perintah dicek kebenarannya. Jika tidak Error, nama procedure disimpan di tabel SysObjects dan teksnya disimpan di tabel SysComments. Pertama kali Stored Procedure dijalankan, rencana eksekusi dibuat dan Stored Procedure dikompilasi. Pemrosesan berikutnya akan lebih cepat, karena SQL Server tidak perlu mengecek sintaks dan membuat rencana eksekusi atau mengkompilasi procedure.

Sekali Stored Procedure dibuat, Anda dapat memanggilnya pada saat diperlukan. Cara ini meningkatkan modularitas dan memungkinkan pemakaian ulang sebuah program. Pemakaian ulang program akan memudahkan pemeliharaan sebuah database. Jika aturan bisnis berubah, Anda hanya perlu mengubah Stored Procedure, sedangkan pemanggilannya tetap. Continue reading

Join Table pada MS Sql Server (Left Outer Join)

Dalam menyampaikan data tentunya ingin selalu seinformatif mungkin. Dalam pembangunan maupun pengembangan sistem informasi tentu tidak aka jauh-jauh dari database untuk mengorganisir data yang ada. Sehingga user akan sangat terbantu dengan sajian data yang informatif.

Disini kita akan mencoba menggabungkan dua (2) table dengan menggunakan MS SQL Server. Penggabungan ini dikenal dengan istilah Join Table.  Kita mempunya dua tabel dengan nama IDENTITAS dan KENDARAAN. 

Bagaimana menggabungkan data tersebut sehingga data yang dihasilkan seperti: Dengan script dibawah ini maka akan menghasilkan data seperti yang di atas.

sql = "select identitas.*, kendaraa.tipe, kendaraan.nama_kendaraan from identitas left outer join kendaraan on identitas.id=kendaraan.id

Input Record Dari Web Form Menggunakan VB.Net & SQL Server

Dalam sebuah website dinamis yang menyajikan berbagai macam informasi tentu saja dibutuhkan suatu cara untuk proses peng-update-an data. Dalam proses pembangunan website dinamis, sudah pasti dibutuhkan suatu atau beberapa database. Dan dalam masa pembangunan website juga, setelah database terbentuk dan untuk menambahkan beberapa record ke dalam database biasanya sang developer menggunakan berbagai cara yang salah satunya lewat database engine-nya. Disini saya menggunakan SQL Server 2008 dan Visual Studio 2010 dengan bahasa yang digunakan yaitu VB.

Untuk sebuah website saya rasa cara yang paling efektif dalam proses peng-update-an data yaitu melalui web form selain lewat engine databasenya dan dengan cara lainnya. Baik, saya akan mencoba mendokumentasikan apa yang baru saja saya kerjakan dalam peng-update-an database.

Continue reading

Manual Setting Paging in GridView

Mengemas data dari hasil pencarian harus bersifat informatif. Walaupun data yang dihasilkan sangat banyak tapi kita selaku developer harus bisa membuat user dengan mudah memahaminya. Okay mari kota coba langsung ke topik utama yaitu bagaimana membuat fungsi paging pada gridview.

Setelah mengaktifkan allow paging menjadi true pada jendela properties gridview, silahkan tambahkan kode dibawah ini pada code behind form kamu. Disini saya menggunakan bahasa vb.net.

&lt;/p&gt;
Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging
 If cbsearch.Checked = True Then
 GridView1.PageIndex = e.NewPageIndex
 GridView1.DataSource = SqlDataSource1
 GridView1.DataBind()
 ElseIf cbsearch.Checked = False Then
 GridView1.PageIndex = e.NewPageIndex
 GridView1.DataSource = SqlDataSource2
 GridView1.DataBind()
 End If
 End Sub
&lt;p align=&quot;JUSTIFY&quot;&gt;