Sunday, 1 September 2013

VISUAL C# No.34: Membuat Simple Photo Gallery - Next Previous Button Navigation

Advertisement

Membuat Simple Photo Gallery – Dengan Next dan Previous Button

Lihat, betapa mudahnya membuat sebuah aplikasi sederhana simple photo gallery dengan C#, cobalah :)
Tutorial ini merupakan tutorial yang terinspirasi dari tutorial sebelumnya yaitu ‘Membuat Picture Viewer’. Tak terasa tutorial ‘Membuat Picture Viewer’ sudah menginjak ke part penambahan tombol prev dan next. Tetapi menurut saya pribadi, ada baiknya tutorial prev dan next ini terlebih dahulu kita sendirikan agar lebih mudah dipahami pembaca, baru nanti kita buatkan part berikutnya.

Tutorial ini sengaja kita buat dalam bentuk text, sangat simple dan kodenya sederhana sekali, bila anda telah menggunakan Visual Studio 2010 pasti sudah langsung mampu mengikuti tutorial text ini.




Perhatikan, membuat simple photo gallery ini sangat gampang sekali asal anda menggunakan Visual Studio. Untuk versi express (gratis) anda dapat mendownloadnya di MSDN.

Pertama, mari kita buat gui dengan mempersiapkan beberapa komponen seperti MenuStrip, PictureBox, dan Button. Kemudian kita tata sedemikian rupa dan kita berikan nama kepada masing masing komponen seperti pada gambar berikut ini:



Lihat, kita menata sedemikian rupa, sangat mudah, anda tinggal drag and drop saja komponen yang anda butuhkan ke dalam Windows Form.
Pada menuStrip, kita menambahkan Open dan Exit, untuk button, kita membuat dua buah button dengan nama masing masing seperti pada gambar.
Sudah taukan bagaimana menambahkan fungsi/method ke setiap komponen? Yup, anda tinggal double click saja komponen.

Langsung saja ke kode, perhatikan kode simple berikut ini:
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /***********
  2.  * SIMPLE IMAGE GALLERY
  3.  * PREV AND NEXT BUTTON
  4.  * BY Okie Eko Wardoyo
  5.  * MediaTutorial.web.id
  6.  * *********/
  7.  
  8. using System;
  9. using System.Collections.Generic;
  10. using System.ComponentModel;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Windows.Forms;
  16. using System.IO; //perlu ditambahkan untuk directory
  17.  
  18. namespace NEXT_PREVIOUS
  19. {
  20.     public partial class Form1 : Form
  21.     {
  22.         Bitmap img = null;
  23.  
  24.         //kita buat variable
  25.         string directoryPath;
  26.         string[] filesArray;
  27.         int totalFiles;
  28.         int i = 0;
  29.  
  30.         public Form1()
  31.         {
  32.             InitializeComponent();
  33.         }
  34.  
  35.         private void exitToolStripMenuItem_Click(object sender, EventArgs e)
  36.         {
  37.             this.Close();
  38.         }
  39.  
  40.         private void openToolStripMenuItem_Click(object sender, EventArgs e)
  41.         {
  42.             if (openFileDialog1.ShowDialog() == DialogResult.OK)
  43.             {
  44.                 //kita jadikan mode zoom agar ukuran file fit dengan pictureBox
  45.                 pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
  46.  
  47.                 //pictureBox.Load(openFileDialog1.FileName);
  48.  
  49.                 img = new Bitmap(openFileDialog1.FileName);
  50.                 pictureBox.Image = img;
  51.  
  52.                 //kita coba mengambil directory dari FileName
  53.                 directoryPath = Path.GetDirectoryName(openFileDialog1.FileName);
  54.                
  55.                 //kita coba tampilkan di window output
  56.                 Console.WriteLine(directoryPath);
  57.  
  58.                 //mari kita buat array string
  59.                 filesArray = Directory.GetFiles(@directoryPath);
  60.                 //kita coba tampilkan di window output
  61.                 foreach (string file in filesArray)
  62.                 {
  63.                     Console.WriteLine(file);
  64.                 }
  65.  
  66.                 totalFiles = filesArray.Length;
  67.  
  68.                 //kita coba tampilkan di window output
  69.                 Console.WriteLine("Total semua = "+totalFiles);
  70.                
  71.                 //kita sekarang akan men-set curent i
  72.                 i = Array.IndexOf(filesArray, openFileDialog1.FileName);
  73.  
  74.                 //yuk kita tampilkan curent i di output biar keliatan
  75.                 Console.WriteLine("Curent i = " + i);
  76.             }
  77.            
  78.         }
  79.  
  80.         private void buttonNext_Click(object sender, EventArgs e)
  81.         {
  82.             if (img != null)
  83.             {
  84.                 if (i < totalFiles-1)
  85.                     i++;
  86.  
  87.                 img = new Bitmap(filesArray[i]);
  88.                 pictureBox.Image = img;
  89.  
  90.                 //kita coba tampilkan di window output
  91.                 Console.WriteLine("i = " + i);
  92.             }
  93.         }
  94.  
  95.         private void buttonPrev_Click(object sender, EventArgs e)
  96.         {
  97.             if (img != null)
  98.             {
  99.                 if (i > 0)
  100.                     i--;
  101.  
  102.                 img = new Bitmap(filesArray[i]);
  103.                 pictureBox.Image = img;
  104.  
  105.                 //kita coba tampilkan di window output
  106.                 Console.WriteLine("i = " + i);
  107.             }
  108.         }
  109.     }
  110. }


Penjelasan kode:
Hal pertama yang harus kita tambahkan adalah using System.IO; , ini adalah reference yang akan kita gunakan untuk fungsi-fungsi Directory.
Yang kedua, kita harus membuat beberapa variable yang nanti akan kita gunakan, diantaranya adalah:
string directoryPath;
string[] filesArray;
int totalFiles;
int i = 0;


Yup, saya yakin, tanpa dijelaskan pun anda sudah dapat memahami nya sendiri, oke, kalo begitu mari kita melanjutkan untuk memberikan fungsi/method pada MenuStip, yaitu pada open dan exit.

Bagaimana cara menambahkannya? Anda tinggal double click submenu open, dan submenu exit, kemudian system akan otomatis membuat dua buah method yaitu:
private void exitToolStripMenuItem_Click(object sender, EventArgs e){}
private void openToolStripMenuItem_Click(object sender, EventArgs e){}


Berikutnya kita tambahkan method untuk buttonNext dan buttonPrev, caranya sama, hanya dengan double click, maka nanti akan membuat fungsi:
private void buttonNext_Click(object sender, EventArgs e){}
private void buttonPrev_Click(object sender, EventArgs e){}


Nah, sangat sederhana bukan. Coba perhatikan kodenya, dan amati, saya yakin tanpa penjelasan anda akan mengerti dengan sendirinya.

Mudah mudahan bermanfaat, dan pada tutorial berikutnya, kita akan menggunakan metode ini untuk membuat Prev dan Next button pada tutorial ‘Membuat Windows Picture Viewer’.




EmoticonEmoticon

:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:o
:>)
(o)
:p
:-?
(p)
:-s
8-)
:-t
:-b
b-(
(y)
x-)
(h)