Tuesday, February 20, 2018

Klasifikasi pengolahan citra dua objek menggunakan jaringan saraf tiruan

Pengolahan citra menggunakan algoritma jaringan saraf tiruan dengan membandingkan dua objek berdasarkan klasifikasi wanita berjilbab dan tidak berjilbab.


Source Code
imgPath = 'D:\Document\Lecture\Tesis\Data Citra\Klasifikasi\';
imgExt = '*.jpg';
sizeResize = 35;
imageFiles = dir(strcat(imgPath, imgExt));      
countFiles = length(imageFiles);
arrInputColumn = sizeResize * sizeResize;
arrInputRow = 100;
arrInput = zeros(arrInputColumn:arrInputRow);
for i=1:countFiles
    currentFileName = imageFiles(i).name;
    img = imread(strcat(imgPath, currentFileName));
    imgResize = imresize(img, [sizeResize, sizeResize]);   
    imgGray = rgb2gray(imgResize);
    imgEH = histeq(imgGray);
    imgEdge = edge(imgEH, 'canny', 0.2);    
    
    imwrite(imgResize, strcat(imgPath, strcat('preprocessing\resize\', currentFileName)));
    imwrite(imgGray, strcat(imgPath, strcat('preprocessing\grayscale\', currentFileName)));
    imwrite(imgEH, strcat(imgPath, strcat('preprocessing\equaliasihistogram\', currentFileName)));
    imwrite(imgEdge, strcat(imgPath, strcat('preprocessing\edgedetection\', currentFileName)));
    
    imgTranspose1 = reshape(imgEdge.', 1, []);
    imgTranspose2 = imgTranspose1(:);
    arrInput(i, :) = imgTranspose2;
end
input = arrInput.';
countColumn = sizeResize * sizeResize;
inputLatihJilbab = input(1:countColumn, 1:25);
inputLatihNonJilbab = input(1:countColumn, 51:75);
inputLatih = [inputLatihJilbab, inputLatihNonJilbab];

inputTestJilbab = input(1:countColumn, 26:50);
inputTestNonJilbab = input(1:countColumn, 76:100);
inputTest = [inputTestJilbab, inputTestNonJilbab];

target1 = zeros(1:2);
target2 = zeros(1:2);
countRowTarget = 25;
for(j=1:countRowTarget)
    target1(j) = 1;
    target2(j) = 0;
end
targetLatih = [target1, target2];
targetTest = [target1, target2];



Monday, May 27, 2013

Pemrograman C++ Penjualan Buku (Tugas Akhir)

Video :



Source code : 
// Tugas Akhir Pemrograman C++ Penjualan Buku 
// Nama : Ulil Albab
// NIM : 49013033

#include <iostream>
#include <string>
using namespace std;

int main() 
{
 ulang :
 int kategori, pilih;
 int harga, pembayaran, kembalian, banyakBuku, kondisi = 0;
  
 cout << "Selamat Datang di sistem penjualan buku" << endl;  
 cout << "Daftar Kategori Buku : " << endl;
 cout << "1.Komputer" << endl;
 cout << "2.Musik" << endl;
 cout << "Silahkan Masukkan Kategori Buku : ";
 cin >> kategori; 

 system("cls");
 if(kategori == 1) {
  cout << "Komputer : " << endl;
  cout << "1.Pemrograman C++" << endl;
  cout << "2.Design Web" << endl;
  cout << "Kategori Komputer : ";
  cin >> pilih;  
  if(pilih == 1) {   
   harga = 70000;
   cout << "\n====================" << endl;
   beli :
   cout << "Pemrograman C++ " << endl;
   cout << "Harga : Rp. 70000 " << endl;
   cout << "Banyaknya buku : ";
   cin >> banyakBuku;
   cout << "Beli : ";
   cin >> pembayaran;

   if(cin.fail()) {
    system("cls");
    cin.clear();
    cin.ignore(numeric_limits <streamsize>::max(),'\n');
    goto beli;
   }

   kondisi = 1;
  }
  else if(pilih == 2) 
   cout << "Daftar Buku tidak tersedia" << endl;
  else 
   cout << "Masukkan pilihan dengan benar !" << endl;
 }
 else if(kategori == 2) 
  cout << "Daftar Buku tidak tersedia !" << endl;    
 else 
  cout << "Masukkan pilihan dengan benar !" << endl; 

 if(kondisi == 1) {
  harga *= banyakBuku;
  kembalian = pembayaran - harga;
   
  cout << "Harga Buku : " << harga << endl;
  if(kembalian > 0) 
   cout << "Uang yang dikembalikan : " << kembalian << endl;
  else
   cout << "Maaf uang tidak mencukupi !" << endl;
 }

 kembali:
 char kembali[2];
 if(!cin.fail())
  cout << "Kembali ke menu utama <Y/N> ? ";

 cin >> kembali;
 if(!cin.fail()) {
  if(strcmp(kembali, "Y") == 0) {
   system("cls");
   goto ulang;
  }
  else if(strcmp(kembali, "N") == 0) 
   exit(EXIT_SUCCESS); 
  else {
   cout << "Masukkan pilihan dengan benar !" << endl; 
   cin.clear();
   cin.ignore();
   goto kembali;
  }
 }

 if(cin.fail()) {
  cin.clear();
  cin.ignore(numeric_limits <streamsize>::max(), '\n');
  goto kembali;
 }

 cout << endl;
 system("pause");
 return 0;
}