Senin, 30 Oktober 2017

Pembahasan beberapa program dalam verilog

Encoder - Using if-else Statement
//-----------------------------------------------------
  2 // Design Name : encoder_using_if
  3 // File Name   : encoder_using_if.v
  4 // Function    : Encoder using If
  5 // Coder       : Deepak Kumar Tala
  6 //-----------------------------------------------------
Dari gambar di atas dia hanya menandakan bahwa itu hanya sebuah komentar ,karena menggunakan symbol “//”
module encoder_using_if(
  8 binary_out , //  4 bit binary output
  9 encoder_in , //  16-bit input
 10 enable       //  Enable for the encoder
 11 ); 
 12 //-----------Output Ports---------------
 13 output [3:0] binary_out  ;
 14 //-----------Input Ports---------------
 15 input  enable ; 
 16 input [15:0] encoder_in ;
Pada gambar diatas menunjukan bahwa encoder_using_if sebagai judul module,binary_out sebagai variable 4 bit biner output ,variable encoder_in sebagai 16 bit input,enable yaitu sebagai variable untuk program encoder.
Output [3:0] binary_out; sebagai output dari suatu port
Input enable ;
Input [15:0]encoder_in; untuk mendeklarasikan bahwa dia sebagai port input
//------------Internal Variables--------
 18 reg [3:0] binary_out ;

Reg [3:0] binary out; sebagai register pada variable binary_out
always @ (enable or encoder_in):untuk mendeklarasikan bahwa setiap pemrosesan selau menggunakan gerbang logika OR

begin 
 22    binary_out = 0; 
 23    if (enable) begin
 24      if (encoder_in == 16'h0002) begin
 25       binary_out = 1;
 26      end  if (encoder_in == 16'h0004) begin 
 27       binary_out = 2; 
 28      end  if (encoder_in == 16'h0008) begin 
 29       binary_out = 3; 
 30      end  if (encoder_in == 16'h0010) begin 
 31       binary_out = 4; 
 32      end  if (encoder_in == 16'h0020) begin 
 33       binary_out = 5; 
 34      end  if (encoder_in == 16'h0040) begin 
 35       binary_out = 6; 
 36      end  if (encoder_in == 16'h0080) begin 
 37       binary_out = 7; 
 38      end  if (encoder_in == 16'h0100) begin 
 39       binary_out = 8; 
 40      end  if (encoder_in == 16'h0200) begin 
 41       binary_out = 9; 
 42      end if (encoder_in == 16'h0400) begin 
 43       binary_out = 10; 
 44      end  if (encoder_in == 16'h0800) begin 
 45       binary_out = 11; 
 46      end  if (encoder_in == 16'h1000) begin
 47       binary_out = 12; 
 48      end  if (encoder_in == 16'h2000) begin 
 49       binary_out = 13;
 50      end  if (encoder_in == 16'h4000) begin 
 51       binary_out = 14; 
 52      end if (encoder_in == 16'h8000) begin 
 53       binary_out = 15; 
 54      end
 55   end
 56 end
 57       
 58 endmodule

Jadi kondisi awal pada pemroses yaitu 0 lalu dia memulai pemrosesan program
if (encoder_in == 16'h0002) begin
 25       binary_out = 1;
Jika encoder yang inputannya 16’h0002 ( maksud 16’h0002 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 1
26      end  if (encoder_in == 16'h0004) begin 
 27       binary_out = 2; 
Namun jika yang inputnya 16’h0004 ( maksud 16’h0004 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 2
end  if (encoder_in == 16'h0008) begin 
 29       binary_out = 3; 
Ketika yang inputnya 16’h0008 ( maksud 16’h0008 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 3
end  if (encoder_in == 16'h0010) begin 
 31       binary_out = 4; 
Ketika yang inputnya 16’h0010 ( maksud 16’h0010 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 4
end  if (encoder_in == 16'h0020) begin 
 33       binary_out = 5; 
Ketika yang inputnya 16’h0020 ( maksud 16’h0020 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 5
end  if (encoder_in == 16'h0040) begin 
 35       binary_out = 6; 
Ketika yang inputnya 16’h0040 ( maksud 16’h0040 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 6
end  if (encoder_in == 16'h0080) begin 
 37       binary_out = 7;
Ketika yang inputnya 16’h0080 ( maksud 16’h0080 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 7
end  if (encoder_in == 16'h0100) begin 
 39       binary_out = 8; 
Ketika yang inputnya 16’h0100 ( maksud 16’h0100 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 8
end  if (encoder_in == 16'h0200) begin 
 41       binary_out = 9; 
Ketika yang inputnya 16’h0200 ( maksud 16’h0200 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 9
end if (encoder_in == 16'h0400) begin 
 43       binary_out = 10; 
Ketika yang inputnya 16’h0400 ( maksud 16’h0400 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 10
end  if (encoder_in == 16'h0800) begin 
 45       binary_out = 11; 
Ketika yang inputnya 16’h0800 ( maksud 16’h0800 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 11
end  if (encoder_in == 16'h1000) begin
 47       binary_out = 12; 
Ketika yang inputnya 16’h1000 ( maksud 16’h1000 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 12
end  if (encoder_in == 16'h2000) begin 
 49       binary_out = 13;
Ketika yang inputnya 16’h2000 ( maksud 16’h2000 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 13
end  if (encoder_in == 16'h4000) begin 
 51       binary_out = 14; 
Ketika yang inputnya 16’h4000 ( maksud 16’h4000 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 14
end if (encoder_in == 16'h8000) begin 
 53       binary_out = 15; 
Ketika yang inputnya 16’h8000 ( maksud 16’h8000 yaitu hexanya) maka dia akan mengeluarkan output yang bernilai 15
54      end
 55   end
 56 end
 57       
 58 endmodule

Untuk mengakhiri badan/body program dan mengakhiri dari suatu modul program
========================================================================
Mux : Using if Statement
// Design Name : mux_using_if
  3 // File Name   : mux_using_if.v
  4 // Function    : 2:1 Mux using If
  5 // Coder       : Deepak Kumar Tala
Hanya untuk sebagai komentar karena ada symbol “//”
 
module  mux_using_if(
  8 din_0      , // Mux first input
  9 din_1      , // Mux Second input
 10 sel        , // Select input
 11 mux_out      // Mux output
 12 );
Module mux_using_if sebagai judul dari module yang ingin di buat
din_0 sebagai mux yang pertama kali masuk/inputan pertama
 
//-----------Input Ports---------------
 14 input din_0, din_1, sel ;
 
Untuk mendeklarasikan bahwa variable din_0,din_1,sel sebagai port input
//-----------Output Ports---------------
 16 output mux_out;
Untuk mendeklarasikan bahwa variable mux_out sebagai port output
//------------Internal Variables--------
 18 reg  mux_out;
Sebagai register pada variable mux_out
//-------------Code Starts Here---------
 20 always @ (sel or din_0 or din_1)
 21 begin : MUX
 22   if (sel == 1'b0) begin
 23       mux_out = din_0;
 24   end else begin
 25       mux_out = din_1 ;
 26   end
 27 end
Disini adalah sebagai body dari program always @(sel or din_0 or din_1) yaitu untuk selalu menggunakan gerbang logika OR yang 3 input an
Begin mux untuk memulai suatu pemrograman MUX
22   if (sel == 1'b0) begin
 23       mux_out = din_0;
 24   end else begin
 25       mux_out = din_1 ;
 26   end
Yaitu jika variable sel sama dengan 1’b0 maka dia akan menjalankan perintah mux_out=din_0 dan langsung selesai ,namun jika variable sel tidak sama dengan 1’b0 maka dia akan menjalankan perintah mux_out=din_1 dan langsung selesai
endmodule //End Of Module mux
untuk mengakhiri dari suatu module program mux
========================================================================
Synchronous reset D- FF
// Design Name : dff_sync_reset
  3 // File Name   : dff_sync_reset.v
  4 // Function    : D flip-flop sync reset
  5 // Coder       : Deepak Kumar Tala
Hanya sebagai komentar karena ada symbol “//”
module dff_sync_reset (
  8 data   , // Data Input
  9 clk    , // Clock Input
 10 reset  , // Reset input
 11 q        // Q output
 12 );
Untuk memberikan nama module/judul dff sync reset
Membuat variable data,clk,reset,q
 
//-----------Input Ports---------------
 14 input data, clk, reset ; 
Mendeklarasikan bahwa variable data,clk,reset sebagai port input
 
//-----------Output Ports---------------
 17 output q;
Mendeklarasikan bahwa variable q sebagai port output
 
//------------Internal Variables--------
 20 reg q;
Sebagai register pada variable q
 
//-------------Code Starts Here---------
 23 always @ ( posedge clk)
 24 if (~reset) begin
 25   q <= 1'b0;
 26 end  else begin
 27   q <= data;
 28 end
 
always @ ( posedge clk)yaitu untuk menghantarkan nilai masukan secara terus menerus pada setiap sisi positfe edge / ketika clocknya naik.
 
Jika variable reset dijalankan maka dia akan melakukan perintah q<=1’b0 atau kita ibaratkan hasilnya q=1 dan 1’b0=0 
namun jika variable reset kondisinya tidak terpenuhi maka dia akan menjalankan perintah q<=data atau kita ibaratkan q=0 dan data=1. 
Lalu selesai
 
endmodule //End Of Module dff_sync_reset
untuk mengakhiri module dff_sync_reset
====================================================================================================================================================
8-Bit Simple Up Counter
// Design Name : up_counter
  3 // File Name   : up_counter.v
  4 // Function    : Up counter
  5 // Coder     : Deepak
Hanya sebagai komentar karena ada symbol “//”
module up_counter    (
  8 out     ,  // Output of the counter
  9 enable  ,  // enable for counter
 10 clk     ,  // clock Input
 11 reset      // reset Input
 12 );
Untuk menamakan module dengan judul up_counter
out,enable,clk,reset di buat sebagai suatu variabel
//----------Output Ports--------------
 14     output [7:0] out;
Variabel out di deklarasikan sebagai port output dari suatu program up counter
//------------Input Ports--------------
 16      input enable, clk, reset;
Variabel enable,clk,reset sebagai port input dari suatu program up counter
//------------Internal Variables--------
 18     reg [7:0] out;
Sebagai register dari variabel out
//-------------Code Starts Here-------
 20 always @(posedge clk)
 21 if (reset) begin
 22   out <= 8'b0 ;
 23 end else if (enable) begin
 24   out <= out + 1;
 25 end
Disini sebagai suatu body dari program always @(posedge clk) yaitu untuk menghantarkan nilai masukan secara terus menerus pada setiap sisi positfe edge / ketika clocknya naik.
Jika variable reset dijalankan maka dia akan melakukan perintah out<=8’b0 atau kita ibaratkan hasilnya out 0 sampai dengan angka 7 
namun jika variable reset kondisinya tidak terpenuhi maka dia akan menjalankan perintah out<=out+1 atau kita ibaratkan hasil dari variabel out itu akan 
terus bertambah sampai kondisi terpenuhi atau 
sampai angka 7. Lalu selesai
 
endmodule
untuk mengakhiri module up_counter
========================================================================================================================================================
ROM/EPROM - Loading from File
// Design Name : rom_using_file
  3 // File Name   : rom_using_file.v
  4 // Function    : ROM using readmemh
  5 // Coder       : Deepak Kumar Tala
Hanya sebagai komentar karena ada simbol “//”
module rom_using_file (
  8 address , // Address input
  9 data    , // Data output
 10 read_en , // Read Enable 
 11 ce        // Chip Enable
 12 );
Module rom_using_file untuk memberikan judul pada module rom/eprom
Untuk address,data,read_en,ce sebagai suatu variabel
reg [7:0] mem [0:255] ;  
reg disini sebagai register dan memory dari 0 sampai dengan 255
assign data = (ce && read_en)
yaitu untuk menggabungkan file text pada variabel ce dan read_en
? mem[address] : 8'b0;
Untuk mencetak hasil memory address pada baris 8’b0
initial begin
 23   $readmemb("memory.list", mem); // memory_list is memory file
 24 end
Untuk memulai program
 23   $readmemb("memory.list", mem);
Untuk membaca memory.list pada variabel mem
endmodule
untuk mengakhiri program rom_using_file
=======================================================================================================
And the Practical One
// Design Name : parity_using_bitwise
  3 // File Name   : parity_using_bitwise.v
  4 // Function    : Parity using bitwise xor
  5 // Coder       : Deepak Kumar Tala
Hanya sebagai suatu komentar karena ada simbol “//”
module parity_using_bitwise (
  8 data_in    , //  8 bit data in
  9 parity_out   //  1 bit parity out
 10 );
Parity_using_bitwise sebagai judul dari suatu module yang ingin dibuat
data_in,parity_out sebagai suatu variabel
output  parity_out ;
untuk mendeklarasikan bahwa variabel parity_out sebagai output program
 
input [7:0] data_in ;
untuk mendeklarasikan bahwa variabel data_in yang memiliki 8 bit data sebagai input program
 
assign parity_out = ^data_in;
untuk menggabungkan suatu berkas dengan tipe text yang dibuat yaitu parity_out di gabungkan dengan variabel data_in dan melakukan proses perhitungan yang ber parity 1
endmodule
untuk mengakhiri program parity_using_bitwise
==================================================================================================

Minggu, 08 Oktober 2017

Review Jurnal: MANAJEMEN RISIKO SISTEM INFORMASI PADA PERGURUAN TINGGI MENGGUNAKAN KERANGKA KERJA NIST SP 800-300 MANAJEMEN RISIKO SISTEM INFORMASI PADA PERGURUAN TINGGI MENGGUNAKAN KERANGKA KERJA NIST SP 800-300

Nama: Alfalah afta
Judul:
 MANAJEMEN RISIKO SISTEM INFORMASI
PADA PERGURUAN TINGGI
MENGGUNAKAN KERANGKA KERJA NIST SP 800-300
 MANAJEMEN RISIKO SISTEM INFORMASI
PADA PERGURUAN TINGGI
MENGGUNAKAN KERANGKA KERJA NIST SP 800-300
Pendahuluan
Meningkatnya tingkat ketergantungan organisasi pada sistem informasi sejalan dengan risiko yang mungkin timbul, sedangkan pihak universitas belum pernah melakukan penilaian risiko pada implementasi sistem informasi yang ada dengan menggunakan metode atau kerangka kerja tertentu.
Salah satu risiko yang timbul adalah risiko keamanan informasi, dimana informasi menjadi suatu hal yang penting yang harus tetap tersedia dan dapat digunakan. Selain itu juga terjaga keberadaannya dari pihak yang tidak berwenang, baik dari pihak luar maupun dalam yang akan memanfaatkannya untuk kepentingan tertentu atau bahkan akan merusak informasi tersebut.
Tinjauan Pusataka
Pengertian Risiko adalah dampak negatif yang diakibatkan dengan adanya kerentanan (vulnerability), berdasarkan pertimbangan dari probabilitas maupun dampak kejadian.
Risiko mengandung tiga unsur pembentuk risiko, yaitu
1. Kemungkinan kejadian atau peristiwa
2. Dampak atau konsekuensi (jika terjadi, risiko akan membawa akibat atau konsekuensi)
3. Kemungkinan kejadian (risiko masih berupa kemungkinan atau diukur dalam bentuk probabilitas).

Pengertian Manajemen Risiko merupakan suatu proses yang berkelanjutan dalam menilai, memitigasi, dan mengevaluasi risiko. Semua ini dilakukan untuk meningkatkan efektivitas biaya yang dikeluarkan oleh organisasi guna memastikan keamanan darisistem teknologi informasi yang digunakan. Sehingga dapat dipastikan aset teknologi informasi yang dimiliki oleh organisasi seluruhnya aman dari berbagai gangguan. Proses manajemen risiko terdapat 3 tahapan yaitu penilaian risiko (risk assessment), peringanan risiko (risk mitigation), dan evaluasi risiko (risk evaluation).


Tujuan
NIST SP 800-300 merupakan kerangka kerja yang digunakan dalam manajemen risiko sistem informasi, dimana dalam proses manajemen risiko NIST memberikan 3 tahapan yaitu penilaian risiko, peringanan risiko, dan evaluasi risiko.
Metode Penelitian
Metode penelitian yang digunakan yaitu metode kualitatif dengan pendekatan studi kasus. Proses pengumpulan data pada penelitian ini dilakukan dengan cara wawancara dan observasi. Pengkajin utama dalam manajemen risiko sistem informasi ini menggunakan kerangka kerja NIST SP 300-80 sebagai panduan prosedur manajemen risiko.

Pembahasan
Proses penilaian risiko (risk assessment) dilakukan dengan beberapa tahapan, sesuai dengan Proses penilaian risiko (risk assessment) dilakukan dengan beberapa tahapan, sesuai dengan kerangka kerja NIST SP800-30. Tahapan-tahapan tersebut sebagai berikut:

1. Karakteristik sistem
2. Identifikasi ancaman
3. Identifikasi kerentanan
4. Analisa kontrol
5. Kemungkinan yang menentukan
6. Analisa dampak
7. Risiko yang menentukan
8. Rekomendasi kontrol
9. Dokumentasi hasil

Peringanan Risiko (Risk Mitigation) Tahapan ini merupakan tindakan peringanan terhadap risiko yang sudah terdokumentasi. Hasil dari penilaian risiko ini berupa profil risiko dengan berbagai rekomendasi yang sekiranya dapat menjadi solusi dalam proses meringankan risiko yang sesuai dengan kebutuhan sistem informasi.

Evaluasi Risiko (Risk Evaluation) Tahap terakhir dalam manajemen risiko sistem informasi Perguruan tinggi dengan kerangka kerja NIST SP 800-30 adalah evaluasi risiko. Perguruan tinggi harus melaksanakan evaluasi risiko ini secara periodik, sehingga sistem informasi pada perguruantinggi tersebut akan berjalan dengan baik sesuai harapan.

Kelebihan
- Abstrak jelas, sehingga dengan membaca abstraknya saja pembaca dapat mengetahui hasil dari -penelitian tersebut
- kesimpulan yang dibuat sudah terperinci dan dipaparkan secara jelas

Kekurangan
- Terlalu banyak kata-kata yang seharusnya bisa lebih di persingkat lagi

Kesimpulan

Berdasarkan hasil dan pembahasan maka dapat diperoleh kesimpulan sebagai berikut:
1. Hasil dari penilaian risiko didapat beberapa sumber ancaman yang dapat menimbulkan risiko pada sistem informasi, diantaranya keamanan sistem yang memiliki tingkat risiko tinggi, backup server hang yang memiliki tingkat risiko tinggi, dan password yang memiliki tingkat risiko sedang.
2. Proses peringanan risiko yang dilakukan di Perguruan tinggi, dengan menambah server sebagai cadangan, untuk mengantisipasi kerusakan server dan dapat melindungi data-data sensitif.
3. Evaluasi kegiatan manajemen risiko sistem informasi Perguruan tinggi belum dilaksanakan sesuai prosedur yang sudah ditetapkan. Untuk menghindari ancaman yang dapat menimbulkan risiko terhadap sistem informasi baru dilaksanakan secara rutin proses backup data saja.
4. Manajemen risiko dengan menggunakan kerangka kerja NIST SP 300-80, dapat mendeskripsikan profil risiko yang dapat mengancam keberlangsungan sistem informasi