Review Skripsi Sistem Pengamanan Pintu Ruangan Menggunakan Kombinasi Password Jari Dan Kartu Memanfaatkan Ppi 8255 Modus 0 Didukung Oleh Bahasa Pemrograman Borland Delphi 5.0

BAB I

1.      PERMASALAHAN
Instansi-insatansi seperti laboratorium ,perkantoran dan lain-lain, biasanya memiliki ruangan yang tidak semua orang bebas masuk, karena biasanya menyimpan informasi dan dokumen-dokumen yang rahasia.  Untuk menjaga keamanan itu maka dibutuhkan suatu sistem pengamanan yang baik guna mencegah terjadinya  penyusupan dan pencurian data. Untuk menjamin tingkat kerahasiaan tersebut dapat digunakan kode-kode dengan berbagai variasi kombinasi, sehingga hanya orang-orang tertentu saja yang dapat mengakses kode ini. Keseluruhan kode-kode ini dapat diwujudkan dengan menggunakan kombinasi-kombinasi lubang yang ada pada suatu kartu (card) khusus.

2.      TUJUAN
Tujuan dari pembuatan tugas akhir ini adalah :
1.      Memahami instruksi serta prinsip kerja dari PPI 8255.
2.      Membuktikan bahwa PC itu tidak hanya bisa digunakan untuk pengolahan, penyimpanan, dan pengambilan data, tetapi juga bisa digunakan untuk  hal-hal lain yang bersifat khusus seperti  pengontrolan dan sebagainya.
3.      Mengaplikasikan ilmu pengetahuan yang telah diperoleh selama proses perkuliahan secara langsung, sehingga dapat lebih memahami dan mengembangkannya.




BAB II
METODE YANG DIGUNAKAN
Sub bab ini menjelaskan teori-teori dasar yang berhubungan dengan perancangan pengontrolan keamanan, menjelaskan sistim komputer itu sendiri, interface yang digunakan, serta komponen-komponen pendukung yang digunakan dalam perancangan itu.
2.1.       Sistim Komputer
Komputer merupakan alat elektronika yang digunakan untuk mengolah data-data yang dimasukkan melalui perangkat input, selanjutnya  diproses menggunakan program tertentu oleh Central Processing Unit (CPU), sehingga menghasilkan suatu informasi yang diinginkan. Selanjutnya Informasi yang dihasilkan itu dikeluarkan melalui perangkat output.
Komputer atau mikrokomputer terdiri atas 3 (tiga) bagian utama yang meliputi Central Processing Unit (CPU), Main Memory, dan I/O modul. Hubungan antara bagian atau elemen dasar yang membentuk sebuah komputer didapat melalui tiga jalur (Bus), yaitu Jalur Data (Data Bus), Jalur Alamat (Addres Bus), Jalur Kontrol (Control Bus).
Bus alamat terdiri atas 18, 20, 24 atau lebih jalur sinyal paralel. Pada jalur-jalur ini, CPU mengirimkan alamat dari lokasi memori yang akan ditulisi atau dibaca. Jumlah lokasi memori yang dapat dialamati tergantung dari banyaknya jalur data. Jika CPU mempunyai n jumlah jalur alamat, maka dapat mengalamati 2n lokasi memori.
Bus data terdiri dari 8, 16, 32 atau lebih jalur sinyal paralel. Sifat bus data  ini adalah dua arah (bidirectional), artinya CPU dapat membaca data dari memori atau port pada bus data tersebut. Banyak piranti yang dapat dihubungkan pada bus data ini, tetapi hanya satu peralatan output yang boleh ada pada bus data saat itu.
Bus kontrol berisi 4-10 jalur sinyal paralel. CPU megirimkan sinyal keluaran pada bus kontrol untuk meng-enablekan output dari memori atau port yang dialamati. Umumnya sinyal-sinyal di bus kontrol adalah memori yang sedang membaca (read), menulis (write), I/O  membaca (read I/O), dan I/O menulis  (write I/O).

2.2.       Central Processing Unit ( CPU )
     Unit pengolahan utama merupakan bagian yang mengendalikan operasi dari komputer. CPU ini membaca instruksi-instruksi yang terkode dari memori, kemudian menterjemahkannya menjadi sederetan instruksi yang dijadikan sebagai acuan untuk melakukan operasi.  CPU memiliki Arithmatic and Logical Unit (ALU) yang dapat melakukan operasi pengolahan matematis dan operasi pengambilan keputusan  (logika), sebuah  Control Unit (CU) yang berfungsi untuk mengontrol seluruh aktifitas yang akan dilakukan. CPU, juga berisi sebuah address counter yang digunakan untuk menyimpan data biner, dan rangkaian yang mengaktifkan sinyal kontrol untuk sementara.

2.3.       I/O Modul
I/O modul diperlukan oleh komputer untuk mengambil atau mengirim data. Piranti I/O ini diantaranya keyboard, monitor, printer, modem, dan lain-lain. Bagian fisik yang menghubungkan  bus-bus komputer dengan sistim di luar disebut dengan port, yang terdiri atas port input dan port output. Port input digunakan  untuk memasukan data ke komputer, sedangkan port output digunakan untuk mengirim data dari komputer ke berbagai piranti keluaran seperti monitor, printer, maupun DAC. Port ini merupakan sekumpulan D flip-flop yang membolehkan data melaluinya apabila di-enable atau diclock oleh sinyal kontrol dari CPU terlebih dahulu.
Fungsi dari port I/O antara lain :
1.             Menyimpan status peralatan untuk penyajian ke komputer pada saat dibutuhkan, menggunakan register status peralatan.
2.             Menyediakan ruang penyimpanan (register buffer data) paling sedikit satu karekter, atau satu kata, untuk digunakan saat pemindahan data ke atau dari komputer.
3.             Mengenal alamat peralatan pada saat alamat ini tampil di saluran alamat port I/O.

2.4.       Sistem Kendali
            Setiap karya manusia yang dapat dikategorikan sebagai mesin merupakan mekanisme terkontrol. Terdiri atas bagian yang terpasang mati dan bagian yang dapat bergerak untuk melaksanakan perubahan gaya, gerak dan listrik agar menghasilkan suatu usaha. Pengontrolan bisa dilakukan secara langsung oleh manusia sebagai operator maupun seracara otomatis berdasarkan rancangan kerja suatu alat. Tujuan pengontrolan adalah  untuk menciptakan suatu hasil kerja yang optimal, sesuai dengan yang diharapkan serta memiliki tingkat kesalahan sekecil mungkin.
Komputer sebagai pengendali terbentuk dari pengaturan logika. Maksudnya, sistim pengaturan kerja komputer didasarkan pada pengaturan sinyal-sinyal digital yang dihasilkan untuk komponen-komponen pendukungnya. Sistim kendali yang digunakan adalah sistim switching, dimana pengendalian sinyal-sinyal tersebut bagaikan suatu switch yang dapat mengaktifkan atau menon-aktifkan komponen yang diperlukan. Untuk lebih jelasnya dapat dilihat pada arsitektur proses input/output yang terjadi di komputer, berdasarkan arsitektur Von Neuman pada gambar di bawah ini :

2.1.1  Sistim Antar Muka (Interface)
Rangkaian antar muka / interface dibutuhkan sebagai perantara antara alat yang dikendalikan (piranti peripheral) dengan komputer agar bisa berhubugan. Pengertian lain, interface merupakan rangkaian elektronika yang menghubungkan antara dua buah system yang berbeda agar kedua sistim tersebut dapat berkomunikasi.
Rangkaian interface berfungsi untuk menterjemahkan setiap proses input/output dari piranti ke komputer atau sebaliknya. Pengaturan ini perlu dilakukan karena adanya perbedaan sistim penyaluran data, besar tegangan, arus, daya dan kecepatan pengolahan antara komputer dengan piranti. Sebuah interface dapat saja menghubungkan lebih dari satu peralatan input/output, karena biasanya terdiri dari beberapa port. Port merupakan jalur-jalur komunikasi dengan peralatan eksternal. Dalam hal ini akan digunakan interface PPI 8255 yang dapat melakukan pengiriman data secara paralel.  Pengiriman data secara paralel dapat lebih cepat serta relatif lebih mudah dari pada pengiriman data secara serial.


BAB III

1.      PENYELESAIAN MASALAH
Setelah alat dirakit dengan baik, maka selanjutnya alat ini siap dioperasikan. Adapun langkah-langkah dalam pengoperasian alat ini adalah :
1.      Hubungkan komputer dengan rangkaian – rangkaian  alat menggunakan interface PPI 8255.
2.      Aktifkan rangkaian alat dengan memberikan catu daya.
3.      Hidupkan komputer dan jalankan program tampilan informasi user yang ada di dalam komputer tersebut.
4.      Setelah program jalan atau running, masukkan kartu ke dalam kotak penampang sesuai dengan posisinya dan ikuti dengan menempelkan jari pada penampang jari sesuai dengan kombinasi yang dimiliki.
5.      Apabila kombinasi input sesuai, maka hasilnya dapat dilihat pada monitor yang berupa informasi data pribadi, dan tunggu pintu akan terbuka.


2.      MEREVIEW PROGRAM
Dalam analisa program ini akan diuraikan tentang modul-modul program dari sistem yang dirancang :
Modul program pengaktifan motor stepper
Interface
Implementation
Procedure Port_Out(PortNumber:word;Outvalue:Byte);
Begin
Asm
mov dx,portnumber
mov al,outvalue
out dx,al
end;
End;
Procedure Delay(Lama : LongInteger);
Var
YgBerlalu : LongInteger;
Begin
ygberlalu := GetTickCount;
repeat
Application.ProcessMessages;
Until ((GetTickCount - ygberlalu) >= Lama);
end;
Procedure Timer1.Timer(Sender.Object);
Begin
Portout($378, $01); Delay(10);
Portout($378, $02); Delay(10);
Portout($378, $04); Delay(10);
Portout($378, $08); Delay(10);
End;
End;



LAMPIRAN
1.      Flowchart Program
Sebagai langkah awal perancangan program diwujudkan dalam bentuk flowchart. Adapun flowchart yang dimaksud adalah :

1.      Listing Program
unit Unit1;
interface
uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, TabNotBk, DB, DBTables,
   DBCtrls, Grids, DBGrids;
type
   TForm1 = class(TForm)
   TabbedNotebook1: TTabbedNotebook;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Button3: TButton;
    Button4: TButton;
    Label6: TLabel;
    Label7: TLabel;
    DataSource1: TDataSource;
    Table1: TTable;
    Table2: TTable;
    DataSource2: TDataSource;
    DBGrid2: TDBGrid;
    DBNavigator2: TDBNavigator;
    Timer1: TTimer;
    Timer2: TTimer;
    Timer3: TTimer;
    Timer4: TTimer;
    Button5: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
private
       { Private declarations }
   public
      { Public declarations }
       function  bacaport(alamat:word):byte;
       procedure kirimdata(alamat:word;data:byte);
       procedure caridata(cardid: string);
       procedure simpandata();
   end;
var
   Form1: TForm1;
   data1,data2,i:integer;
   cardID:string;
implementation
{$R *.dfm}

procedure TForm1.kirimdata  (alamat:word ; data:byte);
begin
     asm
      mov dx,alamat
      mov al,data
      out dx,al
     end;
end;

function tform1.bacaport(alamat:word):byte;
var temp:byte;
begin
     asm
     mov dx,alamat
      in al,dx
      mov temp,al
     end;
bacaport := temp;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    kirimdata($303,$92);
    panel1.Caption :='Masukkan Kartu dan password';
    edit1.Text :='';
    edit2.Text :='';
    edit3.Text :='';
    edit4.Text :='';
    edit5.Text :='';
    label6.Caption := datetostr(date);
    label7.Caption := timetostr(time);
end;

procedure TForm1.Timer4Timer(Sender: TObject);
begin
    label7.Caption := timetostr(time);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
    close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    panel1.Caption :='Masukkan Password';
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
    timer2.Enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    data1 := bacaport($300);
    data2 := bacaport($301);
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var
    i:integer;
begin
    for i:=1 to 30 do
    begin
      kirimdata($302,$11);sleep(10);
      kirimdata($302,$22);sleep(10);
      kirimdata($302,$44);sleep(10);
      kirimdata($302,$88);sleep(10);
   end;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
var
    ada:boolean;
begin
    data1 := bacaport($300);
    data2 := bacaport($301);
    If data2= 1 then
    begin
       panel1.Caption :='Masukkan Kartu dan password';
       for i:=1 to 50 do
        begin
            kirimdata($302,$88);sleep(30);
            kirimdata($302,$44);sleep(30);
            kirimdata($302,$22);sleep(30);
            kirimdata($302,$11);sleep(30);
       end;
    edit1.Text :=' ';
    edit2.text :=' ';
    edit3.text :=' ';
    edit4.text :=' ';
    edit5.text :=' ';
end;
if (data1= 1) or (data1=0) then
 begin
    cardID:='120' ;
    panel1.Caption :='Masukan Password Jari';
end;
if cardID='120' then
   begin
    if data2= 140 then
    begin
      panel1.Caption := 'Akses Diterima';
      //cari pada database dan tampilkan data user
      caridata('120');
      simpandata;
      for i:=1 to 50 do
      begin
        kirimdata($302,$11);sleep(30);
        kirimdata($302,$22);sleep(30);
        kirimdata($302,$44);sleep(30);
        kirimdata($302,$88);sleep(30);
      end;
    end;
   end;

if (data1= 10) or (data1=11) then
begin
    cardID:='110' ;
    panel1.Caption :='Masukan Password Jari';
    end;
    if cardID='110' then
    begin
       if data2= 192 then
       begin
           panel1.Caption := 'Akses Diterima';
           //cari pada database dan tampilkan data user
           caridata('110');
           simpandata;
           for i:=1 to 50 do
           begin
               kirimdata($302,$11);sleep(30);
               kirimdata($302,$22);sleep(30);
               kirimdata($302,$44);sleep(30);
               kirimdata($302,$88);sleep(30);
            end;
       end;
     end;
end;

procedure TForm1.caridata(cardid: string);
var
     ada:boolean;
begin
    table1.IndexName :='cardid_idx';
    ada := table1.FindKey([cardid]);
    if ada then
    begin
       panel1.Caption := 'Akses Diterima';
       edit1.Text :=table1['cardid'];
       edit2.text := table1['nama'];
      edit3.text := table1['sex'];
      edit4.text := table1['alamat'];
      edit5.text := table1['telepon'];
   end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
    caridata('120');
end;

procedure TForm1.simpandata();
begin
    table2.Append ;
    table2['Tanggal']:=strtodate(label6.Caption);
    table2['Jam']:=strtotime(label7.Caption);
    table2['cardid']:=edit1.Text ;
    table2['nama']:=edit2.Text ;
    table2.Post;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
    simpandata;
end;
end;

di susun oleh : file lengkap bisa di download di sini
1.      Muhammad Asnawi                (201451070)
2.      Shinta Anggraheni S               (201451076)
3.      Muhammad Muhsin A            (201451129)

Comments