RSS

Project WPF “Bisi Internasional”

Project Bisi Internasional ini merupakan salah satu project berbasis desktop yang dibuat oleh penulis menggunakan platform WPF Application, bahasa pemrograman C#. Project ini terdiri atas berbagai halaman antarmuka, yang diantaranya adalah

    1. Halaman Login
    1. Halaman Transaksi untuk Peminjaman
    1. Halaman Transaksi untuk Pembelian
    1. Halaman Nota Pembelian, serta
  1. Halaman Report Semua Transaksi untuk dicetak/print out
Source code project ini dapat didownload disini
 

Posted by on 14 June 2013 in Academic

Leave a comment

Cara Menghasilkan Uang Melalui Adf.ly

Bagi yang ingin mendapatkan uang sampingan melalui internet, mungkin yang akan saya bahas kali ini bisa menjadi salah satu referensi bagi Anda. Yaitu Adf.ly , sebuah situs yang sering kita jumpai ketika hendak mengunduh sesuatu atau link rujukan yang sering dicantumin seseorang di internet. Situs ini juga dapat dijadikan tempat untuk memperpendek url seperti halnya situs bit.ly. Selain itu, melalui situs ini kita juga bisa berbisnis secara online (mengumpulkan rupiah). Sebelum berbisnis, tentunya kita harus mendaftar terlebih dahulu ke situs Adf.ly . Berikut langkah-langkah mendaftar ke situs tersebut.

  1. Masuk ke situs Adf.ly
  2. Klik Join Now (jika ingin mendaftar menggunakan email) atau bisa juga Login With Facebook (jika ingin mendaftar menggunakan akun Facebook).
  3. Lengkapi form pendaftaran yang telah disediakan. Setelah selesai klik Submit.
  4. Selanjutnya cek email yang digunakan untuk melakukan verifikasi pendaftaran.

Setelah Anda terdaftar kedalam situs tersebut, selanjutnya adalah menyusun strategi bagaimana meraup uang sebanyak-banyaknya. Sistem kerjanya, Anda harus login ke situs Adf.ly terlebih dahulu, kemudian ketik url yang ingin Anda publish di tempat yang telah disediakan dan klik Shrink. Nah link hasil Shrink inilah yang akan kita gunakan untuk mengumpulkan uang. Kita hanya perlu menyebarkan hasil link ini ke situs yang kita inginkan (misalnya berbagai jejaring sosial ataupun yang lain). Nah, ketika orang lain klik link tersebut, ini berarti akan menjadi nilai rupiah tersendiri bagi kita. Selamat mencoba, semoga bermanfaat.

 

Posted by on 14 June 2013 in Academic

Leave a comment

Membuat Website e-Commerce dengan Prestashop

Sedikit berbagi ilmu seputar e-Commerce (Situs Jual Beli). Jika diantara Anda ada yang masih bingung mengenai cara membuat website e-Commerce, berikut ada sedikit rekomendasi dari saya yakni gunain CMS Prestashop. Prestashop adalah sebuah software e-commerce yang open source dan fleksibel. Pada tutorial kali ini, saya akan menjelaskan mengenai langkah-langkah pembuatannya melalui hosting local (localhost). Jadi tanpa terkoneksi ke internet, Anda bisa mencoba membuatnya langsung dikomputer Anda.

  1. Pastikan di komputer Anda sudah terinstall software pendukung untuk menjalankan hosting local (localhost) seperti xampp, wamp, dan masih banyak lagi. Dalam kasus ini saya menggunakan software xampp.
  2. Download Prestashop disini.
  3. Setelah Prestashop terdownload, langkah selanjutnya adalah ekstrak file tersebut dan copy-kan (1 folder prestashop) ke dalam folder htdocs yang terletak di direktori C:\xampp.
  4. Buka browser dan ketikkan url localhost/prestashop.
  5. Dari sini Anda tinggal mengikuti langkah-langkah instalasi prestashop. Sekedar tambahan saja untuk yang belum tau, ketika saat instalasi Anda disuruh mengisi nama database, maka sebelumnya buat terlebih dahulu sebuah database baru di localhost/phpmyadmin (ketik nama database yang diinginkan dan Create).
  6. Setelah instalasi selesai dan berhasil, selanjutnya hapus folder install yang terdapat didalam folder prestashop.
  7. Jika langkah2 diatas berhasil, itu artinya Anda sudah berhasil membuat website e-commerce menggunakan Prestashop. Untuk melihat hasilnya, Anda dapat berkunjung di localhost/prestashop.

Oke sekian dulu mudah-mudahan bermanfaat..

(Jika ada yang ditanyakan bisa komen di artikel ini)

 

Posted by on 14 June 2013 in Academic

Leave a comment

Si Bolang dari Cikonjen

Ngebolang, sungguh agenda yang belum diagendain sebelumnya, kenapa? ya, karena tadinya niatnya cuma masak2, ga sampe ngebolang (baca: naik gunung). Hari ini (09 September 2012), kami (pengajar di LPK Tepi Sawah) mengadakan acara masak-masak bareng di LPK Tepi Sawah yang terletak di kampung Cikonjen, Desa Leuweungkolot, Kecamatan Cibungbulang, Kabupaten Bogor. Tujuannya hanya 1, maen-maen skaligus mencari hiburan, karena terakhir kesana sebelum lebaran. Kami pun janjian (melalui jarkom) kumpul setengah 8 di BNI. Tapi karena saya sendiri sibuk (sithik-sithik bubuk[bhs jawa]) akhirnya bangun pun kesiangan, padahal agenda sebelum berangkat mesti nyuci pakaian dulu. Akhirnya, saya pun nyuruh yg udah kumpul di BNI untuk berangkat duluan karena saya mau nyuci pakaian dulu.. hee
Singkat cerita, nyuci pakaian pun selesai, lanjut mandi dan berangkat deh. Ohya, saya berangkat dari kosan jam 08.30 (ngaret 1 jam.. Smile with tongue out). Dan karena mesti membawa sesuatu (baca : makanan), saya pun mengajak Surya untuk bareng aja (maksudnya biar ada yang megangin tu makanan karena saking banyaknya.. hee). Dan tiba di LPK sekitar jam 9. Karena acara masak-masaknya itu untuk makan siang, sambil menunggu siang kami ngobrol2 sambil nyemil disana. Tepat pukul 10 pagi, Mang Jar (penduduk sana yang juga diamanahi sebagai penjaga LPK Tepi Sawah) menawari kami untuk naik gunung kapur (yang letaknya persis dibelakang LPK). Karena kami yang sebelumnya belum pernah naik kesana (gunung kapur) dan ingin sekali naik kesana, kami pun mau daaaaan berangkaaaaattt.. Ehya, Tak lupa beberapa alat pun dipersiapkan sebelum berangkat seperti sendal (yaiyalah), air minum (padahal tmn yg bawa dan nanti minta.. Smile with tongue out), jaket (biar ga kepanasan.. takut tambah item) serta camdig (buat foto 3×4).
Perjalanan pun dimulai dengaaaaaan foto-foto (sebelum mendaki Smile with tongue out).

DSC03623
Foto bareng sebelum mendaki

Perjalanan pun dilanjutkan dengan menyusuri beberapa area persawahan, padang pasir (baca: tanah tandus), dan hutan kayu (baca: hutan pohon jati).

CIMG3025
Ini dulu sawah lho, tp karna lg musim kemarau jd kering deh.. hehe
CIMG3028
CIMG3033
Jalan melewati padang pasir :p
CIMG3037
DSC03636
Jalan melewati hutan kayu Jati

Sampai di hutan kayu pun kami beristirahat karena waktunya istirahat (baca: capek Open-mouthed smile).

DSC03637
Istirahat di area istirahat (hutan kayu Jati)

Setelah istirahat, perjalanan pun kami lanjutkan kembali. Kali ini area yang dilewati lebih menantang, karena kami harus mendaki (yaiyalah, namanya juga naik gunung). Selama proses pendakian kami berpapasan dengan beberapa pendaki lain yang hendak mau turun yang kebetulan masih siswa (entah SMP atau SMA krg tau juga) karena beberapa ada yang menggunakan pakaian seragam pramuka.

DSC03646
Waktu mendaki dan berpapasan dengan pendaki lain
DSC03647

Dan akhirnya sampe deh diiiiiiiiii tempat peristirahatan kedua karena temen kami yang cewek (Luksie dan Iis) capek. hehe

CIMG3043
Luksie dan Iis beristirahat, sedangkan Ozi menunggu (dengan setia :p)

Selama dalam pendakian, kami pun beberapa kali melakukan aksi nekat (foto-foto Smile with tongue out).

DSC03655
Aziz dengan pose “memandangi indahnya dunia”
DSC03657
Ozi dengan pose yang meniru Aziz :p
CIMG3050
Surya dengan pose yang mirip wayang *menurut saya ūüėÄ

Setelah beberapa kali melakukan istirahat, dengan penuh perjuangan (lebay) kami pun tiba di puncaknya dan foto-foto (lagi).. hehe

DSC03660
Inilah trio macan dari Cikonjen
DSC03665
Foto bersama (tanpa Iis)
DSC03668
Foto bersama (tanpa Aziz)

Setelah puas foto-foto dipuncaknya, kami pun langsung turun gunung untuk memberantas kejahatan (halah) dan kembali lagi ke LPK. Sesampainya di LPK, kami istirahat sebentar dan dilanjutkan dengan acara masak-masak bareng (yeee.. padahal cm cewek yg masak :D)
Ohya, perkenalkan, inilah juru masak kami di LPK Tepi Sawah.. ūüėõ

Kak Niken & Kak Mega (ga kelihatan mukanya)
Kak Mega, Luksie dan Iis

Lantas kemanakah yang cowok?? tenang, yg cowok ga pada hilang kok. Mereka (hanya) istirahat sambil maenan laptop (dibawah kipas angin).. ūüėÄ
Selang beberapa menit, akhirnya taraaaaaaaaa… Nasi + Lauk sudah siap untuk disantap bersama. Terimakasih untuk Kak Mega, Kak Niken, Luksie dan Iis yang telah memasak untuk kamiiiiii.. :)
Saatnya makaaaaannn…..

 

 

Oke sekian dulu ya..
Terimakasih sudah berkunjung kemari, semoga menghibur dan ditunggu kritik dan sarannya.. ^^

 

Posted by on 13 September 2012 in Thoriq Aziz

Leave a comment

Share folder/ file via LAN

Kali ini saya mencoba mengupas sedikit mengenai share folder/ file menggunakan LAN (Local Area Network). Berdasarkan pengalaman, ketika kita mengadakan suatu workshop IT di suatu Lab komputer, terkadang software atau perangkat lunak yang bakal digunakan untuk workshop belum terinstall  di komputer lab. Jadi otomatis kita mesti install software tersebut ke masing-masing komputer. Dan parahnya lagi ketika kita hanya memliki 1 media penyimpanan misalkan saja Flashdrive (FD), jadi akankah kita meng-copy-nya satu2 ke komputer secara bergantian?
Berikut adalah sedikit tips dari saya ketika komputer di suatu Lab saling terhubung menggunakan LAN:

  1. Masuk ke direktori file yang akan kita share. Kemudian klik kanan pada folder/ file tersebut ‚Äď> Properties ‚Äď> Kemudian pilih tab Sharing (seperti gambar berikut):shareKemudian Click Share‚Ķ, dan jika ingin mengatur fitur share ini bisa click Advanced Sharing‚Ķ
  2. Setelah kita selesai men-setting file/ folder untuk di share, kemudian buka CMD (Command Prompt) dan ketikkan ipconfig untuk mengetahui ip komputer dimana kita meletakkan file yang di sharing. Lalu catat untuk ip LAN-nya.
  3. Langkah terakhir, untuk mengambil file yang di share tersebut bukalah run (Logo Windows + R) pada komputer lain, lalu ketikkan \\ipLAN dan OK. Dari situ kita bisa meng-copynya tanpa menggunakan Flashdrive atau semacamnya. Contoh: misalkan ip LAN komputer yg ng-share : 172.20.33.200, maka untuk mengambil file yang di share ketikkn pada Run: \\172.20.33.200

Terimakasih atas kunjungannya.. Semoga bermanfaat.. CMIIW

 

Posted by on 7 August 2012 in Academic, Thoriq Aziz

Leave a comment

Aplikasi Pencarian Ruangan IPB di Windows Phone (part 2)

Seperti yang saya janjikan pada postingan sebelumnya yakni Aplikasi Pencarian Ruangan IPB di Windows Phone, maka disini saya akan share mengenai tahap-tahap pembuatan aplikasi ini. Berikut langkah-langkahnya:

  1. Buka Microsoft Visual Studio 2010 Ultimate-nya, kemudian buatlah sebuat project baru di Windows Phone Databound Application dan OK. apri1
  2. Pada MainPage.xaml, kita buat tampilan untuk halaman search seperti berikut
     1: <!--ContentPanel - place additional content here-->

     

     2:         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

     

     3:             <TextBox Height="72" HorizontalAlignment="Left" Margin="12,39,0,0" Name="txtCari" Text="" VerticalAlignment="Top" Width="391" />

     

     4:             <Button Content="Search" Height="72" HorizontalAlignment="Left" Margin="12,117,0,0" Name="btnSearch" VerticalAlignment="Top" Width="134" Click="btnSearch_Click" />

     

     5:         </Grid>

     

     6:         <ListBox Height="410" HorizontalAlignment="Left" Margin="0,195,0,0" x:Name="MainListBox" VerticalAlignment="Top" Width="480" Grid.Row="1" ItemsSource="{Binding Items}" SelectionChanged="MainListBox_SelectionChanged">

     

     7:             <ListBox.ItemTemplate>

     

     8:                 <DataTemplate>

     

     9:                     <StackPanel Orientation="Horizontal" Height="200" Width="420">

     

     10:                                 <StackPanel Orientation="Vertical"  >

     

     11:                                     <StackPanel Margin="0,10,0,5" Orientation="Horizontal">

     

     12:                                         <TextBlock MinWidth="200" x:Name="txtID" Text="{Binding IdRuangan}" Style="{StaticResource PhoneTextLargeStyle}" ></TextBlock>

     

     13:                                     </StackPanel>

     

     14:                                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     15:                                         <TextBlock MinWidth="200" x:Name="txtNamaRuangan" Text="{Binding NamaRuangan}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     16:                                     </StackPanel>

     

     17:                                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     18:                                         <TextBlock MinWidth="200" x:Name="txtLokasi" Text="{Binding Lokasi}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     19:                                     </StackPanel>

     

     20:                                 </StackPanel>

     

     21:                     </StackPanel>

     

     22:                 </DataTemplate>

     

     23:             </ListBox.ItemTemplate>

     

     24:         </ListBox>

     

     

     

  3. Selanjutnya buatlah sebuah kelas baru didalam folder View Models dengan cara klik kanan pada folder tersebut kemudian Add > New Item… > pilih Class dan beri nama classroom.apri2
  4. Isi dari kelas classroom ini adalah sebagai berikut:
     1: public class classroom

     

     2:     {

     

     3:         private String idRuangan;

     

     4:         public String IdRuangan

     

     5:         {

     

     6:             get { return idRuangan; }

     

     7:             set

     

     8:             {

     

     9:                 if (value != idRuangan)

     

     10:                 {

     

     11:                     idRuangan = value;

     

     12:                     NotifyPropertyChanged("IdRuangan");

     

     13:                 }

     

     14:             }

     

     15:         }

     

     16:

     

     17:         private String fakultas;

     

     18:         public String Fakultas

     

     19:         {

     

     20:             get { return fakultas; }

     

     21:             set

     

     22:             {

     

     23:                 if (value != fakultas)

     

     24:                 {

     

     25:                     fakultas = value;

     

     26:                     NotifyPropertyChanged("Fakultas");

     

     27:                 }

     

     28:             }

     

     29:         }

     

     30:

     

     31:         private String departemen;

     

     32:         public String Departemen

     

     33:         {

     

     34:             get { return departemen; }

     

     35:             set

     

     36:             {

     

     37:                 if (value != departemen)

     

     38:                 {

     

     39:                     departemen = value;

     

     40:                     NotifyPropertyChanged("Departemen");

     

     41:                 }

     

     42:             }

     

     43:         }

     

     44:

     

     45:         private String lokasi;

     

     46:         public String Lokasi

     

     47:         {

     

     48:             get { return lokasi; }

     

     49:             set

     

     50:             {

     

     51:                 if (value != lokasi)

     

     52:                 {

     

     53:                     lokasi = value;

     

     54:                     NotifyPropertyChanged("Lokasi");

     

     55:                 }

     

     56:             }

     

     57:         }

     

     58:

     

     59:         private String namaRuangan;

     

     60:         public String NamaRuangan

     

     61:         {

     

     62:             get { return namaRuangan; }

     

     63:             set

     

     64:             {

     

     65:                 if (value != namaRuangan)

     

     66:                 {

     

     67:                     namaRuangan = value;

     

     68:                     NotifyPropertyChanged("NameRuangan");

     

     69:                 }

     

     70:             }

     

     71:         }

     

     72:

     

     73:

     

     74:         private String kodeRuangan;

     

     75:         public String KodeRuangan

     

     76:         {

     

     77:             get { return kodeRuangan; }

     

     78:             set

     

     79:             {

     

     80:                 if (value != kodeRuangan)

     

     81:                 {

     

     82:                     kodeRuangan = value;

     

     83:                     NotifyPropertyChanged("KapasitasKuliah");

     

     84:                 }

     

     85:             }

     

     86:         }

     

     87:

     

     88:         private String papanTulis;

     

     89:         public String PapanTulis

     

     90:         {

     

     91:             get { return papanTulis; }

     

     92:             set

     

     93:             {

     

     94:                 if (value != papanTulis)

     

     95:                 {

     

     96:                     papanTulis = value;

     

     97:                     NotifyPropertyChanged("PapanTulis");

     

     98:                 }

     

     99:             }

     

     100:         }

     

     101:

     

     102:         private String proyektor;

     

     103:         public String Proyektor

     

     104:         {

     

     105:             get { return proyektor; }

     

     106:             set

     

     107:             {

     

     108:                 if (value != proyektor)

     

     109:                 {

     

     110:                     proyektor = value;

     

     111:                     NotifyPropertyChanged("proyektor");

     

     112:                 }

     

     113:             }

     

     114:         }

     

     115:

     

     116:         private String latitude;

     

     117:         public String Latitude

     

     118:         {

     

     119:             get { return latitude; }

     

     120:             set

     

     121:             {

     

     122:                 if (value != latitude)

     

     123:                 {

     

     124:                     latitude = value;

     

     125:                     NotifyPropertyChanged("Latitude");

     

     126:                 }

     

     127:             }

     

     128:         }

     

     129:

     

     130:         private String longitude;

     

     131:         public String Longitude

     

     132:         {

     

     133:             get { return longitude; }

     

     134:             set

     

     135:             {

     

     136:                 if (value != longitude)

     

     137:                 {

     

     138:                     longitude = value;

     

     139:                     NotifyPropertyChanged("Longitude");

     

     140:                 }

     

     141:             }

     

     142:         }

     

     143:

     

     144:         public event PropertyChangedEventHandler PropertyChanged;

     

     145:

     

     146:         private void NotifyPropertyChanged(String propertyName)

     

     147:         {

     

     148:             PropertyChangedEventHandler handler = PropertyChanged;

     

     149:             if (null != handler)

     

     150:             {

     

     151:                 handler(this, new PropertyChangedEventArgs(propertyName));

     

     152:             }

     

     153:         }

     

     154:     }

     

     

     

  5. Tambahkan sebuah kelas baru lagi dengan nama  MainClassroomViewModel
     1: public class MainClassroomViewModel

     

     2:     {

     

     3:         public MainClassroomViewModel()

     

     4:         {

     

     5:             Items = new ObservableCollection<classroom>();

     

     6:         }

     

     7:

     

     8:         public ObservableCollection<classroom> Items { get; set; }

     

     9:

     

     10:         public event PropertyChangedEventHandler PropertyChanged;

     

     11:         private void NotifyPropertyChanged(String propertyName)

     

     12:         {

     

     13:             PropertyChangedEventHandler handler = PropertyChanged;

     

     14:

     

     15:             if (null != handler)

     

     16:             {

     

     17:                 handler(this, new PropertyChangedEventArgs(propertyName));

     

     18:             }

     

     19:         }

     

     20:     }

     

     

     

  6. Sekarang kita beranjak ke MainPage.xaml.cs, dan tambahkan kode berikut:
     1: public partial class MainPage : PhoneApplicationPage

     

     2:     {

     

     3:         MainClassroomViewModel classroomViewModel = new MainClassroomViewModel();

     

     4:         string uri = String.Format("http://9ngak.com/ruanganIPB.xml");

     

     5:

     

     6:

     

     7:         void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)

     

     8:         {

     

     9:

     

     10:             if (e.Result != null)

     

     11:             {

     

     12:                 classroomViewModel = ParseClassroomFromXML(e.Result);

     

     13:                 if (DataContext == null)

     

     14:                     DataContext = classroomViewModel;

     

     15:             }

     

     16:         }

     

     17:

     

     18:         public MainClassroomViewModel ParseClassroomFromXML(String result)

     

     19:         {

     

     20:             MainClassroomViewModel retval = new MainClassroomViewModel();

     

     21:             retval.Items.Clear();

     

     22:

     

     23:

     

     24:             XDocument xdoc = XDocument.Parse(result);

     

     25:             var data = from x in xdoc.Descendants("ruangan") where x.Element("NamaRuangan").Value.Contains(txtCari.Text)

     

     26:                        select new classroom

     

     27:                 {

     

     28:                     IdRuangan = x.Element("IDRuangan").Value,

     

     29:                     NamaRuangan = x.Element("NamaRuangan").Value,

     

     30:                     Lokasi = x.Element("Lokasi").Value,

     

     31:                     Latitude = x.Element("Latitude").Value,

     

     32:                     Longitude = x.Element("Longitude").Value

     

     33:                 };

     

     34:             if (data == null)

     

     35:             {

     

     36:                 btnAddClassroom.Visibility = System.Windows.Visibility.Visible;

     

     37:             }

     

     38:             else

     

     39:             {

     

     40:                 foreach (var a in data)

     

     41:                 {

     

     42:                     retval.Items.Add(a);

     

     43:                 }

     

     44:             }

     

     45:             return retval;

     

     46:         }

     

     47:

     

     48:         public SearchClassroom()

     

     49:         {

     

     50:             InitializeComponent();

     

     51:         }

     

     52:

     

     53:         private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)

     

     54:         {

     

     55:             ListBox listbox = sender as ListBox;

     

     56:             if (listbox != null && listbox.SelectedItem != null)

     

     57:             {

     

     58:                 classroom cls = (classroom)listbox.SelectedItem;

     

     59:                 if (cls.NamaRuangan != null)

     

     60:                 {

     

     61:                     this.NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem=" + cls.NamaRuangan, UriKind.Relative));

     

     62:                 }

     

     63:             }

     

     64:         }

     

     65:

     

     66:         private void Btn_Click(object sender, RoutedEventArgs e)

     

     67:         {

     

     68:

     

     69:             ListBox listbox = sender as ListBox;

     

     70:             if (listbox != null && listbox.SelectedItem != null)

     

     71:             {

     

     72:                 classroom cls = (classroom)listbox.SelectedItem;

     

     73:                 if (cls.NamaRuangan != null)

     

     74:                 {

     

     75:                     this.NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItem="+cls.NamaRuangan, UriKind.Relative));

     

     76:                 }

     

     77:             }

     

     78:         }

     

     79:

     

     80:         private void btnSearch_Click(object sender, RoutedEventArgs e)

     

     81:         {

     

     82:             WebClient wc = new WebClient();

     

     83:             wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

     

     84:             wc.DownloadStringAsync(new Uri(uri));

     

     85:         }

     

     86:

     

     87:

     

     88:         private void btnAddClassroom_Click(object sender, RoutedEventArgs e)

     

     89:         {

     

     90:             NavigationService.Navigate(new Uri("/AddClassroom.xaml", UriKind.Relative));

     

     91:         }

     

     92:     }

     

     

    Coba jalankan dengan tekan F5 (sebelum dijalankan pastikan terlebih dahulu bahwa laptop Anda sudah terkoneksi dengan internet karena kita mengambil data dari sini). Selanjutnya coba cari ruangan dengan memasukkan kode ruangan, misalkan saja RK U dan klik Search.

    Hasil Pencarian

  7. Oke, selanjutnya kita akan menggunakan DetailsPage.xaml yang sudah ada di project untuk menampilkan informasi detail dari ruangan hasil pencarian. Buka DetailsPage.xaml dan ubah tampilan menjadi seperti berikut:
     1: <!--TitlePanel contains the name of the application and page title-->

     

     2:         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">

     

     3:             <TextBlock x:Name="PageTitle" Text="APRI" Style="{StaticResource PhoneTextNormalStyle}"/>

     

     4:             <TextBlock x:Name="ListTitle" Text="{Binding NamaRuangan}" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>

     

     5:         </StackPanel>

     

     6:

     

     7:         <!--ContentPanel contains details text. Place additional content here-->

     

     8:         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" DataContext="{Binding Items[0]}">

     

     9:             <ScrollViewer HorizontalScrollBarVisibility="Auto">

     

     10:                 <StackPanel Orientation="Vertical" >

     

     11:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     12:                         <TextBlock MinWidth="200" Text="ID Classroom" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     13:                         <TextBlock x:Name="txtId" Text="{Binding IdRuangan}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     14:                     </StackPanel>

     

     15:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     16:                         <TextBlock MinWidth="200" Text="Faculty" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     17:                         <TextBlock x:Name="txtFakultas" Text="{Binding Fakultas}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     18:                     </StackPanel>

     

     19:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     20:                         <TextBlock MinWidth="200" Text="Department" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     21:                         <TextBlock x:Name="txtDepartemen" Text="{Binding Departemen}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     22:                     </StackPanel>

     

     23:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     24:                         <TextBlock MinWidth="200" Text="Location" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     25:                         <TextBlock x:Name="txtLokasi"  Text="{Binding Lokasi}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray"></TextBlock>

     

     26:                     </StackPanel>

     

     27:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     28:                         <TextBlock MinWidth="200" Text="Classroom Code" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     29:                         <TextBlock x:Name="txtKR" Text="{Binding KodeRuangan}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray"></TextBlock>

     

     30:                     </StackPanel>

     

     31:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     32:                         <TextBlock MinWidth="200" Text="Whiteboard" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     33:                         <TextBlock x:Name="txtPT" Text="{Binding PapanTulis}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray"></TextBlock>

     

     34:                     </StackPanel>

     

     35:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     36:                         <TextBlock MinWidth="200" Text="Projector" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     37:                         <TextBlock x:Name="txtProyektor" Text="{Binding Proyektor}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray"></TextBlock>

     

     38:                     </StackPanel>

     

     39:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     40:                         <TextBlock MinWidth="200" Text="Latitude" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     41:                         <TextBlock x:Name="txtLat" Text="{Binding Latitude}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray"></TextBlock>

     

     42:                     </StackPanel>

     

     43:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     44:                         <TextBlock MinWidth="200" Text="Longitude" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     45:                         <TextBlock x:Name="txtLong" Text="{Binding Longitude}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray"></TextBlock>

     

     46:                     </StackPanel>

     

     47:                     <Button Content="Nearest Classroom" Height="71" Name="btnNearest" Width="268" Click="btnNearest_Click" />

     

     48:                     <!--<Button Content="View in Maps" Height="72" Name="button1" Width="244" Click="button1_Click" />-->

     

     49:                 </StackPanel>

     

     50:             </ScrollViewer>

     

     51:         </Grid>

     

     

  8. Pada DetailsPage.xaml.cs
     1: public partial class DetailsPage : PhoneApplicationPage

     

     2:     {

     

     3:         string selectedClassroom = "";

     

     4:         classroom classroomDetail = null;

     

     5:         // Constructor

     

     6:         public DetailsPage()

     

     7:         {

     

     8:             InitializeComponent();

     

     9:         }

     

     10:

     

     11:         // When page is navigated to set data context to selected item in list

     

     12:

     

     13:

     

     14:         protected override void OnNavigatedTo(NavigationEventArgs e)

     

     15:         {

     

     16:             selectedClassroom = NavigationContext.QueryString["selectedItem"];

     

     17:

     

     18:             base.OnNavigatedTo(e);

     

     19:

     

     20:             if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedClassroom))

     

     21:             {

     

     22:                 WebClient wc = new WebClient();

     

     23:                 String uri = String.Format("http://9ngak.com/ruanganIPB.xml", selectedClassroom);

     

     24:                 wc.DownloadStringCompleted +=new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

     

     25:                 wc.DownloadStringAsync(new Uri(uri));

     

     26:             }

     

     27:         }

     

     28:

     

     29:         void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)

     

     30:         {

     

     31:             if (e.Result != null)

     

     32:             {

     

     33:                 classroom classDetail = ParseClassroomFromXML(e.Result);

     

     34:                 DataContext = classDetail;

     

     35:                 LayoutRoot.Visibility = System.Windows.Visibility.Visible;

     

     36:             }

     

     37:         }

     

     38:

     

     39:

     

     40:         public classroom ParseClassroomFromXML(String result)

     

     41:         {

     

     42:

     

     43:             XElement xdoc = XElement.Parse(result);

     

     44:

     

     45:             var data = from p in xdoc.Descendants("ruangan")

     

     46:                         where p.Element("NamaRuangan").Value == selectedClassroom

     

     47:                         select new classroom

     

     48:                 {

     

     49:                     IdRuangan = p.Element("IDRuangan").Value,

     

     50:                     Fakultas = p.Element("Fakultas").Value,

     

     51:                     Departemen = p.Element("Departemen").Value,

     

     52:                     Lokasi = p.Element("Lokasi").Value,

     

     53:                     NamaRuangan = p.Element("NamaRuangan").Value,

     

     54:                     KodeRuangan = p.Element("KodeRuangan").Value,

     

     55:                     PapanTulis = p.Element("PapanTulis").Value,

     

     56:                     Proyektor = p.Element("Proyektor").Value,

     

     57:                     Latitude = p.Element("Latitude").Value,

     

     58:                     Longitude = p.Element("Longitude").Value

     

     59:                 };

     

     60:

     

     61:             foreach (var a in data)

     

     62:             {

     

     63:                 ListTitle.Text = a.NamaRuangan;

     

     64:                 txtId.Text = a.IdRuangan;

     

     65:                 txtFakultas.Text = a.Fakultas;

     

     66:                 txtDepartemen.Text = a.Departemen;

     

     67:                 txtLokasi.Text = a.Lokasi;

     

     68:                 txtKR.Text = a.KodeRuangan;

     

     69:                 txtPT.Text = a.PapanTulis;

     

     70:                 txtProyektor.Text = a.Proyektor;

     

     71:                 txtLat.Text = a.Latitude;

     

     72:                 txtLong.Text = a.Longitude;

     

     73:             }

     

     74:

     

     75:                 return classroomDetail;

     

     76:         }

     

     77:

     

     78:         //private void GoToMap(object sender, MouseButtonEventArgs e)

     

     79:         //{

     

     80:         // TextBlock tb = (TextBlock)sender;

     

     81:         // Nilai nl = new Nilai();

     

     82:         // //nl.IdRuangan = tb.Text.ToString();

     

     83:

     

     84:         // NavigationService.Navigate(new Uri("/Map.xaml", UriKind.Relative));

     

     85:         // //NavigationService.Navigate(new Uri("/DetailsPage.xaml", UriKind.Relative));

     

     86:         //}

     

     87:

     

     88:         private void btnNearest_Click(object sender, RoutedEventArgs e)

     

     89:         {

     

     90:

     

     91:             NavigationService.Navigate(new Uri("/NearestClassroom.xaml?selectedID=" + txtLat.Text, UriKind.Relative));

     

     92:         }

     

     93:

     

     94:         private void button1_Click(object sender, RoutedEventArgs e)

     

     95:         {

     

     96:             NavigationService.Navigate(new Uri("/Map.xaml?selectedID=" + txtId.Text, UriKind.Relative));

     

     97:         }

     

     98:     }

     

     

  9. Langkah selanjutnya, kita akan menambah halaman baru yang akan digunakan untuk menampilkan ruangan yang dekat dengan ruangan yang dicari. Caranya klik kanan pada project DataBoundApri > Add > New Item… > Windows Phone Portrait Page  dan beri nama NearestClassroom.apri3Ubah tampilannya menjadi seperti berikut:

     

     1: <!--TitlePanel contains the name of the application and page title-->

     

     2:         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">

     

     3:             <TextBlock x:Name="ApplicationTitle" Text="APRI" Style="{StaticResource PhoneTextNormalStyle}"/>

     

     4:             <TextBlock x:Name="PageTitle" Text="Nearest Class" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>

     

     5:         </StackPanel>

     

     6:

     

     7:         <!--ContentPanel - place additional content here-->

     

     8:         <!--<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

     

     9:

     

     10:         </Grid>-->

     

     11:         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" DataContext="{Binding}">

     

     12:             <ScrollViewer HorizontalScrollBarVisibility="Auto">

     

     13:                 <StackPanel Orientation="Vertical" >

     

     14:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     15:                         <TextBlock MinWidth="200" Text="ID Classroom" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     16:                         <TextBlock x:Name="txtId" Text="{Binding IdRuangan}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     17:                     </StackPanel>

     

     18:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     19:                         <TextBlock MinWidth="200" Text="Name" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     20:                         <TextBlock x:Name="txtName" Text="{Binding NamaRuangan}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     21:                     </StackPanel>

     

     22:                     <StackPanel Margin="0,5,0,5" Orientation="Horizontal">

     

     23:                         <TextBlock MinWidth="200" Text="Location" Style="{StaticResource PhoneTextLargeStyle}"></TextBlock>

     

     24:                         <TextBlock x:Name="txtLocation" Text="{Binding Lokasi}" Style="{StaticResource PhoneTextLargeStyle}" Foreground="Gray" ></TextBlock>

     

     25:                     </StackPanel>

     

     26:                 </StackPanel>

     

     27:             </ScrollViewer>

     

     28:         </Grid>

     

    dan pada NearestClassroom.xaml.cs

     

     1: public partial class NearestClassroom : PhoneApplicationPage

     

     2:     {

     

     3:         string idRuangan = "";

     

     4:         classroom nearestClass = null;

     

     5:

     

     6:         public NearestClassroom()

     

     7:         {

     

     8:             InitializeComponent();

     

     9:         }

     

     10:

     

     11:         protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)

     

     12:         {

     

     13:             idRuangan = NavigationContext.QueryString["selectedID"];

     

     14:

     

     15:             base.OnNavigatedTo(e);

     

     16:

     

     17:             if (NavigationContext.QueryString.TryGetValue("selectedID", out idRuangan))

     

     18:             {

     

     19:                 WebClient wc = new WebClient();

     

     20:                 String uri = String.Format("http://9ngak.com/ruanganIPB.xml", idRuangan);

     

     21:                 wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);

     

     22:                 wc.DownloadStringAsync(new Uri(uri));

     

     23:             }

     

     24:         }

     

     25:

     

     26:         void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)

     

     27:         {

     

     28:             if (e.Result != null)

     

     29:             {

     

     30:                 classroom classDetail = ParseClassroomFromXML(e.Result);

     

     31:                 DataContext = classDetail;

     

     32:                 LayoutRoot.Visibility = System.Windows.Visibility.Visible;

     

     33:             }

     

     34:         }

     

     35:

     

     36:         public classroom ParseClassroomFromXML(String result)

     

     37:         {

     

     38:             int chunkSize = 6;

     

     39:             string id = idRuangan.Substring(0, chunkSize);

     

     40:

     

     41:             XElement xdoc = XElement.Parse(result);

     

     42:

     

     43:             var data = from p in xdoc.Descendants("ruangan")

     

     44:                        where p.Element("Latitude").Value.Contains(id)

     

     45:                        select new classroom

     

     46:                        {

     

     47:                            IdRuangan = p.Element("IDRuangan").Value,

     

     48:                            Lokasi = p.Element("Lokasi").Value,

     

     49:                            NamaRuangan = p.Element("NamaRuangan").Value

     

     50:                        };

     

     51:

     

     52:             foreach (var a in data)

     

     53:             {

     

     54:                 txtId.Text = a.IdRuangan;

     

     55:                 txtName.Text = a.NamaRuangan;

     

     56:                 txtLocation.Text = a.Lokasi;

     

     57:             }

     

     58:

     

     59:             return nearestClass;

     

     60:         }

     

     61:     }

    Baiklah sekarang coba jalankan, jika masih terdapat error atau semacamnya bisa comment disini. Semoga bermanfaat..

    Ebook referensi : Silverlight for Windows Phone LEARN & PRACTICE by Puja Pramudya.

 

Posted by on 7 August 2012 in .NET, Academic, Thoriq Aziz

1 Comment

Aplikasi Pencarian Ruangan IPB di Windows Phone

Aplikasi Pencarian Ruangan IPB (APRI) merupakan project Windows Phone pertama saya dkk yang dibuat dalam rangka memenuhi tugas Mata Kuliah Pengenalan Sistem Berorientasi Objek (PSBO). Aplikasi ini memiliki beberapa fungsi diantaranya melakukan pencarian ruangan berdasarkan kode ruangan yang dimasukkan, menampilkan hasil pencarian, menampilkan detail dari ruangan yang dicari serta menampilkan ruangan yang dekat dengan ruangan yang dicari.  Aplikasi ini dibuat menggunakan bahasa pemrograman C#, sedangkan untuk databasenya kami menggunakan file XML yang bisa dilihat di 9ngak.com/ruanganIPB.xml

Proses bisnis dari aplikasi ini adalah sebagai berikut:

  1. Menampilkan halaman pencarian dimana merupakan tampilan awal ketika aplikasi dijalankan. Home
  2. Masukkan kode ruangan yang akan dicari kedalam textbox pencarian, selanjutnya klik button Search. Hasil pencarian akan ditampilkan kedalam listbox yang juga masih di page yang sama. Hasil Pencarian
  3. Ketika kita memilih salah satu hasil pencarian ruangan maka akan ditampilkan deskripsi detail dari ruangan tersebut. Detail2
  4. Selanjutnya ketika kita klik button Nearest Classroom, akan ditampilkan ruangan yang dekat dengan ruangan tersebut. Ruangan Terdekat

Mengenai tahap-tahap pembuatan aplikasi ini akan saya tulis di postingan selanjutnya.

 

Posted by on 7 August 2012 in .NET, Academic, Thoriq Aziz

Leave a comment

WHATapps (Sistem Penyiraman Otomatis dengan Fuzzy Logic Metode Tsukamoto)

WHATapps, sebuah aplikasi dari kami berempat (Ahmad Thoriq Abdul Aziz, Dian Lestari Auliani, Fahman Haqqi dan Wulandari) yang dibuat dalam rangka memenuhi tugas project Sistem Pakar / Expert System. WHATapps ini merupakan aplikasi berbasis desktop yang digunakan untuk memonitoring dan memsimulasikan jumlah air yang akan diberikan tanaman. Input dari aplikasi ini ada 2, yaitu suhu dan kelembaban. Dari kedua input tersebut akan dihasilkan output berupa lama waktu penyiraman sesuai dengan jumlah air yang dibutuhkan oleh tanaman dengan asumsi kecepatan aliran air tetap atau konstan.
Dari parameter input dan output tadi akan ditetapkan nilai linguistiknya, yakni dimana untuk:

  • Nilai linguistik input suhu udara yaitu
    1. Dingin = 10 – 25 derajat celcius
    2. Sejuk = 20 – 30 derajat cecius
    3. Normal = 25 – 35 derajat celcius
    4. Hangat = 30 – 40 derajat celcius
    5. Panas = 35 – 50 derajat celcius
  • Nilai linguistik input kelembaban yaitu
    1. Kering = 0% – 40%
    2. Normal = 25% – 75%
    3. Basah = 50% – 100%
  • Nilai linguistik output lama waktu yaitu
    1. Cepat = 0 – 2 menit
    2. Sebentar = 1 – 3 menit
    3. AgakSebentar = 2.5 – 5 menit
    4. Sedang = 3.75 – 6.25 menit
    5. AgakLumayan = 5 – 7.5 menit
    6. Lumayan = 7 – 9 menit
    7. Lama = 8 – 10 menit

Sedangkan rule-rule yang kami gunakan yaitu:

  1. IF SuhuDingin AND KelembabanBasah THEN Cepat
  2. IF SuhuDingin AND Kelembaban Normal THEN Sebentar
  3. IF SuhuDingin AND KelembabanKering THEN AgakSebentar
  4. IF SuhuSejuk AND KelembabanBasah THEN Sebentar
  5. IF SuhuSejuk AND Kelembaban Normal THEN AgakSebentar
  6. IF SuhuSejuk AND KelembabanKering THEN Sedang
  7. IF Suhu Normal AND KelembabanBasah THEN AgakSebentar
  8. IF Suhu Normal AND Kelembaban Normal THEN Sedang
  9. IF Suhu Normal AND KelembabanKering THEN AgakLumayan
  10. IF SuhuHangat AND KelembabanBasah THEN Sedang
  11. IF SuhuHangat AND Kelembaban Normal THEN AgakLumayan
  12. IF SuhuHangat AND KelembabanKering THEN Lumayan
  13. IF SuhuPanas AND KelembabanBasah THEN AgakLumayan
  14. IF SuhuPanas AND Kelembaban Normal THEN Lumayan
  15. IF SuhuPanas AND KelembabanKering THEN Lama

Baiklah, berikut merupakan tampilan-tampilan dari aplikasi WHATapps,

Tampilan Splashscreen WHATapps
Tampilan Utama WHATapps
Pop Up Konfirmasi ketika ingin keluar
Tampilan Halaman Simulasi

Untuk melakukan simulasi, pertama klik pada tombol tanaman dan kemudian mengisi nilai kelembaban dari tanaman tersebut. Setelah itu,
atur suhu lingkungan dengan mengisi textbox dengan suhu yang diinginkan, kemudian klik tombol simulasi dan isi tangki
air dengan menekan tombol Isi
Tangki.Untuk menyiram tanaman maka klik tombol Siram sehingga jumlah air
pada tangki akan berkurang.

Tampilan Setelah Melakukan Simulasi

Daftar pustaka : Sofwan, A.
2005. Penerapan Fuzzy Logic pada Sistem Pengaturan Jumlah Air
Berdasarkan Suhu dan Kelembaban. Yogyakarta

 

Posted by on 7 August 2012 in .NET, Academic, Thoriq Aziz

Leave a comment

QR code

QR code adalah kode matriks (barcode 2 dimensi) yang diciptakan oleh Denso Wave – perusahaan Jepang – pada tahun 1994. QR merupakan singkatan dari Quick Response, dengan tujuan untuk menyampaikan informasi dan mendapatkan respons dengan cepat. QR sangat popular di Jepang karena kemampuannya menyimpan data yang lebih besar dari pada barcode sehingga mampu mengkodekan informasi dalam bahasa jepang sebab dapat menampung huruf kanji. QR mendapatkan standarisasi internasional dan standarisasi Jepang berupa ISO / IEC 18004 dan JIS-X-0510.(Sumber: http://www.laysander.com/berita/implementasi-qr-code)

Kode QR memiliki kapasitas tinggi dalam data pengkodean, yaitu mampu menyimpan semua jenis data, seperti data numerik, data alphabetis, kanji,kkana,hiragana,simbol,dan kode biner. Secara spesifik, kode QR mampu menyimpan data jenis numerik sampai dengan 7.089 karakter, data alphanumerik sampai dengan 4.296 karakter, kode binari sampai dengan 2.844 byte, dan huruf kanji sampai dengan 1.817 karakter. Selain itu kode QR memiliki tampilan yang lebih kecil daripada kode batang. Hal ini dikarenakan kode QR mampu menampung data secara horizontal dan vertikal, oleh karena itu secara otomatis ukuran dari tampilannya gambar kode QR bisa hanya seperspuluh dari ukuran sebuah kode batang. Tidak hanya itu kode QR juga tahan terhadap kerusakan, sebab kode QR mampu memperbaiki kesalahan sampai dengan 30%. Oleh karena itu, walaupun sebagian simbol kode QR kotor ataupun rusak, data tetap dapat disimpan dan dibaca. Tiga tanda berbentuk persegi di tiga sudut memiliki fungsi agar simbol dapat dibaca dengan hasil yang sama dari sudut manapun sepanjang 360 derajat. (Sumber: http://id.wikipedia.org/wiki/Kode_QR)

Mengenai implementasi QR code sendiri dalam bayangan saya adalah pengganti KTM (Kartu Tanda Mahasiswa) yang bisa berbentuk kartu juga, atau cincin atau yang lainnya(yang mudah dibawa). Jika KTM hanya muat berisi Nama Universitas, Nama Mahasiswa dan NRP saja, maka dengan menggunakan QR code (yang berwujud seperti sebuah gambar) akan mampu memuat lebih dari daya muat KTM, dimana bisa berisi Nama Universitas, Nama mahasiswa, NRP, TTL, Alamat Rumah, Nomor Rekening, Tanggal berlaku dan masih banyak lagi.

 

Posted by on 26 January 2012 in Academic

3 Comments

Tags:

CRUD database di WPF

‚ÄúMenulis dengan tujuan arsip kalo suatu saat nanti butuh‚ÄĚ, mungkin kalimat itu yang bisa mewakili postingan kali ini. Mengingat waktu ngerjain project mata kuliah Interaksi Manusia Komouter kemarin mesti googling lagi gara-gara project yang memiliki fungsi sama hilang karena hardisk laptop terformat semua.. hoho

Tapi disini saya tidak akan menjelaskan secara detail dari awal sampai akhir, saya hanya akan memberikan event click yang dibutuhkan untuk melakukan CRUD database di WPF.

Pertama, event click untuk insert :

private void btnInsertSchedule_Click(object sender, RoutedEventArgs e)
{
    SqlConnection sconn = new SqlConnection("Data Source=AZIDA-PC\\ILKOMIPB;Initial Catalog=imk2011;Integrated Security=True");
    string a = DateTimePicker1.Text;
    string b = textBoxAuthor.Text;
    string c = textBoxSubject.Text;
    string d = textBoxInformation.Text;
    string f = category.Text;
    if ((a == "") || (b == "") || (c == "") || (d == "") || (f == ""))
    {
        MessageBox.Show("All textBox are required!");
    }
    else
    {
		SqlDataAdapter sda = new SqlDataAdapter();
		sda.InsertCommand = new SqlCommand("INSERT INTO schedule VALUES(@dateTime,@author,@category,@subject,@information)", sconn);
		sda.InsertCommand.Parameters.Add("@dateTime", SqlDbType.DateTime).Value = DateTimePicker1.Text;
		sda.InsertCommand.Parameters.Add("@author", SqlDbType.VarChar).Value = textBoxAuthor.Text;
		sda.InsertCommand.Parameters.Add("@category", SqlDbType.VarChar).Value = category.Text;
		sda.InsertCommand.Parameters.Add("@subject", SqlDbType.VarChar).Value = textBoxSubject.Text;
		sda.InsertCommand.Parameters.Add("@information", SqlDbType.VarChar).Value = textBoxInformation.Text;
		MessageBox.Show("New schedule added successfully");

		sconn.Open();
		sda.InsertCommand.ExecuteNonQuery();
		sconn.Close();
		BindDataSchedule();
		DateTimePicker1.Text = "";
		textBoxAuthor.Text = "";
		textBoxSubject.Text = "";
		textBoxInformation.Text = "";
    }
}

Kedua, event click untuk read :

public void btnTampil_Click(object sender, RoutedEventArgs e)
{
    SqlConnection sconn = new SqlConnection("Data Source=AZIDA-PC\\ILKOMIPB;Initial Catalog=imk2011;Integrated Security=True");
    SqlCommand scomm = new SqlCommand("SELECT dateTime,author,category,subject,information FROM schedule", sconn);
    DataSet ds = new DataSet();
    SqlDataAdapter sda = new SqlDataAdapter();
    try
    {
        sconn.Open();
        sda.SelectCommand = scomm;
        sda.Fill(ds, "schedule");
        //menampilkan data di datagrid
        dataGrid1.DataContext = ds;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
    finally
    {
        sconn.Close();
    }
}

Ketiga, event click untuk update :

private void btnUpdateSchedule_Click(object sender, RoutedEventArgs e)
{
    SqlConnection sconn = new SqlConnection("Data Source=AZIDA-PC\\ILKOMIPB;Initial Catalog=imk2011;Integrated Security=True");
    string a = textBoxDateTime.Text;
    string b = textBoxAuthor.Text;
    string c = textBoxSubject.Text;
    string d = textBoxInformation.Text;
    string f = category.Text;
    if ((a == "") || (b == "") || (c == "") || (d == "") || (f == ""))
    {
        MessageBox.Show("All textBox are required!");
    }
    else
    {
        try
        {
            sconn.Open();
            string update = @"Update schedule Set dateTime='" + a + "', author='" + b + "', category='" + f + "',information='" + d + "' where subject='" + c + "'";
            SqlCommand scomm = new SqlCommand(update, sconn);
            scomm.ExecuteNonQuery();
			MessageBox.Show("Schedule updated successfully");
            sconn.Close();
            this.Close();
        }
        catch (Exception ex)
        {
			MessageBox.Show(ex.ToString());
        }
    }
}

dan untuk mengambil data dari datagrid :

DataRowView _DataView = dataGrid1.CurrentCell.Item as DataRowView;
if (_DataView != null)
{
	//mengambil data dari datagrid dan menampilkan ke window jadwal
    Jadwal jw = new Jadwal();
    jw.Show();
    jw.textBoxDateTime.Text = _DataView.Row[0].ToString();
    jw.textBoxAuthor.Text = _DataView.Row[1].ToString();
    jw.category.Text = _DataView.Row[2].ToString();
    jw.textBoxSubject.Text = _DataView.Row[3].ToString();
    jw.textBoxInformation.Text = _DataView.Row[4].ToString();
}

keempat, event delete :

private void btnDeleteSchedule_Click(object sender, RoutedEventArgs e)
{
    DataRowView _DataView = dataGrid1.CurrentCell.Item as DataRowView;
	if (_DataView != null)
    {
        string id = _DataView.Row[3].ToString();
	try
        {
            SqlConnection sconn = new SqlConnection("Data Source=AZIDA-PC\\ILKOMIPB;Initial Catalog=imk2011;Integrated Security=True");
            sconn.Open();
            string dell = @"Delete from schedule where subject='" + id + "'";
            SqlCommand scomm = new SqlCommand(dell, sconn);
            scomm.ExecuteNonQuery();
            MessageBox.Show("One Schedule Deleted");
            this.BindDataDairy();
        }
        catch (Exception ex)
        {
	MessageBox.Show(ex.ToString());
        }
    }
}

Terimakasih atas kunjungannya.. Semoga bermanfaat dan tunggu postingan-postingan selanjutnya.. Smile

 

Posted by on 26 January 2012 in .NET

Leave a comment

Tags: