Minggu, 01 Mei 2011

10

[VB.NET] Belajar Membuat Program File Scanner

  • Minggu, 01 Mei 2011
  • Nurkholish Ardi Firdaus
  • Alhamdulillah, ini adalah postingan pertama saya setelah 1 minggu vakum setelah UN. Sebenarnya UN nya sudah selesai 1 minggu yang lalu, tetapi saya baru menyempatkan posting sekarang. Oke daripada kebanyakan omong, kita mulai saja rapat kali ini ^_^. Sebelumnya saya pernah mempostingkan bagaimana cara membuat Program Virus Scanner Sederhana, tetapi ternyata metode scan nya sangatlah lambat dan merepotkan. Nah kali ini saya akan membuat Program File Scanner yang mana metodenya lumanyan lebih cepat dan tidak memberatkan RAM. Mari kita lihat bagaimana?.



    Buatlah proyek baru dengan 1 Form

    Deklarasi:
    1 Form
    2 Button
    2 TextBox
    1 ComboBox
    5 Label
    1 Timer
    

    Buatlah sedemikian rupa seperti ini sesuai keterangan dibawahnya:



    Keterangan
    1: ComboBox
     Name: cboDir
     DropDownStyle: DropDownList
    2: Button
     Name: cmdBrowse
     Text: "Browse"
    3: Button
     Name: cmdScan
     Text: "Scan"
    4: TextBox
     Name: txtCurrDir
     MultiLine: True
     ScrollBars: Vertical
    5: Label
     Name: lblSpeed
     Text: "Speed:"
    6: TextBox
     Name: txtCurrFile
    7: Label
     Name: lblScanned
     Text: "Scanned:"
    8: Label
     Name: lblUnscanned
     Text: "Unscanned:"
    9: Label
     Name: Label1
     Text: "Current Folder"
    10: Label
     Name: Label2
     Text: "Current File"
    11: Timer
     Name: tmrSpeedo
     Enabled: False
     Interval: 1000

    Terakhir masukkan source codenya:

    Source Code Form1

    ' Program file scanner sederhana
    ' coded by nurkholish ardi f
    ' www.cr0wja.co.cc
    Imports Microsoft.VisualBasic.FileSystem
    Imports Microsoft.VisualBasic.Strings
    Public Class Form1
    
        Dim Scanned As UInt64
        Dim Unscanned As UInt64
        Dim ScannedBefore As UInt64
        Dim RunScan As Boolean
    
        Private Sub cmdScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdScan.Click
            If cboDir.Text = "" Then Exit Sub
            If cmdScan.Text = "Scan" Then
                Turn(True)
                ScanDir(cboDir.Text, True)
                If cmdScan.Text = "Stop" Then ShowRes()
            Else
                ShowRes()
            End If
            Turn(False)
        End Sub
    
        Private Sub Turn(ByVal switch As Boolean)
            Scanned = 0
            Unscanned = 0
            ScannedBefore = 0
            tmrSpeedo.Enabled = switch
            RunScan = switch
            txtCurrDir.Text = ""
            txtCurrFile.Text = ""
            lblScanned.Text = "Scanned: "
            lblSpeed.Text = "Speed: "
            cmdBrowse.Enabled = Not switch
            cboDir.Enabled = Not switch
            If switch Then
                cmdScan.Text = "Stop"
            Else
                cmdScan.Text = "Scan"
            End If
        End Sub
    
        Private Sub ShowRes()
            MsgBox("Done, " & Scanned & " file(s) scanned, " & Unscanned & " file(s) unscanned", MsgBoxStyle.Information, "Done")
        End Sub
    
        Private Sub cmdBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBrowse.Click
            Dim OpenDirDlg As New FolderBrowserDialog
            With OpenDirDlg
                .ShowDialog()
                If .SelectedPath <> Nothing Then
                    cboDir.Items.Add(.SelectedPath)
                    cboDir.Text = .SelectedPath
                End If
            End With
            OpenDirDlg = Nothing
        End Sub
    
        Private Sub ScanDir(ByVal dirpath As String, ByVal subdirs As Boolean)
            If Not RunScan Then Exit Sub
            Application.DoEvents()
            If Strings.Right(dirpath, 1) <> "\" Then dirpath &= "\"
            Dim CurrFile As String
            Dim value As Int32
            CurrFile = Microsoft.VisualBasic.Dir(dirpath)
            Do While CurrFile <> ""
                value = ScanFile(dirpath & CurrFile)
                Scanned += value
                Unscanned += IIf(value = 1, 0, 1)
                txtCurrFile.Text = CurrFile
                txtCurrDir.Text = dirpath
                lblScanned.Text = "Scanned: " & Scanned & " file(s)"
                lblUnscanned.Text = "Unscanned: " & Unscanned & " file(s)"
                CurrFile = Microsoft.VisualBasic.Dir
            Loop
    
            If subdirs Then
                For Each SubDir As String In FileIO.FileSystem.GetDirectories(dirpath, FileIO.SearchOption.SearchTopLevelOnly)
                    Try
                        ScanDir(SubDir, True)
                    Catch ex As Exception
    
                    End Try
                Next
            End If
        End Sub
    
        Private Function ScanFile(ByVal filepath As String) As Int32
            If Not RunScan Then Exit Function
            Application.DoEvents()
            Try
                Dim OpenFile As New IO.StreamReader(filepath)
                '==========================================
                ' Disini agan bisa menambahkan code yang selanjutnya, setelah akses stream file reader terbuka
                ' bisa berupa mencari bit pada file, mendapatkan hash md5 nya atau sebagainya
                ' sesuai keinginan agan
                '==========================================
                OpenFile.Close()
                Return 1
            Catch ex As Exception
                ' jika terjadi error
                Return 0
            End Try
        End Function
    
        Private Sub tmrSpeedo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrSpeedo.Tick
            If ScannedBefore = 0 Then
                ScannedBefore = Scanned
            Else
                lblSpeed.Text = "Speed: " & (Scanned - ScannedBefore) & " file/s"
                ScannedBefore = Scanned
            End If
        End Sub
    
    End Class

    Dan setelah saya coba Run, kecepatan scan nya lumayan nih.


    Tetapi itu belum ada code yang akan dijalankan pada setiap file yang akan di scan, mungkin jika agan menambahkan code seperti mengambil hash MD5 nya mungkin kecepatan akan semakin lambat tergantung banyaknya tugas yang dilaksanakan.

    Nah, sampai sekian dulu. Seperti biasanya jika agan malas membuatnya, agan bisa mendownload source codenya dibawah ini.

    Crowja-Coderz


    Sabtu, 23 April 2011

    5

    Ebook Tutorial Singkat MetaQuotes Language 4 (MQL4) Bahasa Indonesia

  • Sabtu, 23 April 2011
  • Nurkholish Ardi Firdaus
  • Pesanan om "Sekilas IT" yang saya kira memesan buku MySQL eh ternyata MQL4. Hehehehe, maaf ya gan. Bukunya singkat nih, entah agan udah punya atau belum. Membahas basic programming MQL4 seperti penggunaan syntaks, operator, komentar dan sebagainya. Semoga trading nya makin sukses.

    Crowja-Coderz

    1

    Koleksi Tutorial Singkat MySQL (Bahasa Indonesia)

  • Nurkholish Ardi Firdaus
  • Atas permintaan dari agan "Sekilas IT", saya postingin nih beberapa tutorial singkat MySQL. Semoga bisa sedikit membantu, kalau besok ada ebook lain yang terkait saya akan postingkan.

    Crowja-Coderz


    Selasa, 12 April 2011

    2

    [Request Ebook] Buku Belajar Pemrograman Pascal

  • Selasa, 12 April 2011
  • Nurkholish Ardi Firdaus
  • Oke, karena kemarin ada pengunjung yang request buku pemrograman pascal, maka saya menyempatkan diri untuk mempostingkannya sesuai janji saya. Memang kalau lagi musim "Olimpiade Sains" banyak anak SMA yang mencarinya di internet. Saya kebetulan punya dua buku tentang pemrograman pascal nih sobat-sobat semuanya. Didownload aja ya...

    Pascal Programming Karangan P. Radha Ganeshan





    Crowja-Coderz



    Pascal Programming Fundamental Karangan P.S Grover




    Crowja-Coderz


    Cuma itu yang bisa saya berikan untuk agan "adha" yang telah merequest nya. Terimakasih

    Sabtu, 09 April 2011

    0

    [C++] Program Penghitung Determinan Matriks Ordo 3x3 dengan C++

  • Sabtu, 09 April 2011
  • Nurkholish Ardi Firdaus
  • Setelah sebelumnya saya menjelaskan mengenai program determinan matriks 2x2, maka kali ini saya akan menjelaskan mengenai program determinan matriks 3x3. Pencarian determinan matriks ordo 3x3 lebih rumit dari matriks 2x2. Cara yang saya gunakan disini adalah dengan menggunakan Sarrus Rule, dan gambar disamping ini adalah rumus umum untuk menentukan determinan matriks berordo 3x3.






    //Determinan Matriks 3x3
    #include <iostream.h>
    #include <conio.h>
    
    #define Nmaks 4
    
    void main()
    {
     typedef matriks[Nmaks][Nmaks];
     int i,j,determinan;
     matriks A;
     char answer;
    
     do
     {
      clrscr();
      cout<<"DETERMINAN MATRIKS A : "<<endl<<endl;
     cout<<"Masukkan Nilai Matriks A : "<<endl;
     for(i=1;i<=3;i++)
     {
      for(j=1;j<=3;j++)
      {
       cout<<"A["<<i<<","<<j<<"] = ";
       cin>>A[i][j];
      }
     }
    
     clrscr();
     cout<<endl;
     //Proses Mencari Determinan Matriks A
    
     determinan = ((A[1][1]*A[2][2]*A[3][3])+(A[1][2]*A[2][3]*A[3][1])+(A[1][3]*A[2][1]*A[3][2])) -
                  ((A[3][1]*A[2][2]*A[1][3])+(A[3][2]*A[2][3]*A[1][1])+(A[3][3]*A[2][1]*A[1][2]));
    
     clrscr();
     //Output Matriks A
     gotoxy(1,5);
     cout<<"A = ";
     for(i=1;i<=3;i++)
     {
      for(j=1;j<=3;j++)
      {
       gotoxy(2+4*j,2+2*i);
       cout<<A[i][j];
      }
     }
    
     gotoxy(1,12);
     cout<<"Determinan Matriks A = "<<determinan;
     cout<<endl;
    
     getch();
     clrscr();
     cout<<"== PROGRAM SELESAI =="<<endl<<endl;
     cout<<"Mau Melakukan Perhitungan Lagi?? [Y/T] "; cin>>answer;
     }
     while ((answer == 'y') || (answer == 'Y'));
    }
    

    Sumber: world-of-programmer.blogspot.com

    Subscribe