About my Blog

think what I think

Selasa, 18 Desember 2012

Jam Digital dengan Mikrokontroler

Mungkin bagi sebagian pembaca Jam Digital merupakan hal yang sangat sederhana atau sudah terlalu umum, tapi dari Jam Digital bisa dipelajari prinsip-prinsip dasar kontrol dengan microcontroller, antara lain sistem tampilan 7 ruas dan pemakaian ti­mer.


Gambar 1
Jam Digital dengan AT89C2051
Rangkaian lengkap Jam Digital ini terlihat pada Gambar 1, dilengkapi 4 buah tampilan 7 ruas LED untuk menampilkan waktu, terdiri atas angka-angka puluhan jam, satuan jam, puluhan menit dan satuan menit. Tombol SW1 dan SW2 dipakai untuk mengatur tampilan waktu, saat SW1 ditekan angka pada tampilan jam akan bertambah setiap detik, sedangkan SW2 dipakai untuk mengatur angka tampilan menit dengan cara yang sama.
Kristal 12 MHz dan kapasitor C1 dan C2 membentuk rangkaian oscilator pembangkit frekuensi kerja AT89C2051, rangkaian ini merupakan rangkaian baku, artinya bentuk rangkaian oscilator ini selalu seperti ini untuk semua rangkaian AT89C51, kecuali untuk keperluan yang lain nilai kristalnya saja yang mungkin berbeda.
Kombinasi kapasitor C3 dan tahanan R8 juga merupakan rangkaian baku, komponen ini dipakai untuk membentuk rangkaian ‘power on reset’, artinya rangkaian yang akan otomatis me-reset AT89C2051 setiap kali AT89C2051 mulai menerima sumber daya listrik.
Melihat rangkaian pada Gambar 1, memang tidak bisa dijelaskan bagaimana Jam Digital ini bekerja, karena rangkaian itu hanyalah bagian tampilan dan tombol pengatur waktu waktu saja, ‘Jam’ yang sesungguh­nya berupa program yang disimpan di dalam ROM yang ada di dalam IC AT89C2051.

Sistem tampilan 7 ruas


Untuk menampilkan waktu dipakai 4 buah tampilan 7 ruas LED yang dibentuk dengan IC2 dan IC3 (masing-masing IC berisikan 2 tampilan angka), dengan demikian untuk menampilkan 4 buah angka diperlukan 28 LED, kalau ke-28 LED ini dinyala-padamkan dengan cara biasa, maka diperlukan 28 saklar dan rangkaian menjadi rumit sekali. Cara yang umum dipakai adalah sistem tampilan 7 ruas yang di-multiplek seperti nampak dalam Gambar 1, sedangkan Gambar 2 memperlihatkan detil sistem tampilan ini.


Gambar 2
Sistem Tampilan 7 Ruas
Setiap tampilan angka dibentuk dengan 7 buah LED (Light Emitting Diode), masing-masing diode itu ditandai sebagai ruas ‘a’ sampai dengan ‘g’, anode dari ketujuh LED itu sudah dihubungkan jadi satu di dalam IC. Katode ruas ‘a’ dari angka puluhan jam dihubungkan dengan katode ruas ‘a’ dari angka satuan jam dan seterusnya. Demikian pula dengan ruas ‘b’; ruas ‘c’ dan lain sebagainya.
Saklar Ruas P10..P16 dipakai untuk menentukan ruas mana yang akan dinyalakan, misalkan untuk membentuk angka 1 maka saklar P11 (ruas b) dan saklar P12 (ruas c) dalam posisi ‘on’. Sedangkan Skalar Digit dipakai untuk menentukan tampilan angka mana yang dipakai, misalkan angka 1 tadi ingin ditampilkan pada tampilan puluhan jam, maka posisi skalar pada Q1.
Jika posisi ‘on’ pada Saklar Digit digilir dari Q1, Q2, Q3 dan Q4 kemudian kembali ke Q1 dan seterusnya secara cepat, maka angka 1 di atas akan nampak pada semua tampilan angka!
Selanjutnya, andaikan sebelum merubah posisi Saklar Digit kombinasi Skalar Ruas diatur terlebih dulu, maka angka yang tertampil dalam sistem tampilan 7 ruas ini bisa diatur dengan tepat.
Dalam Gambar 1 terlihat Saklar Ruas dibentuk dengan kaki P1.0 sampai kaki P1.6 AT89C2051, sedangkan Saklar Digit dibentuk dengan sebuah transistor PNP dan sebuah tahanan yang masing-masing dikendalikan lewat kaki P3.0 sampai kaki P3.3.
Proses pengaturan sistem tampilan seperti yang dibahas diatas, diatur oleh AT89C2051 lewat potongan program yang biasanya dinamakan sebagai ScanDisplay seperti berikut :
1 ScanDisplay:
2 MOV P1,RuasJam10
3 MOV P3,#%11110111
4 ACALL TungguSebentar
5 ;
6 MOV P1,RuasJam1
7 MOV P3,#%11111011
8 ACALL TungguSebentar
9 ;
10 MOV P1,RuasMenit10
11 MOV P3,#%11111101
12 ACALL TungguSebentar
13 ;
14 MOV P1,RuasMenit1
15 MOV P3,#%11111110
16 ACALL TungguSebentar
17 SJMP ScanDisplay
Potongan program di atas bisa dijelaskan sebagai berikut : RuasJam10, RuasJam1, RuasMenit10 dan RuasMenit1 merupakan variabel tempat menampung kombinasi ruas dari angka yang akan ditampilkan, isi dari variabel ini akan dirubah dibagian lain dari program sesuai dengan perubahan waktu. Isi variabel–variabel ini diumpankan langsung ke Port 1 (baris 2, 6, 10 dan 14 pada potongan program di atas), untuk mengendalikan Saklar Ruas.
Saklar Digit dibentuk dengan transistor PNP, jadi untuk meng-on-kan diperlukan tegangan ‘0’ pada salah satu kaki Port 3, seperti terlihat pada baris 3, 7, 22 dan 15. Perhatikan posisi angka ‘0’ pada keempat baris itu, akan nampak ‘0’ tersebut ber-‘jalan’ dari kiri ke kanan yang setara dengan Saklar Digit bergilir ‘on’ dari Q1 sampai Q4.
TungguSebentar merupakan sub-rutin yang berfungsi untuk menunda waktu (delay), agar angka yang ditampilkan bisa tertahan sesaat sebelum berganti. Pada baris 17, aliran program di alihkan kembali ke baris 1, sehingga potongan program ini akan bekerja terus menerus tanpa henti menampilkan angka.

Jam Digital

Jam Digital dalam proyek ini, sesungguhnya hanya berupa program. Pada dasarnya Jam Digital adalah sistem pencacah (counter) bertingkat, dimulai dari pencacah menit yang mencacah dari 0 sampai 59 dan melimpah kembali ke 0, dan pencacah jam dari 0 sampai 23 yang mencacah setiap kali ada limpahan dari pencacah menit, hal ini bisa direalisasikan dengan program berikut:
1 JamDigital:
2 INC Menit
3 MOV A,Menit
4 CJNE A,#60,Keluar
5 MOV Menit,#0
6 INC JAM
7 MOV A,Jam
8 CJNE A,#24,Keluar
9 MOV Jam,#0
10 Keluar:
11 RET
Menit dan Jam pada potongan program ini, adalah variabel yang berfungsi sebagai pencacah menit dan pencacah jam. Sub-rutin JamDigital ini akan dijalankan setiap menit sekali, sehingga perubahan nilai pada variable Menit dan variable Jam persis mencerminkan perubahan waktu.

Interupsi Timer

Setelah membentuk sub-rutin JamDigital di atas, persoalan berikutnya adalah bagaimana agar sub-rutin itu benar-benar bisa dijalankan satu kali setiap menit, untuk keperluan ini dipakai fasilitas timer yang dimiliki AT89C2051.
Jam Digital yang dibuat selalu menjalankan program ScanDisplay terus menerus tanpa henti, dengan mengggunakan fasilitas interupsi dari timer, program ScanDisplay di atas dihentikan sebentar setiap 50 mili detik, pada saat itu AT89AT2051 menggerakan untaian pencacah 20 dan pencacah 60, pencacah 20 akan melimpah sekali per detik, dan pencacah 60 akan melimpah sekali per menit. Pada saat terjadi limpahan pencacah 60, AT89C2051 akan menjalankan sub-rutin JamDigital di atas.
1 TimerInterrupt:
2 MOV TL0,#-50000
3 MOV TH0,#>-50000/256
4 DJNZ Pencacah20,Terus
5 MOV Pencacah20,#20
6 DJNZ Pencacah60,Terus
7 MOV Pencacah60,#60
8 ACALL JamDigital
9 Terus:
10 RETI
Baris 2 dan 3 di atas yang mempertahankan agar AT89C2051 menjalankan rutin TimerInterrupt setiap 20 mili detik, baris 4 sampai 7 merupakan untaian pencacah 20 dan pencacah 60, saat pencacah 60 melimpah pada baris 8 AT89C2051 menjalankan sub-rutin JamDigital.
Agar mekanisme interupsi timer ini bisa bekerja seperti apa yang diharapkan, pada awal program ditambahkan potongan program berikut :
1 ANL TMOD,#%11110000
2 ORL TMOD,#000001
3 MOV TL0,#-50000
4 MOV TLH,#-50000/256
5 SETB ET0
6 SETB EA
7 SETB TR0
Baris 1 dan 2 menentukan mode kerja dari Timer 0, Baris 3 dan 4 yang menentukan agar AT89C2051 menjalankan rutin TimerInterrupt setiap 20 mili detik, baris 5 mengaktipkan interupsi Timer 0, baris 6 mengaktipkan sistem interupsi AT89C2051 dan baris 7 menjalankan Timer 0. Bagian ini kelak akan dijelaskan lebih mendetil dalam artikel tersendiri.

Rangkaian Traffic Light


Berikut tahap-tahap dalam membuat rangkaian Traffic dengan AVR
Alat-alat yang dibutuhkan adalah sebagai berikut:
1. ATMEGA-16
2. Crystal
3. 7Seg-Com-Cat-Green
4. 7Seg-Com-Cathode
5. BC107
6. Resistor

Langkah selanjutnya adalah melakukan simulasi dengan menggunakan beberapa software pendukung, software yang dibutuhkan adalah:
1. Proteus(ISIS 7 Professional)
2. Micro C(AVR).

Mari kita mulai untuk melakukan simulasi terlebih dahulu:
1. Buatlah rangkaian sesuai dengan gambar di bawah ini dengan menggunakan Software Proteus(ISIS 7 Profesional):
2. setelah selesai merangkai gunakan software Micro C(AVR) dengan mengetikkan kode sebagai berikut:
sbit red_1 at PORTA.B0;
sbit yellow_1 at PORTA.B1;
sbit green_1 at PORTA.B2;
sbit red_2 at PORTA.B3;
sbit yellow_2 at PORTA.B4;
sbit green_2 at PORTA.B5;
sbit green_a at PORTA.B6;
sbit red_a at PORTA.B7;
sbit green_b at PORTB.B0;
sbit red_b at PORTB.B1;

unsigned char a,b;
unsigned char segment (unsigned char input){
switch(input){
case 1:{return 0×06;break;}
case 2:{return 0x5B;break;}
case 3:{return 0x4F;break;}
case 4:{return 0×66;break;}
case 5:{return 0x6D;break;}
case 6:{return 0x7D;break;}
case 7:{return 0×07;break;}
case 8:{return 0x7F;break;}
case 9:{return 0x6F;break;}
case 0:{return 0x3F;break;}
}
}

void delay_green(void){
red_a=0;
green_b=0;
a=9;
b=0;
while(b!=10){
Delay_ms(1000);
b++;
PORTC=segment(a);
green_a=1;
red_b=1;
a–;
}
a=9;
}

void delay_red(void){
green_a=0;
red_b=0;
a=9;
b=0;
while(b!=10){
Delay_ms(1000);
b++;
PORTC=segment(a);
red_a=1;
green_b=1;
a–;
}
}

void main(void){
PORTA=0X00;
DDRA=0XFF;
PORTB=0X00;
DDRB=0X03;
PORTC=0X00;
DDRC=0XFF;
PORTD=0X00;
DDRD=0XFF;

while(1){
red_1=0;
red_2=1;
green_1=1;
delay_green();

green_1=0;
yellow_1=1;
Delay_ms(1500);

yellow_1=0;
red_1=1;
red_2=0;
green_2=1;
delay_red();

yellow_2=1;
green_2=0;
Delay_ms(1500);
yellow_2=0;
};
}

Selasa, 11 Desember 2012

Profil Nattasha Nauljam

Nama: Nattasha Nauljam
Nickname: Nat, Natcha
Funny Nicknames: Yaiperng (ยัยเพิ้ง
Birthday: 16 September 1992
Kewarganegaraan: Thailand
Aktivitas: Actress, Musician, Singer
Education: Vocational Certificate (computer) from "Aksorn Technology Pattaya"
Talenta: Gitar, Menyanyi dan Penari Tradisional Thailand
Favourite: music, watching movies, cats
Artis Favorit: Muse, Clash, Dashboard
Klub Bola Favorite: Manchester United
Pakaian Tidur: Pajama dress long T-shirts or shorts
Kegiatan Sebelum Tidur: Bermain Musik
Fashion: jeans, sneakers, T-shirt shirt casual sometimes
Tinggi & Berat Badan: 166cm & 45kg
Movie: Suckseed (2011) a.k.a Ern
Awards: Best Personality from "4th Kon Pun R"
Yang di Benci : Hantu
Agama: Katolik




Selasa, 04 Desember 2012

Simulasi LCD Pada Proteus

  1. Buka program proteus, proteus yang saya pakai yaitu tipe 7.5 SP3
  2. Klik “Pick from devices” pada keyword ketikkan “atmega16″ kemudian klik 2x device ATMEGA16 selanjutnya cari komponen yang lain yaitu potensi0 dengan nama device “POT-LIN” dan LCD dengan nama device “LM016L”L.
  3. Buat rangkaian seperti berikut.
  4. Membuat program yang akan dimasukkan pada ATMEGA16, disini saya menggunakan software codevision avr.
  5. Buka Codevision, klik new–>file–>project
  6. Pada tab Chip : ATmega16, Clock:12 MHz
  7. Pada tab LCD : PORTC
  8. Kemudian klik File–> Generate, Save and Exit
  9. Beri nama sesuai selera
  10. Pada while(1) ketikkan program sebagai berikut
  11. Compile dengan menekan F9 atau klik menu project–> compile
  12. Sehingga terbentuk file namafile.hex
  13. Masukkan namafile.hex pada atmega16 dengan cara klik 2x dengan settingan sebagai berikut.
  14. Run, maka hasilnya adalah sebagai berikut

Minggu, 02 Desember 2012

Tutorial LCD Display with AVR GCC, Bascom AVR, and CodeVision

Sekarang saya akan membahas tentang menampilkan data ke LCD Display 16x2 dengan beberapa bahasa yang biasa dipakai, yaitu AVR GCC, Bascom AVR, dan Code Vision. Beberapa contoh ini hanya menampilkan tulisan sederhana, sehingga dapat dilihat perbedaannya antara ketiga bahasa pemrograman mikrokontroler tersebut. 
AVR GCC:
Pertama, pemrograman LCD dengan AVR GCC atau AVR Studio dengan bahasa C, setelah program AVR Studio dari Atmel tersebut dibuka, pilih New Project sbb:
Klik Next dan pilih AVR GCC, kemudian beri nama file yang diinginkan, jangan lupa tempatkan file tersebut di folder yang Anda inginkan juga dengan Browse folder pada Location:
Klik Next dan pada Debug Platform pilih AVR Simulator, dan pada Device pilih ATMega32:
klik finish.
Maka akan tampil form AVR GCC seperti ini:
Klik kanan pada Source File dan pilih Create New Source File sbb:
 dan beri nama project baru tsb dengan lcdlib.c sbb:
Kemudian isi kan lcdlib.c tersebut dengan source code disini.

Klik kanan pada Header dan pilih Create New Header File sbb:
 
 kemudian berinama header tsb dengan lcdlib.h dan isi dengan source codenya disini.

Pada file utama atau teslcd.c programnya adalah sbb:
;==================================================
;LCD PROGRAM AVR GCC
;PROGRAMMER: WAHYU RAHMANIAR
;COMPANY   :TECHNOLOGINATION
;==================================================

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "lcdlib.h"

const uint8_t Tampil1[] PROGMEM="LCD AVR Studio\0";
const uint8_t Tampil2[] PROGMEM="Technologination\0";
int main(void)
{
    LCDinit();//init LCD bit
    LCDclr();//bersihkan tampilan LCD
    CopyStringtoLCD(Tampil1, 0, 0);
    CopyStringtoLCD(Tampil2, 0, 1);
    LCDcursorOnBlink();
    _delay_ms(100);

}


Setelah itu lakukan pengaturan mikrokontroler dan crystal yang dipakai, dengan klik kanan teslcd.c kemudian pilih Edit Configuration Option:

 Mikrokontroler yang digunakan adalah ATMega32 dan crystal 8MHz, pengaturannya sbb:

Jangan lupa untuk Save program yang telah dibuat tadi, kemudian klik Build --> Build.


Rangkaian dan simulasinya adalah sbb:

download source code lengkap dan simulasinya dengan proteus.

Pada AVR Studio ini tidak ada library bawaan untuk LCD Display, sehingga kita harus menambahkan library sendiri, yaitu lcdlib.c dan lcdlib.h, karena open source dan bersifat bebas library tsb tidak harus seperti yang saya contohkan ini, ada berbagai macam library versi yang lain. Hanya saja library saya ini sudah cukup lengkap, dapat dilihat pada lcdlib.c sudah terdapat fungsi-fungsi seperti membuat karakter sendiri, cursor blink, cursor on, cursor left, cursor right, dsb.


BASCOM AVR:
Kedua,  pemrograman LCD dengan Bascom AVR. buka File --> New dan tampil form utama Bascom AVR sbb:
Kemudian tulisankan listing program dibawah ini:
'==========================================================
'LCD BASCOM AVR
'PROGRAMMER : WAHYU RAHMANIAR
'COMPANY    : TECHNOLOGINATION
'==========================================================

$regfile = "m32def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.0
Config Lcd = 16 * 2

Dim Y As Integer

Do
Cls
Cursor Off
Locate 1 , 1
Lcd " LCD Bascom AVR"
Locate 2 , 1
Lcd "Technologination"
Wait 2
Loop

Setelah itu simpan filenya, dan Compile atau F7.
Jika ada pilihan seperti ini, pilih yes:

Rangkaian skematiknya sbb:

Jika ingin membuat tulisan bergerak kekiri, listing programnya seperti ini:

Cls
Cursor Off
Locate 1 , 1
Lcd "    TEST LCD BASCOM AVR"
For Y = 1 To 20
   Shiftlcd Left
   Waitms 500
   Next
   Cls


Kelebihannya pada Bascom AVR ini juga dapat membuat karakter sendiri dengan Tools --> LCD Designer, maka akan muncul form LCD designer, dan klik kotak sehingga membentuk karakter yang diinginkan, misalnya karakter "Love" berikut:
setelah di klik ok, akan muncul listing:
Deflcdchar ? , 32 , 10 , 31 , 14 , 4 , 32 , 32 , 32         ' replace ? with number (0-7)'

yang berarti ganti "?" dengan angka 0-7, misalnya kita ganti menjadi angka 1, menjadi:
Deflcdchar 1 , 32 , 10 , 31 , 14 , 4 , 32 , 32 , 32   

Kemudian diselipkan ke dalam program LCD berikut:

Cls
Cursor Off
Locate 1 , 1
Lcd chr(1); "LCD Bascom AVR"; chr(1)
Locate 2 , 1
Lcd "Technologination"
Wait 2

Hasil simulasinya menjadi seperti ini:

Simulasi dan source code-nya dapat didownload disini.


CODE VISION AVR:
Ketiga, pemrograman LCD display dengan CodeVision atau CV AVR. Buka program CV AVR, lalu pilih File --> New --> Project, sbb:
Untuk Confirm pilih YES, kemudian akan tampil CodeWizardAVR sbb:
Pilih Chip ATMega32 dan Clock 8MHz. Lalu pilih LCD dan pilih LCD Port --> PORTD dan Chars/Line --> 16, sbb:
 
Berbeda dengan AVR GCC dan Bascom AVR, RW pada CV AVR ini dihubungkan k eport mikrokokontroler, dan pengaturannya ditentukan seperti gambar diatas.
Setelah selesai pengaturan, pilih File --> Generate, Save, and Exit:
Maka akan tampil form CV AVR sbb:
Pada bagian pemanggilan library tambahkan #include<delay.h> sbb:
Program dituliskan didalam while(1) sbb:
Ketikkan listing program seperti ini:
while (1)
      {
        lcd_init(16);
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_putsf(" LCD CodeVision");
        lcd_gotoxy(0,1);
        lcd_putsf("Technologination");
        delay_ms(2000);
      };
}
Setelah itu simpan semua file, dan pilih Project --> Build All:
Hasil simulasinya seperti gambar dibawah ini:


 

Menampilkan Karakter dan Angka pada LCD

Posting kali ini saya akan memberikan tutorial menampilkan karakter pada LCD menggunakan software compiler CodeVision AVR.

Terlebih dahulu kita membuat simulasi di proteus, seperti gambar dibawah ini :
Terlebih dahulu kita setting code visionnya :
ketikkanlah syntax berikut :
while (1)
      {
      // Place your code here
      lcd_gotoxy(0,0);
      lcd_putsf("=SELAMAT DATANG=");
      lcd_gotoxy(0,1);
      lcd_putsf("=0123456789=");

      };
}

untuk program running text, ketik syntax berikut :

#include <mega16.h>
#include <delay.h>
#include <string.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

// Declare your global variables here
char buffer_lcd[]=" SELAMAT DATANG DI BLOG BELAJAR ELEKTRONIKA PRAKTIS                TERIMA KASIH                     ";
char lcd_number = 16;
void main(void)
{
unsigned int a,b,c;
unsigned int data_len  = strlen(buffer_lcd);

// LCD module initialization
lcd_init(16);

while (1)
      {
      // Place your code here
      lcd_gotoxy(0,0);
lcd_putsf("  RUNNING TEXT  ");
for (a=lcd_number; a>=0; --a){
    if (a > lcd_number)break;
    lcd_gotoxy(a,1);
    for (b=0; b<(lcd_number-a); b++){
        lcd_putchar(buffer_lcd[b]);
        }
    delay_ms(10); //ubah untuk kecepatan pergeseran text
    }; 
c=0;     
for (a=0; a<=data_len; a++){
    c++;
    lcd_gotoxy(0,1); 
    for (b=0; b<16; b++){
        if (buffer_lcd[b+c] == NULL){
            return;
            }
        lcd_putchar(buffer_lcd[b+c]);
        }
    delay_ms(10);
      };
      }
}
maka hasilnya :
SUMBER

Selasa, 27 November 2012

FRAUD




Defenisi Fraud

Secara harafiah fraud didefenisikan sebagai kecurangan, namun pengertian ini telah dikembangkan lebih lanjut sehingga mempunyai cakupan yang luas. Black’s Law Dictionary Fraud menguraikan pengertian fraud mencakup segala macam yang dapat dipikirkan manusia, dan yang diupayakan oleh seseorang, untuk mendapatkan keuntungan dari orang lain dengan saran yang salah atau pemaksaan kebenaran, dan mencakup semua cara yang tidak terduga, penuh siasat. Licik, tersembunyi, dan setiap cara yang tidak jujur yang menyebabkan orang lain tertipu. Secara singkat dapat dikatakan bahwa fraud adalah perbuatan curang (cheating) yang berkaitan dengan sejumlah uang atau properti.
Berdasarkan defenisi dari The Institute of Internal Auditor (“IIA”), yang dimaksud dengan fraud adalah “An array of irregularities and illegal acts characterized by intentional deception”: sekumpulan tindakan yang tidak diizinkan dan melanggar hukum yang ditandai dengan adanya unsur kecurangan yang disengaja.
Webster’s New World Dictionary mendefenisikan fraud sebagai suatu pembohongan atau penipuan (deception) yang dilakukan demi kepentingan pribadi, sementara International Standards of Auditing seksi 240 – The Auditor’s Responsibility to Consider Fraud in an Audit of Financial Statement paragraph 6 mendefenisikan fraud sebagai “…tindakan yang disengaja oleh anggota manajemen perusahaan, pihak yang berperan dalam governance perusahaan, karyawan, atau pihak ketiga yang melakukan pembohongan atau penipuan untuk memperoleh keuntungan yang tidak adil atau illegal”.
Apapaun itu defenisinya, menurutku fraud tetaplah fraud, dimanapun itu dilakukan, baik dilingkungan swasta maupun di sektor publik. Motifnya sama, yaitu sama-sama memperkacaya diri sendiri/golongan dan modus operandinya sama, yaitu dengan melakukan cara-cara yang illegal.

 Tipologi Fraud

Association of Certified Fraud Examiners (“ACFE”) di Amerika serikat menyusun peta mengenai fraud. Peta ini berbentuk pohon, dengan cabang dan ranting. Tiga cabang utama dari fraud tree ini adalah Corruption, Asset misappropriation dan fraudulent statement. Turunannya lebih jauh dapat dilihat dalam gambar dibawah.
Ada enam ranting yang muncul dari cabang corruption. Bandingkan ini dengan 30 (tiga puluh) jenis tindak pidana korupsi dalam ketentutan perundang-undangan Indonesia. Cabang kedua adalah Asset Misappropriation yang dapat diartikan secara bebas sebagai penjarahan kekayaan perusahaan atau lembaga. Kita bisa membayangkan banyaknya jenis fraud dalam cabang ini, mulai dari pencurian uang secara terbuka (larceny), pencurian dan penyalahgunaan (misuse) harta lembaga, sampai pada larceny secara tidak langsung (rekening bank atas nama pejabat). Cabang ketiga (Fraudulent Statement) merupakan fraud yang dilakukan dengan menggunakan cara-cara akuntansi seperti earning managemen dan, windows dressing. Kausus Enron merupakan contoh nyata dari tipe Fraud ini.
Sedangkan Delf (2004) menambahkan satu lagi tipologi fraud yaitu cybercrime. Ini jenis fraud yang paling canggih dan dilakukan oleh pihak yang mempunyai keahlian khusus yang tidak selalu dimiliki oleh pihak lain. Cybercrime juga akan menjadi jenis fraud yang paling ditakuti di masa depan dimana teknologi berkembang dengan pesat dan canggih.

Motivasi Melakukan Fraud

Pada umumnya fraud terjadi karena tiga hal yang mendasarinya terjadi secara bersama, yaitu:
  1. Insentif atau tekanan untuk melakukan fraud
  2. Peluang untuk melakuakn fraud
  3. Sikap atau rasionalisasi untuk membenarkan tindakan fraud.
Ketiga faktor tersebut digambarkan dalam segitiga fraud (Fraud Triangle) berikut:



Opportunity biasanya muncul sebagai akibat lemahnya pengendalian inernal di organisasi tersebut. Terbukanya kesempatan ini juga dapat menggoda individu atau kelompok  yang sebelumnya tidak memiliki motif untk melakukan fraud.
Pressure atau motivasi pada sesorang atau individu akan memebuat mereka mencari kesempatan melakukan fraud, beberapa contoh pressure dapat timbul karena masalah keuangan pribadi, Sifat-sifat buruk seperti berjudi, narkoba, berhutang berlebihan dan tenggat waktu dan target kerja yang tidak realistis.


Rationalization terjadi karena seseorang mencari pembenaran atas aktifitasnya yang mengandung fraud. Pada umumnya para pelaku fraud meyakini atau merasa bahwa tindakannya bukan merupakan suatu kecurangan tetapi adalah suatu yang memang merupakan haknya, bahkan kadang pelaku merasa telah berjasa karena telah berbuat banyak untuk organisasi. Dalam beberapa kasus lainnya terdapat pula kondisi dimana pelaku tergoda untuk melakukan fraud karena merasa rekan kerjanya juga melakukan hal yang sama dan tidak menerima sanksi atas tindakan fraud tersebut.
Faktor Pemicu Fraud
Terdapat empat faktor pendorong seseorang untuk melakukan kecurangan, yang disebut juga dengan teori GONE, yaitu Greed (keserakahan), Opportunity (kesempatan), Need (kebutuhan), Exposure (pengungkapan).
Faktor Greed dan Need merupakan faktor yang berhubungan dengan individu pelaku kecurangan (disebut juga faktor individual). Sedangkan faktor Opportunity dan Exposure merupakan faktor yang berhubungan dengan organisasi sebagai korban perbuatan kecurangan (disebut juga faktor generik/umum).
1. Faktor generic
     Kesempatan (opportunity) untuk melakukan kecurangan tergantung pada kedudukan pelaku terhadap objek kecurangan. Kesempatan untuk melakukan kecurangan selalu ada pada setiap kedudukan. Namun, ada yang mempunyai kesempatan besar dan ada yang kecil. Secara umum manajemen suatu organisasi/perusahaan mempunyai kesempatan yang lebih besar untuk          melakukan kecurangan daripada karyawan.
            Pengungkapan (exposure) suatu kecurangan belum menjamin tidak terulangnya kecurangan tersebut baik oleh pelaku yang sama maupun oleh pelaku yang lain. Oleh karena itu, setiap pelaku kecurangan seharusnya dikenakan sanksi apabila perbuatannya terungkap.
2.       Faktor individu
- Moral, faktor ini berhubungan dengan keserakahan (greed).
- Motivasi, faktor ini berhubungan dengan kebutuhan (need), yang lebih cenderung berhubungan dengan pandangan/pikiran dan keperluan pegawai/pejabat yang terkait dengan aset yang dimiliki perusahaan/instansi/organisasi tempat ia bekerja. Selain itu tekanan (pressure) yang dihadapi dalam bekerja dapat menyebabkan orang yang jujur mempunyai motif untuk melakukan kecurangan.

 Gejala Adanya Fraud

Fraud (Kecurangan) yang dilakukan oleh manajemen umumnya lebih sulit ditemukan dibandingkan dengan yang dilakukan oleh karyawan. Oleh karena itu, perlu diketahui gejala yang menunjukkan adanya kecurangan tersebut, adapun gejala tersebut adalah:
1.       Gejala kecurangan pada manajemen
  • Ketidakcocokan diantara manajemen puncak;
  • Moral dan motivasi karyawan rendah;
  • Departemen akuntansi kekurangan staf;
  • Tingkat komplain yang tinggi terhadap organisasi/perusahaan dari pihak konsumen, pemasok, atau badan otoritas;
  • Kekurangan kas secara tidak teratur dan tidak terantisipasi;
  • Penjualan/laba menurun sementara itu utang dan piutang dagang meningkat;
  • Perusahaan mengambil kredit sampai batas maksimal untuk jangka waktu yang lama;
  • Terdapat kelebihan persediaan yang signifikan;
  • Terdapat peningkatan jumlah ayat jurnal penyesuaian pada akhir tahun buku.
2.       Gejala kecurangan pada karyawan/pegawai
  • Pembuatan ayat jurnal penyesuaian tanpa otorisasi manajemen dan tanpa perincian/penjelasan pendukung;
  • Pengeluaran tanpa dokumen pendukung;
  • Pencatatan yang salah/tidak akurat pada buku jurnal/besar;
  • Penghancuran, penghilangan, pengrusakan dokumen pendukung pembayaran;
  • Kekurangan barang yang diterima;
  • Kemahalan harga barang yang dibeli;
  • Faktur ganda;
  • Penggantian mutu barang.
Perilaku Pelaku Fraud

Berikut merupakan beberapa perilaku seseorang yang harus menjadi perhatian karena dapat merupakan indikasi adanya kecurangan yang dilakukan orang tersebut, yaitu:
  • Perubahan perilaku secara signifikan, seperti: easy going, tidak seperti biasanya, gaya hidup mewah, mobil atau pakaian mahal;
  • Gaya hidup di atas rata-rata;
  • Sedang mengalami trauma emosional di rumah atau tempat kerja;
  • Penjudi berat;
  • Peminum berat;
  • Sedang dililit utang;
  • Temuan audit atas kekeliruan (error) atau ketidakberesan (irregularities) dianggap tidak material ketika ditemukan;
  • Bekerja tenang, bekerja keras, bekerja melampaui jam kerja, sering bekerja sendiri.
  •  
Fraud dalam Pengelolaan Keuangan Negara

Bantuan Likuiditas Bank Indonesia dan Century Gate. Kedua kasus ini memiliki kesamaan, yaitu sama-sama menggunakan dana talangan yang diberikan pemerintah yang seharusnya untuk menyelamatkan kondisi modal perbankan namun dana tersebut  oleh manajemen malah diselewengkan untuk kepentingan pribadi atau bisnisnya yang lain.
Pengadaan Barang dan Jasa. Prof. Dr. Soemitro Djojohadikusumo pada Kongres ISEI 1993 memperkirakan kebocoran keungan Negara sekitar 30% dari pengadaan barang dan jasa. Kerugian ini bervariasi dari department ke department  sampai ke tingkat pemerintah daerah. JIka dilakukan penelitian untuk tahun-tahun sekarang ini kemungkinan persentasenya akan lebih besar lagi, karena otonomi daerah membawa dampak adanya raja-raja kecil di daerah yang menuntut bagian proyek pengadaan barang dan jasa.
Penyediaan Barang dan Jasa Publik. Teorinya pubic goods disediakan untuk masyarakat luas, tanpa diskriminasi. Namun, berbagai faktor memberi peluang bagi pihak-pihak tertentu untuk menikmati public goods seolah-olah itu merupakan private goods bagi mereka. Contohnya saja jasa keamanan yang merupakan public goods yang disediakan TNI/Polri dapat dinikmati oleh orang atau perusahaan yang membayar harga yang tepat. Demikian pula dengan kendaraan, rumah dinas, dll yang diakui sepihak menjadi hak milik pejabat sebelumnya.
Peran Multinational Corporation (MNC). Potensi fraud yang melibatkan perusahaan atau pengusaha asing biasanya terletak pada perizinan usaha pertambangan dan energi yang bisanya diperoleh dengan cara-cara penyuapan. Apalagi pemerintah menerapkan production sharing atas lokasi-lokasi pertambangan di tanah air yang sangat rentan diselewengkan oleh para operator pertambangan.
Fraud pada Penerimaan Negara. Sebenarnya volume fraud yang paling besar bukan terletak pada sisi pengeluaran tetapi justru pada penerimaan Negara, tengok saja kasus Bahasim dan Gayus Tambunan yang meraup kekayaan besar dalam waktu singkat hanya dengna menyelewengkan prosedur perpajakan, atau membantu mengurangi jumlah pajak kiennya. Di pemerintah daerah kasusnya lebih bergam lagi, mulai dari pemetongan sekian persen dari pencairan anggaran, sampai setoran penerimaan yang banyak dipotong untuk peruntukan yang tidak jelas.
Pencegahan dan Pendeteksian Fraud
Dalam mencegah dan mendeteksi serta menangani fraud sebenarnya ada beberapa pihak yang terkait: yaitu akuntan (baik sebagai auditor internal, auditor eksternal, atau auditor forensik) dan manajemen perusahaan. Peran dan tanggung jawab msaing-masing pihak ini dapat digambarkan sebagai suatu siklus yang dinamakan Fraud Deterrence Cycle atau siklus pencegahan fraud seperti gambar dibawah ini.




Corporate Governance dilakukan oleh manajemen yang dirancang dalam rangka mengeliminasi atau setidaknya menekan kemungkinan terjadinya fraud. Corporate governance meliputi budaya perusahaan, kebijakan-kebijakan, dan pendelegasian wewenang.
Transaction Level Control Process yang dilakukan oleh auditor internal, pada dasarnya adalah proses yang lebih bersifat preventif dan pengendalian yang bertujuan untuk memastikan bahwa hanya transaksi yang sah, mendapat otorisasi yang memadai yang dicatat dan melindungi perusahaan dari kerugian.
Retrospective Examination yang dilakukan oleh Auditor Eksternal diarahkan untuk mendeteksi fraud sebelum menjadi besar dan membahayakan perusahaan.
Investigation and Remediation yang dilakukan forensik auditor. Peran auditor forensik adalah menentukan tindakan yang harus diambil terkait dengan ukuran dan tingkat kefatalan fraud, tanpa memandang apakah fraud itu hanya berupa pelanggaran kecil terhdaap kebijakan perusahaan ataukah pelanggaran besar yang berbentuk kecurangna dalam laporan keuangan atau penyalahgunaan aset.
Mengapa Pencegahan?
Keberhasilan kegiatan memerangi fraud, setelah korupsi terjadi adalah suatu ironi tersendiri dalam upaya penanggualan fraud karena semakin banyak mendeteksi dan menyelesaikan kasus berindikasi fraud, bukan merupakan kondisi umum yang dikehendaki masyarakat, sebab pada dasarnya kejadian fraud bukanlah kejadian yang dikehendaki masyarakat.
Pencegahan fraud bisa dianalogikan dengan penyakit, yaitu lebih baik dicegah dari pada diobati. Jika menunggu terjadinya fraud baru ditangani itu artinya sudah ada kerugian yang terjadi dan telah dinikmati oleh pihak terntu, bandingkan bila kita berhasil mencegahnya, tentu kerugian belum semuanya beralih ke pelaku fraud tersebut. Dan bila fraud sudah terjadi maka biaya yang dikeluarkan jauh lebih besar untuk memulihkannya daripada melakukan pencegahan sejak dini.
Untuk melakukan pencegahan, setidaknya ada tiga upaya yang harus dilakukan yaitu (1) membangun individu yang didalamnya terdapat trust and openness, mencegah benturan kepentingan, confidential disclosure agreement dan corporate security contract. (2) Membangun sistem pendukung kerja yang meliputi sistem yang terintegrasi, standarisasi kerja, aktifitas control dan sistem rewards and recognition. (3) membangun sistem monitoring yang didalamnya terkandung control self sssessment, internal auditor dan eksternal auditor

 Peran Internal Auditor

Pendeteksian fraud oleh auditor internal merupakan salah satu peran dari kegiatan internal auditing yang dijalankan dalam organisasi. Standards No. 1210.A2 menyatakan sebagai berikut: “The internal auditor should have sufficient knowledge to identify the indicators of fraud but is not expected to hace the expertise of a person whose primary responsibility is detecting and investigating fraud”.
Merujuk pada standar profesi diatas, auditor internal diharuskan memiliki pengetahuan yang cukup untuk mendeteksi adanya indikasi fraud dalam organisasi. Pengetahuan yang harus harus dimiliki auditor internal termasuk pula pengetahuan mengenai karakteristik fraud, teknik-teknik yang digunakan dalam melakukan fraud, dan jenis-jenis fraud yang mungkin terjadi pada berbagai proses bisnis.
Auditor internal bertanggung jawab dalam mendeteksi fraud yang mungkin telah terjadi sedini mungkin, sebelum memebawa dampak yang lebih buruk pada organisasi. Pendeteksian tersebut dapat dilakukan pada saatmenjalankan kegiatan internal auditing. Pada saat melakukan audit, auditor internal dapat memfokuskan diri pada area-area yang memeiliki risiko tinggi terjadinya fraud seperti transaski kas, rekonsiliasi bank, proses pengadaan, penjualan, dll.
Jika auditor internal menemukan suatu indikasi terjadinya fraud dalam organisasi, auditor internal harus melaporkannya kepada pihak-pihak terkait dalam organsiasi tersebut, seperti audit committee. Auditor internal dapat memberikan rekomendasi dilakukannya investigasi yang diperlukan untuk menyelidiki fraud tersebut.
Dalam sektor publik. Auditor internal dapat dilakukan oleh inspektorat di masing-masing department dan oleh Badan Pemeriksa Keuangan dan Pembangunan (“BPKP”) berdasarkan permintaan dari pemerintah. Teknis dan proses auditnya tidak jauh berbeda dengan yang dilakukan di sektor swasta.
Peran Eksternal Auditor
Dalam melaksanakan tanggung jawab profesionalnya seorang auditor eksternal dibatasi oleh standar-standar auditing yang berlaku. Tanggung jawab auditor sehubungan dengan fraud dijelaskan secara umum dalam SA seksi 110 – Tanggung jawab dan fungsi auditor independen paragraph 02: “Auditor bertanggung jawab untuk merencanakan dan melaksanakan audit untuk memperoleh keyakinan memadai tentang apakah laporan keuangan bebas dari salah saji material, baik yang disebabkan oleh kekeliruan atau kecurangan”.
Tanggung jawab auditor dalam mendeteksi fraud tersebut dijabarkan lebih lanjut dalam SA seksi 316 – pertimbangan atas kecurangan dalam audit laporan keuangan. Berdasarkan SA Seksi 316 tersebut, auditor harus secara khusus menaksir risiko salah saji material dalam laoran keuangan sebagai akibat dari kecurangan dan harus memperhatikan taksiran risiko ini dalam mendesain prosedur audit yang akan dilaksanakan. Prosedur audit mungkin berubah apabila terjadi fraud.

Selanjutnya dalam SA Seksi 317 – Unsur tindakan pelanggaran hukum oleh klien, dijelaskan bahwa apabila terjadi unsur tindakan pelanggaran hukum (termasuk fraud) maka auditor akan mengumpulkan informasi tentang sifat pelanggaran, kondisi terjadinya pelanggaran dan dampak potensialnya terhadap laporan keuangan. Apabila dibutuhkan auditor dapat berkonsultasi dengan penasehat hukum dan melakukan prosedur audit tambahan untuk memperoleh pemahaman yang lebih baik tentang sifat pelanggaran yang terjadi. Terungkapanya fraud, yang berrdampak pada denda dan kerugian, harus diungkapakan dalam catatan atas laporan keungan. Lebih jauh lagi, bila fraud yang terjadi sangat material dan bisa mempengaruhi kewajaran laporan keuangan, maka auditor tidak dapat memberikan opini “wajar tanpa pengecualian”.
Pada sektor public, yang menjadi auditor eksternal adalah Badan Pemerika keuangan (“BPK”) berdasarkan UU No 15 tahun 2004 tentang pemeriksaan pengelolaan dan tanggung jawab keuangan Negara. Dalam UU ini diatur bahwa BPK melaksanakan pemeriksaaan atas pengelolaan dan tanggung jawab keungan Negara. Pemeriksaan tersebut terdiri dari pemeriksaan keuangan, pemeriksaan kinerja, dan pemeriksaan dengan tujuan tertentu.
Kebijakan Anti Fraud
Beberapa Perusahaan besar telah menyadari bahaya besar akibat fraud, mereka telah melakukan perencanaan sedini mungkin terhadap pencegahan fraud ini. Tengok saja Telkom Grup dan Astra Grup, kedua Perusahaan ini telah mengantisipasi fraud yang diwujudkan dalam kebijakan anti fraud yang diterapkan di dalam peruashaan.
1. Telkom Group
Grup Astra memberikan perhatian yang demikian besar dalam pengembangan praktek Good Corporate Governance (GCG) dengan standar tinggi. Beberapa paket kebijakan telah dibuat untuk mendukung GCG diseluruh Astra Grup yang dimonitor oleh Komite Audit, Komite Renumerasi dan Nominasi, Komite Eksekutif, kelompok Manajemen Resiko dan Departemen Audit Internal.
Untuk memberikan petunjuk yang jelas dan bagaimana karyawan melaksanakan tugas-tugasnya, Grup Astra telah membuat buku pedoman yang komprehensif, yaitu “Pedoman Etika Bisnis dan kerja”, yang mencakup semua aspek dalam berhubungan dengan pihak ketiga dan masyarakat luas secara bertanggung jawab dan professional. Selain itu Astra juga mengeluarkan pedoman lainnya untuk memberikan kepastian dan assurance bahwa seluruh aktivitas telah menerapkan pola yang sesuai dengan GCG, pedoman-pedoamn itu yaitu: pedoman sistem audit dan manajemen risiko, pedoman benturan kepentingan, peraturan mengenai informasi orang dalam, pedoman kewajiban sosial perusahaan, pedoman manajemen sumber daya manausia, pedoman direksi dan komisaris Astra, kebijakan pelaporan atas pelanggaran etika, kebijakan atas penyampaian laporan tahunan dan kebijakan transaksi material dan perubahan kegiatan usaha.


2. Telkom Group
Sebagai perusahan publik yang juga melantai di bursa internasional (NYSE dan LSE) Telkom berupaya mewujudkan tata kelola perusahaan yang bersih sebagai mana tuntutan dari aturan Sarbanes Oxley Act (SOA) yang dianut Telkom Grup. Telkom secara berkala terus mengeluarkan berbagai program yang memastikan kesempatan berbuat curang (fraud) itu tertutup. Didalam program anti fraud tersebut terdapat code of ethics, whistleblower policy, organization structure dan Human Resource Policy.
Program whistleblower yang diterapkan Telkom dimaksudkan untuk menciptakan sebuah sistem yang memungkinkan perusahaan dapat melakukan deteksi dini terhadap kemungkinan atau indikasi adanya fraud, dengan begitu Telkom dapat secara lebih awal melakukan langkah-langkah koreksi dan mitigasi yang diperlukan untuk mengamankan asset, reputasi dan risiko kerugian yang mungkin timbul.
Selain itu Telkom juga menerapkan Enterprise Risk Management (ERM) yang disusun oleh COSO. Beberapa kebijakan yang dilakukan Telkom terkait penerapan ERM ini antara lain: (1) peningkatan kebijakan melalui evaluasi, perbaikan, peningkatan, distribusi dan kebijakan internal untuk mendukung pengelolaan resiko; (2) Peningkatan pemahaman proses bisnis yang efektif melalui penyederhanaan atau penghapusan proses bisnis yang kurang efektif; (3) pelaksanaan pengkajian risiko dan langkah mitigasi yang meliputi inisiatif startegis, RKAP, dan evaluasi diri atas pengendalian risiko seluruh unit; (4) perlindungan asset melalui penyediaan informasi yang memadai dan akurat hingga menciptakan efektifitas dan efisiensi proses bisnis serta kepatuhan terhadap peraturan.



Hukuman atas pelaku Fraud d Indonesia
Hukuman atas tindak pelanggaran berupa pemalsuan atau fraud di jelaskan pada Undang Undang Nomor 31 Tahun 1999 Tentang Pemberantasan Tindak Pidana Korupsi yang berbunyi sebagai berikut:
Pasal 9
Dipidana dengan pidana penjara paling singkat 1 (satu) tahun dan paling lama 5 (lima) tahun dan pidana denda paling sedikit Rp 50.000.000,00 (lima puluh juta rupiah) dan paling banyak Rp 250.000.000,00 (dua ratus lima puluh juta rupiah) pegawai negeri atau orang selain pegawai negeri yang diberi tugas menjalankan suatu jabatan umum secara terus menerus atau untuk sementara waktu, dengan sengaja memalsu buku-buku atau daftar-daftar yang khusus untuk pemeriksaan administrasi.



Daftar Pustaka
  • Arif Arryman dkk, Mengupas Benang Kusut, Merajut Masa Depan. – Transformasi Tata Kelola Pelaporan Keuangan Telkom Pasca SOA, 2010
  • Association of Certified Fraud Examiners, www.acfe.com
  • Economics Business & Accounting Review, volume II nomor 1, 2007
  • International Standards of Auditing
  • Ikatan Akuntan Indonesia (IAI), standar professional akuntan public
  • The institute of Internal Auditor, www.iia.com
  • Undang-undang nomor 31 tahun 1999