Senin, 30 Oktober 2017

Penjelasan Program Verilog


 Encoder

// Design Name : encoder_using_if
// File Name   : encoder_using_if.v
// Function    : Encoder using If
// Coder       : Deepak Kumar Tala
=> Dia berfungsi sebagai menjadi hanya sebuah kolom komentar pada program encoder_using_if.
module encoder_using_if(
binary_out , //  4 bit binary output
encoder_in , //  16-bit input
enable       //  Enable for the encoder
);
=> membuat module dengan nama encoder_using_if, dan didalamnya terdapat variable binary_out 4 bit sebagai output, encoder_in 16 bit sebagai input, dan enable sebagai input.
//-----------Output Ports---------------
output [3:0] binary_out  ;
=> Mendeklarasikan sebuah port output dari binary_out yang keluaranya menjadi 4bit.
//-----------Input Ports---------------
input  enable ;
input [15:0] encoder_in ;
=> Mendeklarasikan sebuah variable masukkan yaitu enable dan encoder_in dengan encoder_in menjadi 16bit masukkan.
//------------Internal Variables--------
reg [3:0] binary_out ;
=> Mendeklarasikann sebuah register yang terdapat pada binary_out dengan alamat 4 bit.
//-------------Code Start-----------------
always @ (enable or encoder_in)
=> Berfungsi sebagai program yang dimana memerlukan clock terus untuk mengantarkan nilai masukkan. Kemudian variable enable digabungkan dengan variable encoder_in.
  begin
    binary_out = 0;
    if (enable) begin
      if (encoder_in == 16'h0002) begin
       binary_out = 1;
      end  if (encoder_in == 16'h0004) begin
       binary_out = 2;
      end  if (encoder_in == 16'h0008) begin
       binary_out = 3;
      end  if (encoder_in == 16'h0010) begin
       binary_out = 4;
      end  if (encoder_in == 16'h0020) begin
       binary_out = 5;
      end  if (encoder_in == 16'h0040) begin
       binary_out = 6;
      end  if (encoder_in == 16'h0080) begin
       binary_out = 7;
      end  if (encoder_in == 16'h0100) begin
       binary_out = 8;
      end  if (encoder_in == 16'h0200) begin
       binary_out = 9;
      end if (encoder_in == 16'h0400) begin
       binary_out = 10;
      end  if (encoder_in == 16'h0800) begin
       binary_out = 11;
      end  if (encoder_in == 16'h1000) begin
       binary_out = 12;
      end  if (encoder_in == 16'h2000) begin
       binary_out = 13;
      end  if (encoder_in == 16'h4000) begin
       binary_out = 14;
      end if (encoder_in == 16'h8000) begin
       binary_out = 15;
==> Fungsi script diatas adalah terdapat kondisi awal dimana binary_out=0, lalu jika enable maka dia akan lenjut ke state berikutnya yaitu encoder_in==16'h0002) dimana nilai bianry_out yang keluar adalah 1, lalu jika encoder_in==16'h0004) maka nilai binary_out yang keluar adalah, begitu pun seterusnya hinga semua kondisi terpenuhi hingga  nilai binary_out menghasilkan angka 15. ini sama saja seperti kita memainkan sebuah switch secara berurut hingga menghasilkan sebuah nyala led berurut sesuai yang kita masukan kode binnernya dalam bentuk hexa.
    end
end
end   
endmodule
=> Berfungsi untuk mengakhiri sebuah statement yang dibuat dan endmodule adalah untuk mengakhiri sebuah program pada module yang telah dibuat tadi.

MUX(Multiplekser)



//Design Name : mux_using_if
//File Name : mov_using_if.v
//Function :  2:1 mux using if
//Coder : Deepak Kumar Tala
=> Berfungsi sebagai komentar dalam membuat program mux_using_if.
module mux_using_if(
din_0           ,         //  mux first input
din_1                     ,          // mux second input
sel               ,         // select input
mux_out                         // mux output
);
=>Berfungsi untuk membuat sebuah module dengan nama file mux_using_if dan didalamnya terdapat 4 variable yaitu di_0, din_1, dan select sebagai input dan mux_out sebagai outputnya.
//---------- input ports ---------
input  din_0, din_1,  sel;
=> Mendeklarasikan sebuah port input yaitu  din_0, din_1,  sel  pada program.
//---------- output ports ---------
Output  mux_out ;
=> Mendeklarasikan sebuah port output yaitu mux_out.
//---------- internal variables ---------
reg  mux_out ;
=> Mendeklarasikan sebuah register dengan variable mux_out.
//---------- Code Start Here ---------
Always  @  ( sel or din_0 or din_1)
=> Harus memerlukan clock secara terus-menerus karena clock berfungsi untuk menghantarkan nilai masukkan pin-pin keluaran. Kemudian variable sel digabungkan dengan variable masukkan lainnya yaitu din_0 dan din_1.
Begin : mux
=> Berfungsi untuk memulai subprogram mux.
If (sel == 1’b0) begin
          Mux_out  =  din_0);
End else begin
          Mux_out  = din_1);
=> Berfungsi jika variable sel == 1 maka hasil keluaranya adalah mux_out yaitu din_0 jika tidak maka dia akan ke end else yaitu keluaran din_!.
End
End
Endmodule  //End Of Module mux
=> Berfungsi sebagai akhir dari isi statment dan juga akhir dari sebuah program module yang telah dibuat tadi.


Flip-Flop And Latches



//Design Name : dff_async_reset
//File Name : dff_async_reset.v
//Function :  D Flip Flop async reset
//Coder : Deepak Kumar Tala
=> Berfungsi hanya sebagai komentar saja dalam membuat program async reset D-FF.
module dff_async_reset(
data             ,         //  data input
clk               ,          // clock input
reset            ,         // reset input
q                           // q output
);
=> Berfungsi untuk membuat sebuah module dengan nama file dff_async_reset dan didalamnya terdapat 4 variable yaitu data,clk,dan reset sebagai input dan q sebagai outputnya.
//---------- input ports ---------
input  data, clk,  reset;
=> Mendeklarasikan sebuah port input yaitu  data, clock, dan reset pada program.
//---------- output ports ---------
Output  q ;
=> Mendeklarasikan sebuah port output yaitu q.
//---------- internal variables ---------
reg  q ;
=> Mendeklarasikan sebuah register pada variable q.
//---------- Code Start Here ---------
Always  @  (posedge clk or negedge reset)
=> Berfungsi sebagai dff ini yang sangat  memerlukan clock secara terus-menerus untuk menghantarkan nilai masukkan pin-pin keluaran. posedge clk or nededge reset yang merupakan gabungan clock yang aktif pada sisi naik positif sedangkan nededge adalah sisi clock yang aktif dari sisi turun-negatif dan menghasilkan sebuah kondisi reset yang ada pada dff itu sendiri.
If (~reset) begin
          Q <= 1’b0;
End else begin
          Q <= data;
=> Berfungsi jika ada negasi dari variable reset maka mulai ke program selnajutnya yaitu 1<=1'bo jika tidak atau terpenuhi maka program lanjut ke q<=data.
End
=> Berfungsi untuk mengakhiri sebuah statment.
Endmodule  //End Of Module dff_aync_reset
=> Berfungai untuk mengakhiri sebuah program module.


Minggu, 08 Oktober 2017

Review Komparasi Metode Machine Learning dan Non Machine Learning untuk Estimasi Usaha Perangkat Lunak.



TUGAS REVIEW JURNAL





















Nama                   : Langgeng Pambudhy
Kelas                   : 3KB07
NPM                   : 23115781
Judul                   : Komparasi Metode Machine Learning dan Non Machine  Learning untuk Estimasi Usaha Perangkat Lunak.




Review Jurnal: Komparasi Metode Machine Learning dan Non Machine Learning untuk Estimasi Usaha Perangkat Lunak.

Identitas
Judul                : Komparasi Metode Machine Learning dan Non Machine Learning untuk Estimasi Usaha Perangkat Lunak.
Penulis               : Ega Kartika Adhitya, Romi Satria Wahono dan Hendro Subagyo
Tahun                 : December 2015
Halaman             : 109-113


PENDAHULUAN
Dalam pendahuluan dijelaskan latar belakang penulisan jurnal ini. Dapat di lihat bahwa jurnal ini mengungkit bahasan tentang perangkat lunak, karena jika tidak ada perangkat lunak maka tidak dapat menjalankan perangkat keras yang ada. Untuk estimasi pengembangan perankga lunak dibagi menjadi dua metode, yaitu. Metode Non Machine Learning yang merupakan metode konvesinal dengan tingkat keakuratan rendah dan metode Matching Learning yang tealah digunakan untuk pengembangan perangkat lunak.

Proyek perangkat lunak bersifat dinamis sehingga sulit untuk menemukan metode estimasi yang cocok untuk proyek perangkat lunak misalnya, kinerja yang lebih baik dapat dicapai dengan menghilangkan beberapa atribut, yang dengan ini dapat menghilangkan atribut yang tidak relevan dimana hal ini dapat meningkatkan akurasi estimasi. Untuk meningkatkan akurasi diperlukan algoritma seleksi atribut. Yang dibagi 2 tipe yaitu filter dan wrappting namun        Hasil precision dari tipe wrapper lebih tinggi daripada tipe filter

TUJUAN
Tujuan jurnal ini untuk menseleksi fitur, baru-baru ini digunakan di bidang rekayasa perangkat lunak untuk meningkatkan akurasi, model biaya perangkat lunak. Ide di balik memilih subset paling informatif fitur yang tersedia berasal dari hipotesis bahwa mengurangi dimensi dataset secara signifikan akan mengurangi kompleksitas dan waktu yang diperlukan untuk mencapai perkiraan menggunakan teknik pemodelan tertentu. 

METODE PENELITIAN
1. Model dan variabel penelitian. Variabel yang digunakan yaitu variabel eksogen (variabel bebas), intervening (variabel antara) dan variabel endogen (variabel terikat).
2. Metode Pengukuran. Pada metode pengukuranyang digunagkan yaitu dengan memberikan pertanyaan (kuesioner) kepada para sampel.
3. Metode Analisis. Metode ini yaitu metode dengan menitikberatkan kuantitatif (perhitungan) maka hasil yang didapatkan berupa angka.





HASIL DAN PEMBAHASAN
K-NN mempunyai nilai RSME yang paling baik, dengan nilai RMSE 6.2 untuk dataset Albercth dan 9.4 untuk dataset Desherhanis. NN menghasilkan RMSE 11.7 poin untuk dataset Albercth dan 10.8 untuk dataset Desherhanis . SVM menghasilkan RMSE 11.1 untuk dataset Albercth dan 11 untuk dataset Desherhanis. Dari hasil tersebut, maka dapat kita simpulkan kNN merupakan metode machine learning yang baik.


Gambar ini dapat ketahui bahwa FP mempunyai nilai RSME yang paling baik, dengan nilai RMSE 4.6 poin untuk dataset Albercth dan 21.3 poin untuk dataset Desherhanis. UCP menghasilkan RMSE 8.8 poin untuk dataset Albercth dan 64.3 poin untuk dataset Desherhanis. Dari hasil tersebut, maka dapat kita simpulkan FP merupakan metode non-machine learning yang baik. Gambar ini merupakan grafik komparasi RMSE metode non- machine learning 
 

Perbandingan Hasil Metode Machine Learning dan Non-Machine Learning

pada penelitian ketiga ini dikomparasikan antara kNN dan FP dan menghasilkan kNN sebagai metode terbaik untuk estimasi perangkat lunak. Gambar 4 merupakan hasil komparasi metode machine learning dan non machine learning terbaik untuk estimasi perangkat lunak

 
kNN untuk dua dataset baik dataset Albercth dan dataset Deshernanis, algoritma seleksi atribut FS mendapatkan hasil yang paling baik untuk digunakan pada estimasi usaha perangkat lunak.




KESIMPULAN
SVM didapatkan kNN dengan hasil terbaik dengan nilai RMSE yang paling baik, dengan nilai RMSE 6.2 untuk dataset Albercth dan 9.4 untuk dataset Desherhanis. Hasil dari metode non ML antara FP dan UCP didapatkan FP mempunyai nilai RSME yang paling baik, dengan nilai RMSE 4.6 untuk dataset Albercth dan 21.3 untuk dataset Desherhanis. Dapat disimpulkan hasil dari komparasi antara kNN dan FP dan menghasilkan kNN sebagai metode terbaik untuk estimasi perangkat lunak.
Seleksi atribut FS mendapatkan hasil yang terbaik. Dengan menggunakan kNN untuk dua dataset baik dataset Albercth dan dataset Deshernanis, algoritma Seleksi Atribut FS mendapatkan hasil yang paling baik untuk digunakan pada estimasi usaha perangkat lunak.menghasilkan kNN dengan Seleksi Atribut FS sebagai metode terbaik untuk estimasi perangkat lunak.

DAFTAR PUSTAKA