program.cs using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace Chapter3._1 { static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } QRManager.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing; using QRCoder; namespace Chapter3._1 { class QRManager { public static void TukarInfo(ref TextBox textBox1, ref TextBox textBox2) { string temp = textBox1.Text; textBox1.Text = textBox2.Text; textBox2.Text = temp; } public static string GenerateInfo(string namaAsal, string alamatAsal, string NoHpAsal, string namaTujuan, string alamatTujuan, string NoHpTujuan) { string result = "#" + namaAsal + "*" + alamatAsal + "*" + NoHpAsal + "*" + namaTujuan + "*" + alamatTujuan + "*" + NoHpTujuan; return result; } public static string GenerateInfo(string namaAsal, string alamatAsal, string NoHpAsal, string namaTujuan, string alamatTujuan, string NoHpTujuan, out Bitmap QrBitmap) { string text = GenerateInfo(namaAsal, alamatAsal, NoHpAsal, namaTujuan, alamatTujuan, NoHpTujuan); QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData); QrBitmap = qrCode.GetGraphic(20); return text; } } } Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Chapter3._1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btTukar_Click(object sender, EventArgs e) { QRManager.TukarInfo(ref tbNamaPenerima, ref tbNamaPengirim); QRManager.TukarInfo(ref tbAlamatAsal, ref tbAlamatTujuan); QRManager.TukarInfo(ref tbHpPenerima, ref tbHpPengirim); } private void btProses_Click(object sender, EventArgs e) { Bitmap qr; tbQrText.Text = QRManager.GenerateInfo( tbNamaPengirim.Text, tbAlamatAsal.Text, tbHpPengirim.Text, tbNamaPenerima.Text, tbAlamatTujuan.Text, tbHpPenerima.Text, out qr); pbQR.BackgroundImage = qr; } } }