Abstrak —Seiring  dengan  fenomena  semakin  maraknya aktivitas  pengabadian  momen,  dibutuhkannya  teknologi  yang memadai  untuk  mendukung  aktifitas  tersebut.  Beberapa  solusi telah  ditawarkan  oleh  percetakan  atau  studio  foto  untuk menawarkan jasa membuat album foto. Tetapi di Indonesia belum ada  aplikasi  album  digital  berbasis desktop yang  dapat memudahkan pengguna secara langsung  untuk  membuat album fotonya  sendiri.  Pada  makalah  ini,  permasalahan  tersebut  akan ditangani  dengan  membuat  aplikasi  berbasis desktop yang mengakomodasi  kebutuhan  pengguna  dalam  merancang  album foto.  Dalam  pengembangan  aplikasi  akan  mengimplementasi berbagai  fitur  untuk  mendukung  pengguna  merancang  album foto. Pengujian dilakukan dengan melakukan uji coba merancang sebuah album foto. Dari hasil pengujian, aplikasi yang dirancang dan  diimplementasikan  telah  memenuhi  semua  kebutuhan fungsional.
Kata Kunci —Album Foto, Foto Digital, Fotokita

## I. PENDAHULUAN
ERKEMBANGAN  teknologi  di  bidang  digital  sudah berkembang  dengan  sangat  pesat,  terutama  dalam  bidang fotografi.  Dalam  hal  mencetak  foto,  yang  dulu  harus menggunakan film dan kemudian mencetaknya melalui proses yang  rumit,  sekarang  bisa  dilakukan  dengan  sangat  mudah dengan memindahkan berkas yang ada di dalam kartu memori ke dalam komputer dan mencetaknya pun hanya membutuhkan sebuah  mesin  cetak  ( printer )  dan  kertas  foto,  dan  foto-foto tersebut  lalu  diletakkan  ke  dalam  album  foto.  Proses  tersebut pada saat  ini dapat dilakukan dengan  menggunakan komputer melalui aplikasi.
Seiring  dengan  fenomena  semakin  maraknya  pengabadian momen,  dibutuhkannya  teknologi  yang  memadai  untuk mendukung  kebutuhan.  Beberapa  percetakan  atau  studio  foto sudah menyediakan layanan untuk melakukan pengeditan foto dan album, tetapi terkadang hasil yang ada tidak sesuai dengan harapan  klien  dan  memakan  biaya  lebih.  Solusi  untuk  klien yang menginginkan untuk mencetak foto album sesuai dengan selera masing-masing sudah tersedia, tetapi untuk di Indonesia sendiri  sarana  yang  tersedia  masih  berupa  pengeditan  album foto  secara online ,  sedangkan  kecepatan  jaringan  belum  bisa dikatakan  mampu  untuk  melakukan  semua  kegiatan  secara online .
Aplikasi  album  foto  digital  berbasis desktop diperlukan untuk memudahkan pengerjaan tersebut. Selain itu, untuk dapat menarik perhatian pengguna, sebuah aplikasi  harus  mengikuti
1 http://www.photobookindonesia.com/
2 http://picbitphotobook.com/
perkembangan  zaman  dan  mode,  dan  dikarenakan  adanya ketidakpastian  perkembangan  fitur,  misalnya  penambahan frame,  layout ,  efek  dan  tema  sesuai  dengan  kebutuhan  dan selera pengguna,  maka dibutuhkan aplikasi album  foto  digital yang  modular,  dimana  nantinya  modul-modul  dalam  album foto  digital  dapat  diperbaharui,  dihapus,  atau  diganti  dengan mudah.
Tujuan  dikembangkannya  aplikasi  ini  adalah  untuk memberikan solusi kemudahan perancangan album foto digital bagi pengguna.

## II. TINJAUAN PUSTAKA

## A. Album Foto Digital
Album foto digital adalah sekumpulan foto yang dibukukan dalam  suatu  wadah.  Album  foto  digital  yang  digital  adalah aplikasi perangkat lunak dimana pengguna dapat memindahkan berkas  foto  dari  hardisk  ke  dalam  basis  data  utama  aplikasi tersebut.  Perangkat  lunak  album  foto  digital  biasanya memungkinkan  pengguna  untuk  melihat,  mengubah,  dan mengatur  foto  dengan  menggunakan  antarmuka  buku  seperti yang menyerupai album foto tradisional.
Pada  saat  ini  di  Indonesia  sudah  terdapat  beberapa  usaha yang  bergerak  dalam  bidang  album  foto  digital  seperti Photobook
Indonesia 1 , Picbit Photobook 2
dan SnappyPhotobook 3 tetapi masih terdapat beberapa kekurangan, yaitu:
 Editor berbasis web sehingga  membutuhkan  koneksi internet untuk mengedit album foto.
 Waktu untuk memuat halaman editor relatif lama sehingga tidak memungkinkan untuk mengedit foto dengan koneksi internet yang lambat.

## B. Image Processing
Pengolahan  citra  atau image  processing adalah  salah  satu cabang ilmu informatika yang mempelajari transformasi suatu citra  menjadi  citra  yang  lain  melalu  teknik  dan  algoritma pengolahan citra tertentu [1].
Jenis image  processing yang  digunakan  dalam  aplikasi adalah  peningkatan  kualitas  citra  ( image  enhancement ). Peningkatan  kualitas  citra  yang  disediakan  ada  tiga  macam yaitu  peningkatan  kontras,  peningkatan  pencahayaan,  dan peningkatan ketajaman. Pengolahan citra pada aplikasi fotokita menggunakan pustaka OpenCV [2].
3 http://www.snapyphotobook.com/site/

## Rancang Bangun Aplikasi Editor Album Foto Digital ‘Fotokita’ berbasis Desktop
M. Arief Ridwan, Rizky Januar Akbar, dan R.V. Hari Ginardi Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS)
Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia
e-mail : rizky@if.its.ac.id, hari@if.its.ac.id, aridwan05@gmail.com
P

## III. ANALISIS DAN PERANCANGAN SISTEM
A. Deskripsi Umum
Fotokita terdiri dari dua platform yaitu desktop dan website . Aplikasi berbasis desktop berfungsi sebagai editor foto album dan website berfungsi  untuk  menangani  proses  bisnis  yang terjadi  antara  pelanggan  dan  percetakan  dalam  proses pencetakan album foto.
Fotokita desktop merupakan aplikasi editor untuk merancang album  foto  bagi  pengguna.  Pengguna  dapat  melakukan
pembuatan  rancangan  album  foto  digital  dari  awal  hingga menjadi  sebuah  album  foto  digital.  Fitur-fitur  dasar  yang diimplementasi adalah penambahan gambar, penambahan teks, pengubahan  posisi  gambar,  pengubahan  ukuran  gambar  dan peningkatan kualitas citra.
Kasus  penggunaan  pada  aplikasi  ini  terdiri  dari  16  kasus penggunaan yang dapat dilihat pada Gambar 1.
Gambar 1. Diagram kasus penggunaan.
B. Perancangan Interface Fotokita
Fotokita  merupakan  aplikasi standalone yang  dapat dijalankan  mandiri.  Untuk  membuat class diagram  dan  juga menentukan bagian apa saja yang bisa dijadikan plugin dan juga atribut  yang  dibutuhkan  untuk  mengembangkan  modul, rancangan aplikasi Fotokita dipecah menjadi beberapa bagian. Secara  umum,  fotokita  memiliki  tampilan  antarmuka  seperti pada Gambar 2.
Perancangan  antarmuka  Fotokita  tentu  menggunakan kerangka  kerja  untuk  mempermudah  implementasi.  Kerangka kerja  yang  digunakan  dalam  pengembangan  aplikasi  adalah kerangka kerja Java SWT [3].

## Gambar 2. Rancangan antarmuka album foto digital fotokita
Album Foto Digital Fotokita dapat dibagi menjadi beberapa bagian yaitu menubar, toolbar, toolbox, photo explorer, project explorer dan  obyek  yang  bisa  diletakkan  pada page .  Setiap bagian  dapat  dipecah  menjadi  bagian-bagian  kecil  lagi. Menubar memiliki menu dan menu  items , toolbox terdiri  dari tools ,  obyek  yang  bisa  diletakkan  pada page adalah frame, layout dan  foto.  Masing-masing  bagian  beserta  pecahannya
dibuatkan interface .

## C. Perancangan Diagram Kelas
Struktur  diagram  kelas  pada  Fotokita  ditunjukkan  pada Gambar 3. Diagram kelas tersebut merupakan representasi dari objek  apa  yang  dapat  diinstansiasi.  Kelas  yang  terdapat  pada bagian  paling  bawah  diagram  merupakan  kelas  konkrit  yang dapat  diinstansiasi  sedangkan  kelas  lainnya  merupakan  kelas abstrak.
Gambar 3. Diagram kelas elemen fotokita
Ketika  pengguna  menambahkan  gambar  pada  halaman, maka  pengguna  juga  menginstansiasi  kelas Picture ,  kelas Paragraph untuk teks, serta kelas Frame untuk bingkai.
Aplikasi  Fotokita  menerapkan  pola  perancangan  untuk mempermudah  pengembangan.  Pola  perancangan  yang digunakan  dalam  aplikasi  ada  3  macam  yaitu singleton, observer pattern, dan state pattern.
Singleton adalah sebuah pattern yang membatasi penggunakan class  menjadi sebuah instance saja  pada sebuah aplikasi.  Biasanya  ada  sebuah class pada  aplikasi  yang  pada desain  hanya  dibutuhkan  sekali.  Salah  satu  diagram  kelas singleton yang ada pada aplikasi dapat  dilihat pada Gambar 4.
Gambar 4 Diagram kelas singleton main window
Pola perancangan observer pattern adalah pola perancangan dimana  sebuah  objek  mendaftarkan  diri  pada  objek  lain sehingga objek terdaftar dapat diketahui kondisinya. Pada pola ini ada dua buah status dari masing-masing objek yang berperan yaitu observer dan observable. Diagram kelas observer pattern dapat dilihat pada Gambar 5.
Gambar 5 Diagram kelas observer pattern frame dan picture
Fungsi notifyAllObserver pada kelas Frame akan  dipanggil saat menjalankan fungsi drag . Sedangkan fungsi
notifyAllObserver adalah  menjalankan  fungsi notify pada IElement tersebut tergantung dari elemen apakah yang terdaftar pada Frame .
Pola  perancangan state  pattern akan  diimplementasi  pada kelas NormalState dan SizingState .  Penggunaan  kelas-kelas tersebut  digunakan  pada  tiap state .  Tiap  kelas state memiliki fungsi draw yang  berbeda.  Diagram  kelas state  pattern dapat dilihat pada Gambar 6.
Gambar 6. Diagram kelas state pattern

## IV. IMPLEMENTASI

## A. Lingkungan Implementasi
Dalam  merancang  perangkat  lunak  ini  digunakan  beberapa perangkat  pendukung  yang  terdiri  dari  perangkat  keras  dan perangkat lunak.
Spesifikasi  perangkat  keras  yang  digunakan  dalam membangun web layanan  transaksi photobook adalah  sebagai berikut: Tipe : Asus A455L Prosesor : Intel ® Core ™ i5-5200U CPU @ 2.7 GHz Memori : 4.00 GB RAM
Sistem Operasi  : Windows 10 Enterprise 64 bit Perangkat  lunak  yang  digunakan  dalam  Fotokita  berbasis desktop adalah sebagai berikut:
 Eclipse Mars digunakan sebagai IDE
 StarUML  2.7.0  digunakan  untuk  membuat  digram  kasus penggunaan, diagram aktivitas dan diagram kelas.
B. Implementasi Fungsi Editor
Fungsi  yang  akan  diimplementasi  pada  fungsi editor ada  5 fungsi utama, fungsi tersebut antara lain:
1. Menambah gambar
2. Mengubah posisi gambar
3. Mengubah ukuran gambar
4. Merotasi gambar
5. Memanipulasi penambahan teks Fungsi menambah gambar merupakan fungsi menginstansiasi kelas Picture dan menambahkannya ke dalam List yang digunakan untuk menampung tiap elemen terdaftar. Setelah  elemen  ditambahkan  ke  dalam List, tiap  elemen  akan digambar pada halaman.
Fungsi  mengubah  posisi  gambar  merupakan  fungsi  untuk mengubah nilai x dan y pada gambar. Fungsi ini terdapat pada kelas abstrak TwoDimensional yaitu fungsi drag .
Fungsi  mengubah  ukuran  gambar  terdapat  pada  kelas TwoDimensional pada fungsi drag . Fungsi tersebut membedakan saat pengguna memilih ControlPoint atau tidak. Saat  pengguna  memilih ControlPoint maka  perlakuan  akan berbeda saat pengguna melakukan drag and drop .
Fungsi  merotasi  gambar  berada  pada  kelas  statis Rotator pada  fungsi rotate. Fungsi  ini  merotasi ImageData yang dimiliki kelas Picture .
Mekasnisme  penambahan  teks  merupakan  mekanisme instansiasi dari kelas Paragraph . Saat pengguna menambahkan teks  pada  halaman  pengguna  mengatur  semua  atribut  yang dibutuhkan untuk menginstansiasi kelas Paragraph .

## C. Implementasi Pengolahan Citra
Pengolahan  citra  yang  diimplementasi  pada  aplikasi menggunakan  pustaka  OpenCV  versi  2.4.12.  Seluruh kebutuhan  untuk  pengolahan  citra  telah  disediakan  dalam OpenCV.
Masing-masing  jenis  pengolahan  citra  memiliki  algoritma yang  berbeda-beda.  Pengolahan  citra  yang  disediakan  adalah peningkatan kontras, peningkatan pencahayaan, dan peningkatan ketajaman citra.
Proses  peningkatan  kontras  pada  OpenCV  menggunakan fungsi equalizeHist yang terdapat pada kelas Imgproc . Fungsi tersebut merupakan fungsi bawaan dari pustaka OpenCV untuk melakukan  metode histogram  equalization pada  citra  yang dipilih.
Proses peningkatan pencahayaan pada OpenCV menggunakan  fungsi  dari  kelas Mat yaitu converTo .  Fungsi tersebut digunakan dengan jenis kedalaman yang sama seperti Mat input , faktor skala 1, dan delta bernilai 31.

## D. Implementasi Antarmuka
Hasil  implementasi dari perancangan antarmuka  yang telah dibahas pada bagian sebelumnya akan ditampilkan pada bagian ini.  Tampilan  antarmuka  utama  Fotokita  dapat  dilihat  pada Gambar  7.  Sedangkan  tampilan  untuk  peningkatan  kualitas citra memiliki antarmuka  yang berbeda dari antarmuka utama dapat dilihat pada Gambar 8.
Gambar 7. Antarmuka utama fotokita
Gambar 8. Antarmuka utama peningkatan kualitas citra

## V. PENGUJIAN DAN EVALUASI
Pengujian  yang  dilakukan  berupa  pengujian  fungsionalitas. Pengujian  fungsionalitas  dilakukan  dengan  model blackbox untuk menguji masing-masing kasus penggunaan.
Uji  coba  fungsionalitas  administratif  adalah  uji  coba  yang dilakukan  terhadap  fungsionalitas  yang  dapat  dilakukan  oleh pengguna. Uji coba dilakukan dengan  metode black box yang artinya  fungsionalitas  diperiksa  apakah  terpenuhi  atau  tidak tanpa melihat struktur internal ataupun metode yang digunakan dalam pengerjaan fungsionalitas tersebut.
Berdasarkan  hasil  pengujian  fungsionalitas  pada  aplikasi Fotokita  total  ada  15  kasus  pengujian  aplikasi  dan  seluruh ujicoba berjalan dengan baik.

## VI. KESIMPULAN
Dari  hasil  pengamatan  selama  proses  perancangan, implementasi  dan  pengujian  perangkat  lunak  yang  dilakukan, dapat diambil kesimpulan sebagai berikut:
1. Aplikasi dapat membantu pengguna merancang album foto berdasarkan fitur yang tersedia.
2. Gambar  yang  dipilih  dapat  ditingkatkan  kualitasnya melalui  peningkatan  kualitas  citra  menggunakan  fungsi bawaan  pada  pustaka  OpenCV  bergantung  dengan  jenis peningkatan kualitas yang diinginkan.
3. Aplikasi  sudah  memenuhi  seluruh  fitur  yang  tersedia dengan melakukan pengujian fungsionalitas pada tanggal 6 Juni 2016 di Laboratorium Dasar dan Terapan Komputasi.

## DAFTAR PUSTAKA
[1]  "tutorialspoint.com,"
[Online].
Available:
http://www.tutorialspoint.com/dip/histogram_equalization.htm.  [Accessed
29 06 2016].
[2]  OpenCV, "OpenCV.org," [Online]. Available: http://opencv.org/. [Accessed 29 06 2016].
[3]  M. Scarpiano, S. Holder, S. Ng and L. Mihalkovic, SWT/JFace in Action,
Greenwich: Manning Publication, 2005.