## Implementasi Algoritma Clipping untuk Program Pemecah File Gambar Bmp

## Mardi Siswo Utomo
Fakultas Teknologi Informasi, Universitas Stikubank Semarang email : mardi_2@unisbank.ac.id
Abstrak  : Untuk  dapat  menyimpan  sebuah  berkas  yang  besar  kedalam  media  penyimpanan  yang  lebih kecil maka harus dipecah terlebih dahulu menjadi berkas yang kecil­kecil. Untuk  alasan inilah akan dibuat suatu  program  pemecah  program  berkas  gambar  dengan  ektensi  BMP  yang  biasanya  mempunyai  ukuran yang relative besar. Tujuan dari penelitian adalah membuat program aplikasi pemecah file gambar dengan mengimplementasikan algoritma clipping . Proses ini digunakan untuk membantu proses pemecahan berkas BMP,  terutama  yang  mempunyai  kapasitas  melebihi  media  penyimpanan  seperti  disket  sehingga  dapat digandakan  ke  media  tersebut.  Masalah  dari  penelitian  ini  adalah  bagaimana  membuat  program  aplikasi pemecah  file  gambar  dengan  mengimplementasikan  algoritma clipping .  Metode  pengembangan  sistem yang digunakan adalah SDLC (Systems Development Life Cycle) yang  merupakan metodologi klasik yang digunakan  untuk  mengembangkan,  memelihara,  dan  menggunakan  sistem  informasi.  Proses  pemecahan gambar  akan    menghasilkan  kualitas  gambar  seperti  pada  keadaan  sebelum  terjadi  pemecahan  tanpa mengalami  kerusakan  pada  gambar.  a)  Pemecahan  gambar  dapat  dilakukan  pada  gambar  berwarna  dan grayscale dengan bit per pixel maksimal 24, di atas itu program tidak mendukung. b) Pemecahan tersebut hanya dapat dilakukan dengan membagi gambar secara horisontal atau hanya terjadi pada tinggi gambar.
Kata kunci : algoritma clipping, pemecah gambar

## PENDAHULUAN
Dengan  semakin  canggihnya  teknologi informasi    sekarang  ini  maka  perkembangan akan  kebutuhan    informasi  juga  semakin meningkat,  sehingga  memerlukan  alat­alat  yang canggih  dan  tidak  hanya  itu  tapi  juga  harus handal,  efisien  serta  fleksibel.  Hal  ini  juga memacu  perkembangan  teknologi  komputer terutama  yang  berhubungan  dengan  media penyimpanan  yang  semakin  besar.  Berkas­ berkas  gambar  yang  dulu  berukuran  kecil  kini dengan semakin meningkatnya kualiatas gambar maka  berkas­berkas  gambar  membutuhkan media penyimpanan yang cukup besar.
Untuk  dapat  menyimpan  sebuah  berkas yang  besar  ke  dalam  media  penyimpanan  yang lebih  kecil  maka  harus  dipecah  terlebih  dahulu menjadi  berkas  yang  kecil­kecil.  Untuk    alasan inilah  akan  dibuat  suatu  program  pemecah program  berkas  gambar  dengan  ektensi  BMP yang  biasanya  mempunyai  ukuran  yang  relatif besar.  Tujuan  dari  penelitian  adalah  membuat program  aplikasi  pemecah  file  gambar  dengan mengimplementasikan algoritma clipping . Proses  ini  digunakan  untuk  membantu  proses
pemecahan berkas BMP, terutama yang mempunyai kapasitas melebihi media penyimpanan  seperti  disket  sehingga  dapat digandakan ke media tersebut.

## Perancangan Menu
Untuk  merancang  program  pemecah gambar  ini,  akan  terlebih  dahulu  dilakukan perancangan  menu.  Dari  rancangan  menu program  akan  dapat  diketahui  fasilitas­fasilitas yang  terdapat  pada  program  pemecah  file gambar.  Rancangan  menu  yang  dibuat  untuk implementasi dari algoritma program terdiri dari beberapa bagian yaitu menu pembuka  dan menu utama.  Menu  utama  sendiri  terdiri  dari  tiga bagian  sub  menu.  Adapun  ketiga  bagian  sub menu  tersebut  adalah  menu  pecah  dan  menu gabung.

## Gambar 1. Menu utama program
Kemudian  pada  menu  utama  ini  terdapat dua pulldown  menu yang  terdiri  dari  tiga  sub menu  pada  bagian  menu  berkas,  menu  petunjuk dan  menu  exit  yang  membawa  kita  keluar  dari seluruh program.

## Menu Pecah
Jika  memilih sub  menu pecah akan tampil form menu pecah seperti pada gambar
Gambar 2. Menu pecah gambar
Tampilan  form  menu  pecah  memiliki beberapa  fasilitas  untuk  membuka  file  gambar dari  pilihan  direktori  dan  pilihan  folder  gambar *.bmp  untuk  ditampilkan  pada  bingkai  gambar. Pada  memo  informasi  file  bmp  akan  memuat informasi  tinggi  berkas,  besar  ukuran  header, informasi pixel dan besar file dari file bmp yang dibuka pada bingkai gambar. Dan pada masukan jumlah pecah yang terdapat pada combobox jml
pecah  terdapat  pilihan  nilai  antara  dua  sampai delapan  untuk  memasukan  nilai  berapa  jumlah file  tersebut  akan  dipecah.  Tombol  di  bagian atas  bingkai  gambar  yaitu  tombol  penuh  dan besar berfungsi untuk tampilan gambar penuh.

## Gambar 3. Menu gabung gambar
Tampilan  form  pada  menu  gabung  tidak banyak perbedaan dari form  menu pecah  karena kedua  menu  tersebut  merupakan  kesatuan program.  Pemilihan  direktori  dan  folder  kurang lebih sama dengan form menu pecah. Pada menu ini  pada  pilihan  gambar  akan  mencari  file berekstensi  gbg,  merupakan  file  pecah  yang dibuat  oleh  form  menu  pecah  untuk  di  gabung kembali.

## Alur menu program
Dari  tampilan  menu  yang  telah  dirancang diperoleh  alur  dari  tiap­tiap  menu  program seperti tampak pada gambar 4.

## Gambar 4. Alur menu program

## Algoritma Program
Setelah perancangan menu selesai, maka dibuat  algoritma  program  untuk  implementasi dari logika program yang akan dibuat. Algoritma yang dirancang, akan dibagi dua yaitu algoritma untuk  memecah  file  gambar  dan  untuk menggabungkan kembali.

## Algoritma Pecah
1.  Baca file bmp untuk ditampilkan pada layar
2.  Masukan  nilai  pecah  untuk  membagi  tinggi ukuran  file.  Nilai  pecah  dibatasi  antara  dua sampai delapan nilai pecah.
3.  Buat  record  untuk  membaca  header  berkas sebesar  54  byte.  Record  berisi  informasi ukuran_berkas,    besar_header  dan  tinggi berkas.
4.  Hitung  perubahan  pada  header  baru  yaitu TgBerkasBr  =  (  tinggi_berkas  div  n  ), TgAkhir  =  TgBerkasBr  +  (  tinggi_berkas mod n ), UkDataBr = ( ukuran_berkas div n )  +  besar  header,  dan  UkDataAkh  = (ukuran_berkas div n ) + ( ukuran_data mod n ) + besar_header.
5.  Untuk  i = 1 sampai  i = 2, jika  i= 1 lakukan langkah 6, jika tidak lakukan langkah 7.
6.  Baca dan simpan berkas sebanyak besar_header  byte  kedalam  berkas  GBG,
dengan nilai bfReserved[1] = n.
7.  Untuk j = 1  sampai j  = n, jika j = n lakukan langkah 8, jika tidak lakukan langkah 9.
8.  Baca  dan  simpan  berkas  sebesar  ( UkDataAkh  ­  besar_header  )  ke  dalam berkas  berkas [j].dat.
9.  Baca  dan  simpan  berkas  sebanyak  ( UkDataBr  ­  besar_header  )  kedalam  berkas berkas[j].dat.
10.  Untuk  i=1  sampai  n,  jika  i=n  lakukan langkah 11, jika tidak lakukan langkah 12.
11.  Baca  berkas  GBG  dan  simpan  kedalam berkas[i].hdr,  dengan  bfSize  =  UkDataAkh dan biHeigh = TgAkhir.
12.  Baca  berkas  GBG  dan  simpan  ke  dalam berkas[i].hdr,  dengan  bfSize  =  UkDataBr dan biHeight = TgBerkasBr.
13.  Mulai dari i=1 sampai n lakukan langkah 14.
14.  Baca  berkas  berkas[i].hdr  dan  simpan kedalam  berkas[i].bmp.  Baca    berkas[i].dat dan  simpan  kedalam  berkas[i].bmp.  Tutup berkas[i].bmp.  Hapus  berkas[i].hdr  dan berkas[i].dat.
15.  Selesai.

## Algoritma Gabung Berkas
1.  Baca berkas dengan ekstensi GBG.
2.  Tentukan  m  =  bfReserved[1]  (  jumlah berkas  yang  akan  digabung  ).  Dan  berkas yang  akan  adalah  berkas[i].bmp.      Dengan i=1 sampai m .
3.  Baca  berkas  GBG  dan  simpan  kedalam berkas.  BMP  dengan  bfReserved  =  0 kemudian hapus berkas GBG )
4.  Mulai  dari  i  =  1  sampai  i  =  m  lakukan langkah 5.
5.  Mulai dari j=1 sampai  j=2, jika j=1  lakukan langkah 6, jika tidak lakukan langkah 7.
6.  Baca berkas berkas[i].bmp sebesar bfOffBits,  hanya  dibaca  tidak  disimpan  ke berkas.
7.  Baca  berkas[i].bmp  sebesar  (bfSize  ­ bfOffBits)  simpan  ke  berkas  BMP.  Hapus berkas[i].bmp.
8.  Selesai.
Flowchart Pecah Gambar A I =1 to n I = n ? Baca berkas GBG dan simpan kedalam berkas[i].hdr, dengan bfSize = UkDataAkh dan biHeight = TgAkhir Baca berkas GBG dan simpan kedalam berkas[i].hdr, dengan bfSize = UkDataBr dan biHeight = TgBerkasBr Next i I = 1 to n Baca berkas berkas[i].hdr dan simpan kedalam berkas[i].bmp. Baca berkas[i].dat dan simpan kedalam berkas[i].bmp. Tutup berkas[i].bmp. Hapus berkas[i].hdr dan berkas[i].hdr Next i selesai Y T
Gambar 5. Flowchart pemecah gambar

## Flowchart Gabung Gambar

## Gambar 6. Flowchart penggabung gambar

## Mekanisme Program Pecah Gambar
Mengacu  pada  algoritma  dan  flowchart yang  telah  dibuat  maka  dapat  di  simpulkan secara garis besar mekanisme program pemecah gambar  seperti  tampak  dijelaskan  pada  gambar dibawah ini:
Gambar 7. Mekanisme program pecah gambar

## Mekanisme Program Gabung Gambar
Seperti  halnya  mekanisme  program pemecah  gambar  program  gabung  gambar tampak  lebih  sederhana  karena  mekanisme program  gabung  gambar  merupakan  kebalikan dari program pecah gambar.

## Gambar 8. Mekanisme program gabung gambar
Setelah  dilakukan  implementasi  dari  algoritma­ algoritma yang dibahas maka dapat disimpulkan beberapa hal :
1.  Algoritma pemecah gambar, adalah:
a.  Proses pemecahan gambar akan
menghasilkan  kualitas  gambar  seperti pada keadaan
sebelum terjadi pemecahan  tanpa  mengalami  kerusakan pada gambar.
b.  Pemecahan  gambar  dapat  dilakukan pada  gambar  berwarna  dan grayscale dengan bit per pixel maksimal 24, diatas itu program tidak mendukung.
c.  Pemecahan tersebut hanya dapat
dilakukan  dengan  membagi  gambar secara horisontal atau hanya terjadi pada tinggi gambar.
2.  Algoritma Penggabungan gambar adalah:
a.  Proses kebalikan dari proses pemecahan gambar yaitu
berupa
proses penggabungan gambar yang akan
menghasilkan  gambar  maupun  ukuran yang persis sama dengan aslinya.
b.  Penggabungan dapat berjalan jika semua berkas  yang  telah  dipecah  dalam keadaan lengkap.

## DAFTAR PUSTAKA
1.  Ariesto  Hadi  Sutopo  (2002) Pengantar Grafika Komputer , Gava Media, Yogyakarta. 2.  Dedi  Rusmadi,  (1989) Kamus  Komputer ,
M2S, Bandung. 3.  Divisi  Litbang  MADCOMS  (2002) Seri Panduan Pemrograman Pemrogaman Barland  Delphi  7 ,    jilid  1,      ANDI, Yogyakarta.
4.  Edhi  Nugroho  (2005) Teori  dan  Praktek Grafika  Komputer  Menggunakan  Delphi dan Open GL ,  Graha Ilmu, Yogyakarta.
5.  Hasto  Suprayogo  (2004) Mengenal  Adobe
PhotoShop CS , ANDI, Yogyakarta.
6.  Insap Santosa (1994) Grafika Komputer dan
Antarmuka Grafis , ANDI, Yogyakarta.