karena sedang males nulis, jadi saya upload versi picture-nya..
MOHON MAAF yang sebesar-besarnya apabila masih banyak kekurangan..
.: Terima Kasih sudah mampir kesini :.
Pernyataan mantan Kabareskrim Komjen Pol Susno Duadji tentang adanya makelar kasus (markus) di tubuh Mabes Polri dengan sigap ditepis oleh pihak Mabes Polri. Padahal ini dapat dijadikan momentum oleh penegak hukum untuk mereformasi institusi tersebut, dengan penyelesaian yang terbuka dan tidak dilakukan secara internal.
"Seharusnya Mabes Polri melihat tudingan Susno tentang adanya markus di Mabes Polri sebagai peluang untuk benar-benar mereformasi institusi ini. Dan ketika Susno sebagai 'orang dalam' Polri sudah berani membeberkan kasus ini dengan sangat rinci, aparat penegak hukum harusnya bertindak cepat untuk menyelesaikan masalah ini secara terbuka dan tidak menyelesaikannya secara internal," kata juru bicara Serikat Pengacara Rakyat (SPR), Habiburokhman, dalam rilisnya yang diterima detikcom.
Ia berharap agar penyelesaian kasus ini dilakukan dengan segera dan terbuka. Karena dengan penyelesaian yang terbuka citra Polri di mata publik akan semakin baik.
"Keterbukaan dalam mengusut kasus ini sangat penting agar publik bisa mengontrol langsung bagaimana hukum dan undang-undang dapat diterapkan. Selain itu dengan penyelesaian yang terbuka sama sekali tidak menghancurkan citra Polri, justru sebaliknya jika ini dapat diselesaikan dengan baik maka citra Polri akan semakin baik," tutupnya.
Berita di atas saya dapat di :
Menaggapi pemberitaan di atas, saya sangat setuju sekali jika kasus ini diselesaikan secara terbuka (bukan secara internal, Red). Apa mungin karena kasus ini melibatkan oknum high class (berUANG, Red) sehingga kasusnya dikaburkan dengan kasus yang lain seperti pencemaran nama baiklah, melanggar kode etiklah(embohlah, Red).
Seiring dengan mencuatnya kasus ini, pengusuutan-pengusutan secara intensif dilakukan. Sehingga tabir kasus ini mulai terungkap sejak pemeriksaan bahwa Gayus Tambunan ditetapkan sebagai tersangka. Di media-media pemberitaan nama Gayus sudah tidak asing lagi, bahkan stiap hari nama itu tercetak dikoran dan terdengar di televisi.
Secara sepintas, seolah-olah Gayuslah sebagai tersangka utama. Gayus terbukti memiliki uang sekitar 25 Milyar di rekening tabungannya, padahal dia hanya seorang pegawai pajak golongan III/a yang gajinya hanya 12,1 juta perbulan.
Padahal kalau kita coba berpikir lagi, sangat kecil kemungkinannya seorang PEGAWAI golongan III/a memiliki rekening sebanyak itu.(toh kalau mau korupsi, pegawai golongan segitu paling mentok bermain di ratusan juta sudah bagus, Red). Saya yakin pasti ada orang besar di balik kasus ini. Mungkin saja Gayus hanya dijadikan tameng untuk menutupi kelakuan bejat mereka.
Gayus kan hanya seorang pegawai biasa saja (jabatannya g’ bagus2 amat, Red), bisa jadi dia adalah kacung yang disuruh ”orang diatasnya” untuk menyimpan hasil korupsi orang itu dengan janji sebuah imbalan pada Gayus (g’ sedikit dong imbalannya, Red).
Anehnya, di media-media pemberitaan seolah-olah Gayus-lah orang yang paling diburu. Padahal menurut saya Gayus adalah korban dari ”orang-orang di atasnya” (bukan berarti saya pro Gayus loh..., Red). Hampir tiap hari di berita topiknya hanya Gayus dan Gayus yang selalu diungkap baik dari alamat rumahnya, gajinya, isterinya, bahkan sampai anaknya. Belum ada topik berita tentang ”bagaimana dan dari siapa Gayus mendapat uang itu???” atau ”siapa saja yang ikut menikmati uang itu??”.
Topik seperti di atas jarang dibahas, apakah ini bagian dari skenario ”orang atas” untuk mengalihan perhatian publik agar seolah-olah mereka tidak bersalah?. Perlu diingat bahwa kasus ini merupakan kasus yang melibatkan beberapa instansi negara yang sangat berwibawa yaitu orang-orang POLRI dan orang-orang PAJAK, bahkan berita-berita terkini menginformasikan bahwa Jaksa Agung juga terlibat (yang tidak terlibat jangan tersingung ya..,Red). Mereka adalah orang-orang yang sangat mengerti hukum, bahkan bisa merumuskan hukum itu sendiri. Apa mungkin pada kasus ini mereka membuat hukum baru lagi agar dapat melindungi diri mereka sendiri??? (bisa-bisa aj Gan, Red).
Waduh, kalau sudah seperti ini mau jadi apa negara kita (tapi salut buat Indonesia, sekarang sudah dibuka lapangan kerja baru di aparat pemerintahan yaitu jadi MakelAR KasUS, hehe...,Red).
Untuk menangani kasus korupsi sperti ini, pada hakekatnya terletak pada kekonsitenan aparat penegak hukum terhadap hukum yang telah dibuat. Mau jadi apa negara kita apabila peraturan hukumnya sudah jelas dan bagus, tetapi aparat penegak hukumnya yang lemah (ditampar uang dikit aja matanya sudah biru, Red).
(kalau boleh usul ni.., Red) Setelah browsing dan membaca beberapa media, solusi agar dapat menekan terjadinya praktek markus di zona pemerintahan Indonesia adalah sebagai berikut:
- Menumbuhkan dan membangun etos kerja pejabat maupun pegawai tentang pemisahan yang jelas antara milik negara atau perusahaan dengan milik pribadi, mengusahakan perbaikan penghasilan (gaji), menumbuhkan kebanggaan-kebanggaan dan atribut kehormatan diri setiap jabatan dan pekerjaan, teladan dan pelaku pimpinan atau atasan lebih efektif dalam memasyarakatkan pandangan, penilaian dan kebijakan, terbuka untuk kontrol, adanya kontrol sosial dan sanksi sosial.
- Menegakkan hukum yang berlaku pada koruptor dan penayangan wajah koruptor di layar televisi dan herregistrasi (pencatatan ulang) kekayaan pejabat dan pegawai.
(INGATT!!! g’ boleh pilih kasih saat proses hukumnya ya.., Red).
Semoga solusi di atas bermanfaat bagi kita semua dan dapat dilaksanakan dengan sebaik-baiknya. Ami..n
· Buat aplikasi AppWizard dan beri nama project dengan Lat17
· Buat disain dialog seperti pada gambar berikut dengan 6 buah control picture dan 7 buah button.
·
Ubah properti control dan tambahkan class variabel control tipe dan membernya seperti pada tabel berikut:
· Tambahkan program untuk melakukan konversi dari data pixel ke RGB dan dari data RGB ke data Pixel. Seperti berikut.
// merubah data pixel ke RGB
void WarnaToRGB(long
int warna,int *Red, int *Green, int *Blue)
{
*Red = warna & 0x000000FF;
*Green = (warna &
0x0000FF00) >> 8;
*Blue = (warna &
0x00FF0000) >> 16
;
}
//merubah RGB
ke data pixel
long int RGBToWarna(int Re
d, int Green, int Blue)
{
return(Red+(Green<<8)+(blue<<1
6));
}
· Tambahkan program pada button1 click seperti di bawah ini,yang berfungsi untuk melakukan load gambar angka1 (Load Angka [1]).
void
CLat17Dlg::OnButton
1()
{
// TODO: Add your control notification handler code here
static char BASED_CODE
szFilter[]="Bitmap Files
(*.bmp)|*.bmp||";
CFileDialog m_ldFile(TRUE, "*.bmp", name,
OFN_HIDEREADONL
Y|OFN_OVERWRITEP
ROMPT, szFilter);
if(m_ldFile.DoModal()==IDOK)
{
name=m_ldFile.GetP
athName();
}
CDC* p
DC = m_pic1.GetDC();//
mengarah kontrol picture
CDC dcMem; //mengarahkan obyek yg sdh dipilih pd
bitmap
CRect rect;//kotak di picture
BITMAP bm;//mendefinisikan
fungsi2 yg ada d bitmap
HBITMA
P hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BITMAP,
0, 0, LR_LOADFROMFIL
E|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.Del
eteObject())
m_bmpBitmap.Detach
();
m_bmpBitmap.Attach(h
Bitmap);
}
m_pic1.GetClientRect(rect);
m_bmpBitmap.GetB
itmap(&bm);
dcMem.CreateCompati
bleDC(pDC);
//pDC->MoveTo(10,190);
//pDC->LineTo(300,190);
dcMem.SelectObje
ct(&m_bmpBitmap);
pDC->StretchBlt(0,0
,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
· Tambahkan program pada button2 click seperti di bawah ini,yang akan melakukan proses Integral Proyeksi Horizontal terhadap angka 1 (gambar1) dan menampilkannya pada Picture 5 (gambar 5).
void CLat17Dlg::OnButton
2()
{
// TODO: Add your control notification handler code here
int i,j;
int red,green,blue;
long int warna,warna1;
//float h[384];
CDC* pDC = m_pic1.GetDC();
CDC dcMem;
CRect rect; //kotak di
picture
BITMAP bm; //mendefinisikan fungsi2 yg ada d bitmap
HBITMAP hBitm
ap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BIT
MAP, 0, 0, LR_LOADFROMFILE|L
R_CREATEDIBSEC
TION);
m_pic1.GetClientRect(rect);
m_bmpBitmap.GetBit
map(&bm);
dcMem.CreateComp
atibleDC(pDC);
dcMem.SelectObject(&m_bmpBitmap);
for(j=0;j
{
hx[j]=0;
for(i=0;i
{
warna=dcMem.GetPixel(j,i);
WarnaToRGB(warna,&red,&green,&blue);
hx[j]+=(float)(255-red)/255;
}
hx[j]=hx[j]/2;
}
CDC* pDC1 = m_pic5.GetDC();
for(i=1;i
{
//1.3 nilai x atau lebar
pDC1->MoveTo(i*3.5,0);
pDC1->LineTo(i*3.5,hx[i]);
}
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
· Tambahkan program pada button3 click seperti di bawah ini,yang akan melakukan proses Integral Proyeksi Vertical terhadap angka 1 (gambar1) dan menampilkannya pada Picture 2 (gambar 2).
void CLat17Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
int i,j;
int red,green,blue;
long int warna,warna1;
//float h[384];
CDC* pDC = m_pic1.GetDC();
CDC dcMem;
CRect rect; //kotak di picture
BITMAP bm;//mendefinisikan fungsi2 yg ada d bitmap
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_pic1.GetClientRect(rect);
m_bmpBitmap.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&m_bmpBitmap);
for(i=0;i
{
hy[i]=0;
for(j=0;j
{
warna=dcMem.GetPixel(j,i);
WarnaToRGB(warna,&red,&green,&blue);
hy[i]+=(float)(255-red)/255;
}
hy[i]=hy[i]/2;
}
CDC* pDC1 = m_pic2.GetDC();
for(i=1;i
{
//1.3 nilai x atau lebar
pDC1->MoveTo(0,i*2);
pDC1->LineTo(hy[i],i*2);
}
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
· Tambahkan program pada button4 click seperti di bawah ini,yang berfungsi untuk melakukan load gambar angka2 (Load Angka [2]).
void CLat17Dlg::OnButton4()
{
// TODO: Add your control notification handler code here
static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|*.bmp||";
CFileDialog m_ldFile(TRUE, "*.bmp", name, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter);
if(m_ldFile.DoModal()==IDOK)
{
name=m_ldFile.GetPathName();
}
CDC* pDC = m_pic3.GetDC(); // mengarah kontrol picture
CDC dcMem; //mengarahkan obyek yg sdh dipilih pd bitmap
CRect rect; //kotak di picture
BITMAP bm; //mendefinisikan fungsi2 yg ada d bitmap
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.DeleteObject())
m_bmpBitmap.Detach();
m_bmpBitmap.Attach(hBitmap);
}
m_pic3.GetClientRect(rect);
m_bmpBitmap.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pDC);
//pDC->MoveTo(10,190);
//pDC->LineTo(300,190);
dcMem.SelectObject(&m_bmpBitmap);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
· Tambahkan program pada button5 click seperti di bawah ini,yang akan melakukan proses Integral Proyeksi Horizontal terhadap angka 2 (gambar3) dan menampilkannya pada Picture 6 (gambar 6).
void CLat17Dlg::OnButton5()
{
// TODO: Add your control notification handler code here
int i,j;
int red,green,blue;
long int warna,warna1;
//float h[384];
CDC* pDC = m_pic3.GetDC();
CDC dcMem;
CRect rect; //kotak di picture
BITMAP bm; //mendefinisikan fungsi2 yg ada d bitmap
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_pic3.GetClientRect(rect);
m_bmpBitmap.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&m_bmpBitmap);
for(j=0;j
{
hx2[j]=0;
for(i=0;i
{
warna=dcMem.GetPixel(j,i);
WarnaToRGB(warna,&red,&green,&blue);
//penggunaan red, tidak terikat, bisa green atau blue
// digunakan 255- , supaya bisa masuk/mendapatkan warna hitam
hx2[j]+=(float)(255-red)/255;
}
hx2[j]=hx2[j]/2;
}
CDC* pDC1 = m_pic6.GetDC();
for(i=1;i
{
//1.3 nilai x atau lebar
// dimulai dari 0 ke atas, sehingga gambar histogramnya kebalik
pDC1->MoveTo(i*2,0);
pDC1->LineTo(i*2,hx2[i]);
}
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
· Tambahkan program pada button6 click seperti di bawah ini,yang akan melakukan proses Integral Proyeksi Vertical terhadap angka 2 (gambar3) dan menampilkannya pada Picture 4 (gambar 4).
void CLat17Dlg::OnButton6()
{
// TODO: Add your control notification handler code here
int i,j;
int red,green,blue;
long int warna,warna1;
//float h[384];
CDC* pDC = m_pic3.GetDC();
CDC dcMem;
CRect rect; //kotak di picture
BITMAP bm; //mendefinisikan fungsi2 yg ada d bitmap
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_pic3.GetClientRect(rect);
m_bmpBitmap.GetBitmap(&bm);
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&m_bmpBitmap);
for(i=0;i
{
hy2[i]=0;
for(j=0;j
{
warna=dcMem.GetPixel(j,i);
WarnaToRGB(warna,&red,&green,&blue);
hy2[i]+=(float)(255-red)/255;
}
hy2[i]=hy2[i]/2;
}
CDC* pDC1 = m_pic4.GetDC();
for(i=1;i
{
//1.3 nilai x atau lebar
pDC1->MoveTo(0,i*2);
pDC1->LineTo(hy2[i],i*2);
}
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}
· Tambahkan program pada button7 click seperti di bawah ini,yang berfungsi untuk melakukan load pencocokan antara angka1 dengan angka 2 dengan membandingkan perhitungan kedua integral proyeksinya,baik horizontal maupun vertical dari kedua gambar angka yang dibandingkan (Matching).
void CLat17Dlg::OnButton7()
{
// TODO: Add your control notification handler code here
CDC* pDC1 = GetDC();//
float dx=0,dy=0,d;
int i;
char str[5];
float jhx=0,jhy=0,jhx2=0,jhy2=0;
//digunakan untuk normalisasi angka1
for(i=0;i<50;i++)
jhx+=hx[i];
for(i=0;i<80;i++)
jhy+=hy[i];
for(i=0;i<50;i++)
hx[i]=hx[i]/jhx;
for(i=0;i<80;i++)
hy[i]=hy[i]/jhy;
//digunakan untuk normalisasi angka2
for(i=0;i<50;i++)
jhx2+=hx2[i];
for(i=0;i<80;i++)
jhy2+=hy2[i];
for(i=0;i<50;i++)
hx2[i]=hx2[i]/jhx2;
for(i=0;i<80;i++)
hy2[i]=hy2[i]/jhy2;
//hitung jarak
for(i=0;i<50;i++)
dx=dx+fabs (hx[i]-hx2[i]);
for(i=0;i<80;i++)
dy=dy+fabs (hy[i]-hy2[i]);
d=dx/50+dy/80;
sprintf(str,"%f",d);
pDC1->TextOut(60,320,str);
}
2. Menambah header file
· Buka file Lat17Dlg.h
· Tambahkan program seperti dibawah ini
public:
CLat17Dlg(CWnd* pParent = NULL); // standard constructor
CBitmap m_bmpBitmap;
CBitmap m_bmpBitmap2;
CString name;
float hx[300],hy[300];
float hx2[300],hy2[300];
3. Cara menjalankan program (Running Program)
· Pilih menu : Build->Execute (!)
· Click button1(Load Angka1 ): picture 1 akan menampilkan gambar angka1
· Click button2 (Integral Proyeksi Horizontal [1]): picture 5 akan menampilkan hasil integral proyeksi dari gambar angka1.
· Click button3 (Integral Proyeksi Vertical [1]): picture 2 akan menampilkan hasil integral proyeksi dari gambar angka1.
· Click button4(Load Angka2 ): picture 3 akan menampilkan gambar angka2
· Click button5 (Integral Proyeksi Horizontal [2]): picture 6 akan menampilkan hasil integral proyeksi dari gambar angka2.
· Click button6 (Integral Proyeksi Vertical [2]): picture 4 akan menampilkan hasil integral proyeksi dari gambar angka2.
· Click button7 (Matching): Akan dilakukan perhitungan kemiripan antara angka1 dengan angka2 berdasarkan bentuk integral proyeksi horizontal & integral proyeksi verticalnya.
· Hasil Running Aplikasi tampak seperti pada gambar berikut:
Tampilan Hasil Exsekusi program:
Pada Tampilan diatas dilakukan proses pembandingan antara angka 0 dan angka 6 berdasarkan integral proyeksi horizontal & integral proyeksi vertikalnya.dan diperoleh nilai error 0.012879. Semakin kecil nilai errornya (semakin mendekati 0) maka dua macam obyek akan semakin memiliki tingkat kemiripan yang tinggi.
Pada tampilan diatas dilakukan pengenalan angka terhadap obyek yang sama yaitu,angka 0 dan diperoleh hasil nilai error = 0.000000 (kedua obyek sama).