Minggu, 17 Oktober 2010

Koneksi String VB6

SQL SERVER

public sub koneksi_sqlserver()
Dim userid As String, userpass As String, namaserver As String, namadb As String
userid = "sa"
userpass = ""
namaserver = ""
namadb = ""
myConn.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;" & _
"User ID=" & userid & ";" & _
"Password=" & userpass & ";" & _
"Initial Catalog=" & namadb & ";" & _
"Data Source=" & namaserver
myConn.ConnectionTimeout = 60
myConn.CursorLocation = adUseClient
myConn.Open
end sub
_________________________________________________________________

MYSQL

Public Sub koneksi_mysql()
Dim db_name As String
Dim db_server As String
Dim db_port As String
Dim db_user As String
Dim db_pass As String
Dim strcon As String

db_name = ""
db_server = "192.168.0.41"
db_port = "3306"
db_user = ""
db_pass = ""
'/buat connection string
strcon = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=" & db_server & ";DATABASE=" & db_name & ";UID=" & db_user & ";PWD=" & db_pass & ";PORT=" & db_port & ";OPTION=3"
Set konek_mysql = New ADODB.Connection
konek_mysql.CursorLocation = adUseClient

konek_mysql.Open strcon
End Sub
__________________________________________________________________

ACCESS

Public Sub koneksi_access()
Dim strFileName As String
Dim strConnString As String
strFileName = FixPath("db2.mdb")
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFileName & ";Persist Security Info=False"
Set konek_access = New ADODB.Connection
konek_access.CursorLocation = adUseClient
konek_access.Open strConnString

End Sub

Selasa, 31 Agustus 2010

Membuat Triger

Coiiiii
Triger itu adalah misal pada tabel barang isi stok-nya ada 0, misalkan pada database pembelian bertambah (misal beli 2) maka otomatis pada tabel barang, stoknya jadi 2.
Nie Contohnya pada SQL SERVER 2005


menurut MSDN, syntac dari trigger adalah sebagai berikut
Syntax

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]
}
}

biar lebih mengerti, kita mulai dengan contoh.. jadi kita butuh membuat 2 tabel tersebut di SQL server 2005, script sebagai berikut

create table BARANG
(
BAR_ID int not null,
BAR_NAMA varchar(255) not null,
BAR_STOCK int null
default 0,
constraint PK_BARANG primary key (BAR_ID)
)
go

create table PEMBELIAN
(
PEM_ID int not null,
BAR_ID int null ,
PEM_JUMLAH int null ,
constraint PK_PEMBELIAN primary key (PEM_ID)
)
go

create index RELATION_FK on PEMBELIAN (BAR_ID)
go

alter table PEMBELIAN
add constraint FK_PEMBELIA_RELATION_BARANG foreign key (BAR_ID)
references BARANG (BAR_ID)
go

INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (1,’AQUA’);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (2,’TOTAL’);
INSERT INTO BARANG (BAR_ID,BAR_NAMA) VALUES (3,’AQUADES’);

setelah anda menjalankan script tersebut, maka anda akan mempunyai 2 tabel, yaitu tabel barang dengan isi 3 buah data, dan tabel pembelian dengan data masih kosong.3 data di tabel barang tersebut secara defaut stocknya adalah 0

kemudian saatnya kita buat trigger sehingga ketika kita menambahkan data di tabel pembelian dengan jumlah pembelian barang tertentu, maka stock di tabel barang akan bertambah sesuai dengan barang yg dibeli, syntac trigger tersebut adalah sebagai berikut

create trigger tambahStockbarang on pembelian
for insert
as
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id

arti dari kode tersebut adalah sebagai berikut
create trigger tambahStockbarang on pembelian
membuat trigger dengan nama tambahStockBarang dimana trigger tersebut akan terpicu jika ada perubahan di tabel pembelian

for insert
as
perubahan tersebut adalah penambahan(insert) di tabel pembelian , selain penambahan bisa juga diisi dengan perubahan(update) atau penghapusan(delete)
for disini juga bisa rubah isinya jadi after atau instead of . perbedaanya adalah waktu trigger dikerjakan, biasaya yg sering digunakan adalah for

update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id
ini adalah kode yg dikerjakan ketika kejadian trigger terpicu, kode diatas bertujuan merubah nilai bar_stock pada tabel barang dengan menambahkan nilai bar_stock yg sekarang dengan jumlah barang yg dibeli (pem_jumlah). perhatikan disini ada tabel yang bernama inserted, tabel tersebut merupakan tabel logika yg digunakan untuk menyimpan data yang memicu terjadinya trigger, dalam hal ini nilai data yg dimasukkan(insert) kedalam tabel pembelian, selain inserted, tabel logika lainnya adalah deleted, tabel logika ini digunakan untuk trigger yg terpicu dengan kejadian delete

kita coba masukkan kode berikut

INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (1,1,4);
INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (2,3,2);
INSERT INTO PEMBELIAN (PEM_ID, BAR_ID, PEM_JUMLAH) VALUES (3,1,1);

arti kode tersebut
pem_id haruslah beda karena merupakan primary key
beli aqua(kode bar_id=1) sebanyak 4
beli aquades (kode bar_id=3) sebanyak 2
beli aqua lagi sebanyak 1

sehingga secara keseluruhan yg dibeli aqua sebanyak 5 dan aquades sebanyak 2
karena default nilai stock barang adalah 0, maka seharusnya nilai aqua 5 dan aquades 2 adalah jumlah stock barang sekarang ini

dan kita lihat data barang… walah

hasil trigger

sekian tutorial kali ini tentang membuat trigger di SQL Server, semoga bisa membantu yg lagi kesusahan bikin Tugas Akhir ata pekerjaan

Mengatasi masalah "Cannot generate SSPI context"

Apabila Ente menggunakan type windows authoticention pada sql serper maka error tersebut ("Cannot generate SSPI context") kadang muncul. Error tersebut sebenarnya adalah karena pada server gak mengijinkan computer client tersebut untuk akses ke serper. Biasanya sih ane bwat juga serper DHCP n client pake DHCP tersebut. Dijamin Dech error kaya gitu gak akan muncul lagi...

Senin, 30 Agustus 2010

Ekspor Stored Procedure SQL SERVER 2000

Dari pada kudu copy paste satu per satu bila ente mo migrasi database mending pake cara berikut

1. Buka Enterprise Manager
2. Pilih database yang akan di ekspor
3. Klik Tool -> Generate SQL Script (kalo tombol tersebut disable maka ente salah milih databasenya)
Ataw bisa juga dengan di klik kanan kemudian pilih all task -> Generate SQL Script
4. Klik Tombol SHOW ALL
5. Centang All Stored Procedure
6. Kemudian Klik Preview
7. Jadi Dech tinggal di copy hasil previw n pastein ke database ente yang baru

Rabu, 09 Juni 2010

Konfigurasi DNS Server Debian

login as: root
root@2.2.2.1's password:
Last login: Tue Nov 18 15:41:50 2008 from noc.dika.web.id
Linux ns1.wave 2.6.18-6-686 #1 SMP Mon Oct 13 16:13:09 UTC 2008 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
ns1:~# cd /etc/bind/zones/master/
ns1:/etc/bind/zones/master#
jika kita mengetikkan ls maka mesin akan menampilkan seluruh database domain. coba salah satu domain yg ada, sebagai contoh adalah pakerin.
ns1:/etc/bind/zones/master# vim dikaweb.co.id.db
$ORIGIN .
$TTL 1800 ; 30 minutes
dikaweb.co.id IN SOA ns1.dika.web.id. noc.dika.web.id. (
2008090800 ; serial (1)
10800 ; refresh (3 hours)
1800 ; retry (30 minutes)
604800 ; expire (1 week)
1800 ; minimum (30 minutes)
)
NS ns1.dika.web.id.
NS ns2.dika.web.id.
MX 10 mx.dika.web.id. (2)
$ORIGIN dikaweb.co.id.
mjk MX 10 mx.dika.web.id. (3)
www A 2.2.100.11 (4)
mail CNAME mail.dika.web.id. (5)
mail.mjk CNAME mail.dika.web.id. (6)

penjelasan :
(1) merupakan komposisi dari TahunBulanTanggalCounter. setiap kali ada perubahan counter harus selalu diubah sesuai urutan.
(2) setiingan dari Mail Exchange (MX) semakin kecil prioritas semakin besar
(3) idem
(4) settingan pengalamatan (Address) dengan mengunakan IP. settingan ini merupakan letak dari www
(5) settingan dengan mengunakan nama

berikut adalah settingan dari named.conf.local dari salah satu domain
ns1:/etc/bind/zones/master# vim /etc/bind/named.conf.local

// Do any local configuration here
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "1.1.1.1.in-addr.arpa" {
type master;
file "/etc/bind/zones/master/1.1.1.1.rev";
allow-transfer {
2.2.3.1;
};
allow-query {any;};
};

zone "2.2.2.in-addr.arpa" {
type master;
file "/etc/bind/zones/master/2.2.2.rev";
allow-transfer {
2.2.3.1;
};
allow-query {any;};
};

zone "dikaweb.co.id" {
type master;
file "/etc/bind/zones/master/dikaweb.co.id.db";
allow-transfer {
2.2.3.1;
};
allow-query {any;};
};

zone "dikaweb.co.id" {
type slave;
file "/etc/bind/zones/master/dikaweb.co.id.db";
masters {
2.2.2.1;
};
};

selain di DNS master, suatu domain juga harus didekarasikan di DNS slave.
ns2:/etc/bind/zones/master# vim /etc/bind/named.conf.local
// Do any local configuration here
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";




zone "1.1.1.1.in-addr.arpa" {
type slave;
file "/etc/bind/zones/master/1.1.1.1.rev";
masters {
2.2.2.1;
};
};

zone "2.2.2.in-addr.arpa" {
type slave;
file "/etc/bind/zones/master/2.2.2.rev";
masters {
2.2.2.1;
};
};

zone "dikaweb.co.id" {
type slave;
file "/etc/bind/zones/master/dikaweb.co.id.db";
masters {
2.2.2.1;
};
};

dan berikut adalah kelengkapan settingan DNS
ns1:/etc/bind/zones/master# vim 1.1.1.1.rev
$TTL 1d ;
;$ORIGIN 1.1.1.1.IN-ADDR.ARPA.
@ IN SOA ns1.dika.web.id. noc@dika.web.id. (
2008090300
7200
120
2419200
604800
)
@ IN NS ns1.dika.web.id.
@ IN NS ns2.dika.web.id.


1 IN PTR core-gw.dika.web.id.
10 IN PTR ns1.dika.web.id.
11 IN PTR www.dika.web.id.
12 IN PTR mail.dika.web.id.
13 IN PTR www2.dika.web.id.
14 IN PTR ras.dika.web.id.
15 IN PTR noc.dika.web.id.
16 IN PTR mx.dika.web.id.


ns1:/etc/bind/zones/master# vim 2.2.2.rev
$TTL 1d ;
;$ORIGIN 1.1.1.1.IN-ADDR.ARPA.
@ IN SOA ns1.dika.web.id. noc@dika.web.id. (
2008081300
7200
120
2419200
604800
)
@ IN NS ns1.dika.web.id.
@ IN NS ns2.dika.web.id.


10 IN PTR ns2.dika.web.id.

ns1:/etc/bind/zones/master# vim 2.2.100.rev.backup
$TTL 1d ;
$ORIGIN 1.1.1.1.IN-ADDR.ARPA.
@ IN SOA ns1.dika.web.id. noc@dika.web.id. (
2008051903
7200
120
2419200
604800
)
IN NS ns1.dika.web.id.
IN NS ns2.dika.web.id.

;--------------------------------------Routers----------------------

1 PTR core-gw.dika.web.id.

;--------------------------------------Routers----------------------

;--------------------------------------Servers----------------------

10 IN PTR ns1.dika.web.id.
11 IN PTR ns2.dika.web.id.




$ORIGIN .
$TTL 1800 ; 30 minutes
user-dika.co.id IN SOA ns1.dika.web.id. noc.dika.web.id. (
2008111300 ; serial
10800 ; refresh (3 hours)
1800 ; retry (30 minutes)
604800 ; expire (1 week)
1800 ; minimum (30 minutes)
)
NS ns1.user-dika.net.id.
NS ns2.user-dika.net.id.
MX 5 mail.user-dika.co.id.
A 202.162.217.162
$ORIGIN user-dika.co.id.
www A 202.162.217.162
sg A 202.162.217.167
ns1 A 202.162.220.110
ns2 A 202.162.220.220

settingan ini digunakan dlm sistem sehingga penulisan di ns1 secara otomatis akan dtransfer ke ns2

1. ns1 pd named.conf.local d tambah settingan lg ---> lihat aja

include "/etc/bind/rndc.key";
controls {
inet 127.0.0.1 port 953
allow {
127.0.0.1;
} keys { "rndc-key"; };
};

2. ns1 dan ns2 pada named.conf.options --> liat aja

allow-recursion {
2.2.2.0/24;
2.2.3.0/24;
127.0.0.1;

3. ns1 dan ns2 mode master d ganti 775 --> chmod -R 755 master

ns1:/etc/bind/zones# chmod -R 775 /etc/bind/zones/master/

Proses close domain (debian):
1. Masuk mesin NS1
2. Hapus domain di NS1 : mv namadomain.db namadomain.db.closed
3. Beri tanda "//" dibagian /etc/bind/named.conf.local pada NS1 pada domain yang di-closed
4. Restart bind NS1: /etc/init.d/bind9 restart
5. Remote NS2 : ssh IP_NS2
6. Lakukan perintah No.2 dan No.3 pada NS2
7. Restart bind NS2: /etc/init.d/bind9 restart
8. Hapus domain pada webserver
9. Coba akses domain yg telah dihapus dengan browser

Hold Suatu Domain
1. Masuk mesin NS
2. Beri tanda "//" dibagian /etc/bind/named.conf.local pada NS1 pada domain yang di-hold
3. Restart bind NS: /etc/init.d/bind9 restart
4. lakukan hal yg sama pada mesin NS2

buat domain di NS :
1. Pindah direktori : cd /etc/bind/zones/master
2. Tampilkan semua domain : ls
3. Kopi : cp tim.co.id.db contoh.com.db
4. Ubah data contoh.com.db : vim contoh.com.db
5. Simpan settingan tersebut : tekan Esc-->tanda ":" -->ketik wq -->enter
6. Masuk ke /etc/bind/named.conf.local
7. Buat tambahan file dengan mengkopi salah satu settingan domain
8. Ubah data sesuai dengan nama domain
9. Restart bind : /etc/init.d/bind9 restart
10. Kopi ke NS2 dengan mc
11. mc(midnight commander) -->ctrl s (mencari file)-->F9-->enter-->tekan h-->masukkan IP NS2-->masukkan password NS2-->tekan tab-->tekan F5 (untuk mengkopi)
12. Pada NS2 masuk ke /etc/bind/named.conf.local
13. Buat tambahan file dengan mengkopi salah satu settingan domain
14. Ubah data sesuai dengan nama domain
15. Restart bind : /etc/init.d/bind9 restart
16. Coba ping domain yg sudah dibuat
17. Pada webserver juga harus dicreate web directorinya dengan masuk ke IIS
Jangan lupa untuk membuat folder sesuai dengan nama domain

seputar DNS
1. CNAME --> untuk alias. misal nama mesin corpmail.dikaweb.net.id bisa dialiaskan menjadi
2. pop.domain.com dimana pop.domain.com menuju mesin yg sama dengan coprmail.surabaya.....
NS 10.10.10.10 debian
1. lokasi db domain ada di direktori /var/named
2. setelah proses menambah domain lakukan penambahan settingan di /etc/named.conf
3. lakukan proses stop/start setelah penambahan pada direktori named.conf
4. /etc/rc.d/rc.bind stop
5. /etc/rc.d/rc.bind start
untuk mengetahui domain jalan atau tidak lakukan ping ke domain tersebut

domain dihack
lihat dan cek setiap databasenya....

Mouse scrool pada datagrid VB6

Hiks, visual basic 6 untuk mouse scrollnya masih belum bisa digunakan. Tapi Dont Worry bisa diakali kok dengan menambahkan modul baru dan pastekan ini :
------------------------------------------------------------------------------
Public Mydika As Object

Private Declare Function CallWindowProc Lib "user32.dll" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long


Public Const MK_CONTROL = &H8
Public Const MK_LBUTTON = &H1

Public Const MK_RBUTTON = &H2
Public Const MK_MBUTTON = &H10
Public Const MK_SHIFT = &H4
Private Const GWL_WNDPROC = -4
Private Const WM_MOUSEWHEEL = &H20A
Dim LocalHwnd As Long
Dim LocalPrevWndProc As Long
Dim MyControl As Object
Private Function WindowProc(ByVal Lwnd As Long, ByVal Lmsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim MouseKeys As Long
Dim Rotation As Long
Dim Xpos As Long
Dim Ypos As Long
If Lmsg = WM_MOUSEWHEEL Then
MouseKeys = wParam And 65535
Rotation = wParam / 65536
Xpos = lParam And 65535
Ypos = lParam / 65536
'determine if mouse wheel is being moved up or down
If Rotation = -120 Then
'call scroll method of datagrid and specify the number of columns and rows to scroll through
'DataGrid.Scroll colNum, rowNum
Mydika.Scroll 0, 3
Else
Mydika.Scroll 0, -3
End If
End If
WindowProc = CallWindowProc(LocalPrevWndProc, Lwnd, Lmsg, wParam, lParam)
End Function
Sub WheelHook(PassedControl As Object)
On Error Resume Next
Set MyControl = PassedControl
LocalHwnd = PassedControl.hWnd
LocalPrevWndProc = SetWindowLong(LocalHwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Sub WheelUnHook()
Dim WorkFlag As Long
On Error Resume Next
WorkFlag = SetWindowLong(LocalHwnd, GWL_WNDPROC, LocalPrevWndProc)
Set MyControl = Nothing
End Sub

----------------------------------------------------------------------------------------------
Trus pada datagrid_klik isikan kaya gini

Private Sub DataGrid1_Click()
WheelUnHook
Set Mydika = POSTING.DataGrid1
WheelHook DataGrid1

End Sub

Script jumlah terbilang pada VB

Untuk menggunakannya tinggal script ini
labelmilas = terbilang(me.txtmisal.text)

Buat modul baru kemudian pastekan coding berikut :

Option Explicit



'***************
' Fungsi Utama
' Mengubah Angka Menjadi Teks
' Eka Priatna
' http://priatna.or.id/
'***************

Function Terbilang(ByVal MyNumber)
On Error Resume Next
Dim Rupiah, Sen, Temp
Dim Des, Desimal, Count, Tmp
Dim IsNeg

ReDim Place(9) As String
Place(2) = "Ribu "
Place(3) = "Juta "
Place(4) = "Milyar "
Place(5) = "Trilyun "

'Ubah angka menjadi string
MyNumber = Round(MyNumber, 2)
MyNumber = Trim(Str(MyNumber))

'Cek bilangan negatif
If Mid(MyNumber, 1, 1) = "-" Then
MyNumber = Right(MyNumber, Len(MyNumber) - 1)
IsNeg = True
End If

'Posisi desimal, 0 jika bil. bulat
Desimal = InStr(MyNumber, ".")
'Pembulatan sen, dua angka di belakang koma
Des = Mid(MyNumber, Desimal + 2)
If Desimal > 0 Then
Tmp = Left(Mid(MyNumber, Desimal + 1) & "00", 2)
If Left(Tmp, 1) = "0" Then
Tmp = Mid(Tmp, 2)
Sen = Satuan(Tmp)
Else
Sen = Puluhan(Tmp)
End If
MyNumber = Trim(Left(MyNumber, Desimal - 1))
End If

Count = 1
Do While MyNumber <> ""
Temp = Ratusan(Right(MyNumber, 3), Count)
If Temp <> "" Then Rupiah = Temp & Place(Count) & Rupiah
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop

Select Case Rupiah
Case ""
Rupiah = "Nol Rupiah"
Case Else
Rupiah = Rupiah & "Rupiah"
End Select

Select Case Sen
Case ""
Sen = ""
Case Else
Sen = " dan " & Sen & "sen"
End Select

If IsNeg = True Then
Terbilang = "minus " & Rupiah & Sen
Else
Terbilang = Rupiah & Sen
End If

End Function


'**************************************
' Mengubah angka 100-999 menjadi teks *
'**************************************
Function Ratusan(ByVal MyNumber, Count)
Dim Result As String
Dim Tmp

If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)

'Mengubah seribu
If MyNumber = "001" And Count = 2 Then
Ratusan = "Se"
Exit Function
End If

'Mengubah ratusan
If Mid(MyNumber, 1, 1) <> "0" Then
If Mid(MyNumber, 1, 1) = "1" Then
Result = "Seratus "
Else
Result = Satuan(Mid(MyNumber, 1, 1)) & "Ratus "
End If
End If

'Mengubah puluhan dan satuan
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & Puluhan(Mid(MyNumber, 2))
Else
Result = Result & Satuan(Mid(MyNumber, 3))
End If

Ratusan = Result

End Function


'*******************
' Mengubah puluhan *
'*******************
Function Puluhan(TeksPuluhan)
Dim Result As String

Result = ""
' nilai antara 10-19
If Val(Left(TeksPuluhan, 1)) = 1 Then
Select Case Val(TeksPuluhan)
Case 10: Result = "Sepuluh "
Case 11: Result = "Sebelas "
Case Else
Result = Satuan(Mid(TeksPuluhan, 2)) & "belas "
End Select
' nilai antara 20-99
Else
Result = Satuan(Mid(TeksPuluhan, 1, 1)) _
& "Puluh "
Result = Result & Satuan(Right(TeksPuluhan, 1))
'satuan
End If
Puluhan = Result
End Function


'********************************
' Mengubah satuan menjadi teks. *
'********************************
Function Satuan(Digit)
Select Case Val(Digit)
Case 1: Satuan = "Satu "
Case 2: Satuan = "Dua "
Case 3: Satuan = "Tiga "
Case 4: Satuan = "Empat "
Case 5: Satuan = "Lima "
Case 6: Satuan = "Enam "
Case 7: Satuan = "Tujuh "
Case 8: Satuan = "Delapan "
Case 9: Satuan = "Sembilan "
Case Else: Satuan = ""
End Select
End Function

Script Export ke excel VB6

Sub export()
progress.Show

'Misal Nie querynya :
sql_export = "select * from barang"

'Yang dibawah ini untu progress bar-nya
progress.ProgressBar1.Value = i



Set AppExcel = New Excel.Application
Set ExcelWBk = AppExcel.Workbooks.Add
Dim ColField As Collection
Dim jmlField As Integer
Set ColField = New Collection
Set ExcelWS = ExcelWBk.Worksheets.Add




Set expo = New ADODB.Recordset
expo.Open sql_export, konek, adOpenDynamic, adLockOptimistic

For jmlField = 0 To expo.Fields.Count - 1
ExcelWS.Cells(1, jmlField + 1) = expo.Fields(jmlField).Name
ColField.Add expo.Fields(jmlField).Name
DoEvents
Next jmlField

Dim Pos As Long
Pos = 2
terong = expo.RecordCount

If Not expo.EOF Then
expo.MoveFirst
While Not expo.EOF
For jmlField = 1 To ColField.Count
test = expo(ColField(1))
ExcelWS.Cells(Pos, jmlField) = expo(ColField(jmlField))
ato = (((Pos - 1) * 100) / terong)
progress.ProgressBar1.Value = Val(ato)
progress.Label2.Caption = Val(ato)
Next jmlField
Pos = Pos + 1
expo.MoveNext
DoEvents
Wend
End If
expo.Close

If Err <> 0 Then
Bego = True
Err.Clear
End If
AppExcel.Visible = True
Unload progress
End Sub

Setting Dasar Cisco

Pertama tancepkan RJ-45 Console Port ke Cisco ente ( RJ-45 Console port tu bentuknya di ujung satu Rj-45 n satunya Colokan serial) Kemudian idupin cisconya.

Kemudian Buka Hyper Terminal n Settinganya kaya gini Bit per second / databits / parity/ stop bits / flow control : 9600 / 8 / none / 1 /none

Muncul kayak gini

Router>

Tu namanya mode user EXEC, mode ini ente gk bisa konfigurasi isi cisco

Cman bisa ping, tracert, n lain2 untuk lengkapnya ente ketikkan tanda Tanya (?)

Router>?

Exec commands:

access-enable Create a temporary Access-List entry

access-profile Apply user-profile to interface

clear Reset functions

Dan lain lain….

Untuk masuk ke Privielege EXEC ( biar bisa ngrubah IP n setting) ketikkan command “ena”

Router>ena

Router#

Nah tanda > akan berubah jadi # yang artinya dah masuk ke privilege EXEC so ente dah punya akses untuk mengkonfigurasi isi cisco

Untuk Memberi password cisco bila masuk Privilege Mode caranya gini

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#enable secret dika

Melakukan Encrypt untuk mode privileged exec dengan md5

# service password-encryption

Untuk memberi IP gini

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#int e0

Router(config-if)#ip address 172.16.8.209 255.255.255.0

Router(config-if)#no shutdown

Nah coba ente ping dari komputer bisa nggak, harusnya sih bisa lo gk bisa brarti HUB / Kabel Lan ente yg masalah

Gimana caranya konfigurasi cisco dari komputer lain tanpa menggunakan kabel RG-45 Console ? Jawabanya tentu menggunakan perintah “telnet” Pada komputer lain

Sekarang cisco cuman bisa di ping aja, nggak bisa di telnet cz, lo di telnet akan keluar kayak gini

C:\>telnet 172.16.8.209

Password required, but none set

Connection to host lost.

C:\>

Brarti harus di setting password caranya pakai line vty

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#line vty 0 4

Router(config-line)#password pertama

Nah sekarng coba ente telnet dari computer pasti bisa

User Access Verification

Password:

Router>

Cuman gk ada ko’ cman password aja gk ada usernamenya ya ?. Lo pengen Username gini caranya

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#line vty 0 4

Router(config-line)#login local

Kemudian baru setting username dan passwordnya

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#username jawa password timur

Coba telnet dari comp lain

User Access Verification

Username: jawa

Password:

Router>

Tapi untuk masuk ke privilege ketikkan ena kemudian passwordnya yang awal tadi “dika”

Membuat username password khusus untuk Clear ARP Cisco

Router(config)#username cleararp

Router(config)#username cleararp privilege 15

Router(config)#username cleararp autocommand clear arp

Router(config)#username cleararp password test

Coba di telnet dari komputer lain

User Access Verification

Username: cleararp

Password:

Connection to host lost.

C:\>

Otomatis akan logout

Setting DHCP Server

        ip dhcp excluded-address 172.16.8.1 172.16.8.150
        ip dhcp excluded-address 172.16.8.175 172.16.8.255
        !
        ip dhcp pool 172.16.8.0/24
               network 172.16.8.0 255.255.255.0
               default-router 172.16.8.1
               dns-server 8.8.8.8
        !

untuk melihat user yang memakai dhcp kita

        # show ip dhcp binding




untuk melihat interface gunakan perintah show run, maka seluruh interface akan ditampilkan. Sedangkan untuk melakukan konfigurasi terlebih dahulu masuk ke configurasi terminal conf t.

nambah routing di cisco

conf t

ip route [ip] [subnet mask] [gateway] name [nama routing]

contoh :

conf t

ip route 1.1.1.1 255.255.255.224 2.2.2 name block_dika

sh run --->cari hasil routingan

wr mem -->menyimpan ke memori

menghapus routing dicisco

conf t

no ip route [ip] [subnet mask][gateway] name [nama routing]

contoh :

conf t

no ip route 1.1.1.1 255.255.255.224 2.2.2.2 name block_dika

sh run | include 2.2 --->cari hasil routingan

wr mem --->menyimpan ke memori

FTP Server Pada Debian

1. Install paket vsftpd

# apt-get install vsftpd

2. Buka file konfigurasinya

# vim /etc/vsftpd.conf

3. Berikut adalah isi file konfigurasi punya saya :D

listen=YES
anonymous_enable=YES
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
user_config_dir=/etc/vsftpd_user
anon_root=/home/ftp

4. Buat file /etc/vsftpd.chroot_list

# vim /etc/vsftpd.chroot_list

kemudian, tulis di file tersebut user yang di beri akses untuk upload data (contoh user = uploader)
misal :

uploader

5. Untuk banner, silahkan create file /etc/vsftpd.banner dan isi sesuai kengininan.

# vim /etc/vsftpd.banner

6. Buat direktori /etc/vsftpd_user/

# mkdir /etc/vsftpd_user/

7. Buatlah file konfigurasi untuk user tukang upload data (contoh user = uploader)

# vim /etc/vsftpd_user/uploader

yang isinya :

listen=YES
anonymous_enable=YES
local_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
nopriv_user=ftp
banner_file=/etc/vsftpd.banner
dirmessage_enable=YES
message_file=welcome.msg
deny_email_enable=YES
banned_email_file=/etc/vsftpd.banned_emails
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd_user
write_enable=YES
max_clients=50
max_per_ip=5

8. Buat user tukang upload, misal saya create user uploader

# adduser uploader

dan jawab pertanyaan yang diajukan.

9. Rubah home directory user tersebut dengan edit file /etc/passwd

# vim /etc/passwd

cari baris yang ada tulisan uploader, ubah bagian /home/uploader menjadi /home/ftp
misal :

uploader:x:1003:1003:,,,:/home/uploader:/bin/bash

maka dirubah menjadi :

uploader:x:1003:1003:,,,:/home/ftp:/bin/bash

Proxy Debian dengan penempatan cache pada hardisk yang berbeda

- install debian hingga selesai
- tambahkan source list
- update
- upgrade --> apt-get upgrade ato apt-get dist-upgrade
- tambahkan settingan
http_port 3128 (nomor port)
acl lan src 172.16.10.0/24 (ip yg dilewatkan proxy)
http_access allow lan
- coba koneksi dengan proxy --> tail -f /var/log/squid/access.log
- ubah settingan browse ke proxy dengan port sesuai dengan settingan proxy
- melihat HDD kita di linux --> dmesg|grep hd
- mount untuk melihat semua file system yang sudah di-mount --> mount

Kasus :
Ada dua buah harddisk, satu digunakan untuk linux yang sudah ter-install dan digunakan untuk booting sebagai
Primary master. Dan harddisk kedua yang baru saja dipasang merupakan harddisk yang berisi data dan tidak dapat
diakses secara langsung.

Simple aja, pertama cuma liat dari output dmesg apakah harddisk yang terpasang sudah di-detect oleh system atau
belum. Jika hanya mengetikkan dmesg akan menampilkan banyak output, maka gunakan grep untuk menampilkann text yang
kita inginkan.

ianis@th3sn0wbr4in:~$ dmesg|grep hd
[ 3425.685444] ide0: BM-DMA at 0x2020-0x2027, BIOS settings: hdaMA, hdb:pio
[ 3425.685487] ide1: BM-DMA at 0x2028-0x202f, BIOS settings: hdcMA, hdd:pio
[ 3426.068814] hda: WDC WD64AA, ATA DISK drive
[ 3427.025307] hdc: ST320414A, ATA DISK drive
[ 3427.923490] hda: max request size: 128KiB
[ 3428.006484] hda: 12594960 sectors (6448 MB) w/2048KiB Cache, CHS=13328/15/63, UDMA(33)
[ 3428.006520] hda: cache flushes not supported
[ 3428.006696] hda: hda1 hda2
[ 3428.035969] hdc: max request size: 128KiB
[ 3430.667545] hdc: 39102336 sectors (20020 MB) w/2048KiB Cache, CHS=38792/16/63, UDMA(33)
[ 3430.667577] hdc: cache flushes not supported
[ 3430.667714] hdc: hdc1
[ 3463.497081] EXT3 FS on hda1, internal journal
ianis@th3sn0wbr4in:~$



Lihat, yang ditampilkan hanya yang terdapat kata-kata hd, bukan?!
Nah, posisi harddisk yang baru saya pasang terletak di Secondary Master, maka di-detect sebagai hdc. Lengkapnya
adalah berikut :


|------------------|------------|
|Posisi |Nama device |
|------------------|------------|
|Primary Master |hda |
|Primary Slave |hdb |
|Secondary Master |hdc |
|Secondary Slave |hdd |
|------------------|------------|


Primary mengarah ke slot IDE0 di motherboard
Secondary mengarah ke slot IDE1 di motherboard
Master dan Slaave mengarah ke Connector IDE di kabel data.
Mudah kan?!
Nah, sekarang ada angka dibelakang hda dan hdc. Angka di belakang hda dan hdc tersebut menunjukkan urutan partisi.
Dari output di atas, bisa di lihat partisi yang ada di masing-masing harddisk.


[ 3428.006696] hda: hda1 hda2
[ 3430.667714] hdc: hdc1


Arti dari output di atas bahwa di hda (Harddisk Primary master) ada 2 partisi dan di hdc (Harddisk Secondary Master)
ada satu partisi.

Sekarang jalankan mount untuk melihat semua filesystem yang sudah di-mount.


ianis@th3sn0wbr4in:~$ mount
/dev/hda1 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.20-15-generic/volatile type tmpfs (rw)
ianis@th3sn0wbr4in:~$


Karena hda1 merupakan partisi utama dimana linux saya ter-install, maka otomatis akan di-mount pada saat booting.
Nah, karena hdc baru saja dipasang maka kita perlu mount hdc terlebih dahulu.
Untuk mount hdc anda perlu priviledge access alias root access.


ianis@th3sn0wbr4in:~$ su -
Password:
root@th3sn0wbr4in:~# mount /dev/hdc /media/hdc
mount: mount point /media/hdc does not exist
root@th3sn0wbr4in:~#


Maksud dari perintah tersebut adalah untuk mount device hdc di directory /media/hdc, jadi kita akan meng-akses
file-file yang ada di device hdc lewat directory /media/hdc. Apa sekarang sudah bisa diakses?!
Belum. Karena perintah tersebut memberikan sebuah pesan mount: mount point /media/hdc does not exist yang artinya
folder /media/hdc tidak ada. Karena memang saya belum membuatnya. Untuk lebih jelas, kita akan memeriksanya.


root@th3sn0wbr4in:~# ls /media/hdc
ls: /media/hdc: No such file or directory
root@th3sn0wbr4in:~#


Benar tidak ada bukan?! Sekarang kita akan membuat directory hdc di bawah direcotry /media dan mount device hdc.


root@th3sn0wbr4in:~# mkdir /media/hdc
root@th3sn0wbr4in:~# mount /dev/hdc /media/hdc
mount: you must specify the filesystem type
root@th3sn0wbr4in:~#


Pesan kembali muncul pada saat mount /dev/hdc ke /media/hdc, tapi pesan ini berbeda dengan sebelumnya yang
memberitahukan bahwa directory /media/hdc tidak ada. Masih ingat pesan dmesg tadi ?!
[ 3430.667714] hdc: hdc1
Pesan di atas memberitahukan bahwa device hdc memiliki satu partisi. Jadi, kita mount hdc1, bukan hdc.


root@th3sn0wbr4in:~# sudo mount /dev/hdc1 /media/hdc
root@th3sn0wbr4in:~#


Tanpa pesan-pesan lagi, bukan?!
Sekarang, coba lihat isi /media/hdc menggunakan perintah ls.


root@th3sn0wbr4in:~# ls /media/hdc
ALL forum.linux.or.id Ianis-Linux.ico My Music System Volume Information
backup great javascript MSOCache RECYCLER
root@th3sn0wbr4in:~#


Tapi, coba anda berganti ke user biasa menggunakan perintah exit dan kemudian memeriksa kembali isi /media/hdc
menggunakan perintah ls /media/hdc.


root@th3sn0wbr4in:~# exit
logout
ianis@th3sn0wbr4in:~$ ls /media/hdc
ls: /media/hdc: Permission denied
ianis@th3sn0wbr4in:~$


Koq jadi ga bisa??!!
Karena default owner-nya adalah root, maka kita perlu menambahkan option uid=1000 agar uid 1000, yaitu ianis
bisa membaca isi dari hdc. Tahu darimana bahwa user ianis memiliki uid 1000 ?


ianis@th3sn0wbr4in:~$ cat /etc/passwd|grep ianis
ianis:1000:1000:Ianis th3sn0wbr4in,,,:/home/ianis:/bin/bash
ianis@th3sn0wbr4in:~$


Cukup mengetikkan cat/etc/passwd|grep namauser, maka anda akan mengetahui uid untuk nama user tersebut.
Sekarang, coba umount /dev/hdc kemudian mount kembali dengan options uid=uid_user_anda


root@th3sn0wbr4in:~# umount /dev/hdc1
root@th3sn0wbr4in:~# mount /dev/hdc1 /media/hdc -o uid=1000
root@th3sn0wbr4in:~# exit
logout
ianis@th3sn0wbr4in:~$ ls /media/hdc
ALL forum.linux.or.id Ianis-Linux.ico My Music System Volume Information
backup great javascript MSOCache RECYCLER
ianis@th3sn0wbr4in:~$


Sekarang, user ianis bisa mengakses isi dari harddisk yang baru saja dipasang, bukan?!
Untuk meng-umount-nya, cukup ketik umount /dev/hdc, dan tidak butuh akses root untuk melakukannya.
Sekarang, anda bisa melihat-lihat isi nya menggunakan Konqueror agar lebih nyaman.
Tapi, sepertinya akan ada satu masalah lagi, yaitu jika anda me-restart komputer anda, maka anda harus mengulang
semua langkah-langkah di atas dari awal, tentu akan sangat melelahkan bukan?!
Sekarang, edit file /etc/fstab menggunakan editor favorit anda. Untuk contoh, saya menggunakan editor nano.


root@th3sn0wbr4in:~# nano /etc/fstab


Tambahkan baris berikut :


/dev/hdc1 /media/hdc auto auto,uid=1000 0 0


Untuk device (/dev/hdc1) dan mount point (/media/hdc) dan options lainnya, silahkan sesuaikan dengan kebutuhan anda.
Sekarang, ketika komputer di-restart, hdc akan di-mount secara otomatis oleh system.
And...have fun!

Proxy Sederhana Debian

1. Bangun Proxy Sederhana Berbasis Linux "Debian"
hai friend, maap ya mungkin teman-teman ga terlalu suka tampilan blog ini heheheh...namanya juga belajar. oya friend, sekarang saya mau coba berbagi sedikit ilmu yg saya dapat dari teman, yakni membangun server proxy berbasis linux. disini saya mau mencoba linux yang biasa digunakan sebagian besar komuniti linuxer di dunia khususnya indonesia "Debian".
sebenarnya banyak jenis linux lain yang bisa digunakan untuk membangun server proxy, semuanya memiliki kelebihan masing-masing. di sini saya akan coba menjelaskan bagaimana membangun server proxy debian sederhana yang baik buat digunakan di hampir semua user, terutama warnet yang menggunakan speedy.
ok sekarang kita coba langkah-langkahnya..adapun langkah pertamanya tentu saja install system menggunakan CD Debian,ini mutlak dilakukan hehehe...ada dua cara waktu partisi HDD, yakni melalui auto partition atau secara manual. disini saya akan coba melakukan manual, disana saya buat sebuah system (/), swap, dan 3 buah cache (cache1, cache2, cache3). dimana cache-cache tersebut memiliki fungsi sebagai tempat menjalankan dan menyimpan squid yang berjalan. setelah selesai melakukan instalasi, sekarang kita melakukan tahap yang sangat penting. adapun tahapannya adalah :

1. Setting ip
setelah selesai instalasi system Os, sekarang hal yang tidak kalah penting adalah pemberian ip internet dan lokal pada server anda tersebut. sekarang coba anda login pada server debian anda, setelah itu coba ketik perintah

" nano /etc/network/interfaces"

disana akan tampak sbb: ( coba anda gunakan ip internet yg sudah isp berikan kepada anda. sebagai contoh ip publik kami 202.152.167.94)

# The primary network interface
auto eth0
iface eth0 inet static
address 202.152.167.94
netmask 255.255.255.0
network 202.152.167.0
broadcast 202.152.167.255
gateway 202.152.167.81

coba anda lakukan perubahan dengan memasuk secara manual beberap script yang sangat penting guna melakukan routingan pada server anda tersebut. adapun perubahannya adalah sbb:

# The primary network interface
#tambahkan eth1
auto eth0 eth1
#ip internet anda
iface eth0 inet static
address 202.152.167.94
netmask 255.255.255.0
network 202.152.167.0
broadcast 202.152.167.255
gateway 202.152.167.81
#ip lokal anda
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

setelah itu anda save ( Ctrl+x ) Enter , lalu coba restart sistem anda dengan ketik

"/etc/init.d/networking start "

atau biar lebih pasti anda restart server anda dengan ketik " reboot ".


2. tahap update source-list

setelah anda login, sekarang anda coba masuk ke directory source-list dengan mengetikan perintah sbb: "nano /etc/apt/source-list". setelah itu coba anda abaikan semua script yg ada dengan memberi tanda "#" di awal baris. lalu coba anda ketik manual beberapa link buat update yang baru.

"deb http://komo.vlsm.org/debian etch main contrib non-free"
"deb http://komo.vlsm.org/debian etch-proposed-updates main contrib non-free"

setelah semua list anda masukkan, sekarang anda save ( Ctrl+x) Enter
lalu anda coba ketik perintah update ( apt-get update ) Enter
maka secara otomatis sistem anda akan mengupdate " jangan lupa cpu anda harus terhubung dengan internet".

3. install ssh
agar anda dapat meremote server debian anda pada cpu lain langkah yang harus anda lakukan adalah dengan menginstall ssh pada server debian anda tersebut. adapun perintah yang harus anda ketik :

" apt-get install ssh "

4. install squid
ditahap ini anda harus penuh ketelitian dan kesabaran yang tinggi. karena di tahap ini kita harus menginstall dan mengedit squid pada server debian anda secara bertahap. sekarang kita coba install squid nya terlebih dahulu, adapun perintahnya :

" apt-get install squid "

setelah anda selesai melakukan install squid, sekarang anda coba meng-copy squid baru dari komputer lain dengan menggunakan Winscp pada komputer yang mau meremote server anda tersebut. dengan memberikan ip lokal 192.168.1.2 dan gateway 192.168.1.1 pada komputer anda, coba anda jalanka winscp dengan login melalui ip lokal 192.168.1.1 user dan password sesuai dengan server debian anda. sebelumnya anda harus copy script berikut di notepad pada komputer anda dengan memberi nama squid.conf :

http_port 8080 transparent

icp_port 0

hierarchy_stoplist cgi-bin ?

cache_effective_user squid

cache_effective_group squid

acl QUERY urlpath_regex cgi \?

no_cache deny QUERY

dns_nameservers 124.195.17.45

hosts_file /etc/hosts

cache_mem 8 MB

cache_swap_low 98

cache_swap_high 99

cache_effective_user proxy

cache_effective_group proxy

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_dir aufs /cache1/ 20000 8 256

cache_dir aufs /cache2/ 20000 8 256

cache_dir aufs /cache3/ 20000 8 256

#cache_dir aufs /cache4/ 3000 8 256

#cache_dir aufs /cache5/ 3000 8 256

cache_store_log none

#mime_table /etc/squid/mime.conf

logfile_rotate 360

emulate_httpd_log on

negative_ttl 1 minutes

refresh_pattern \.(gif|jpg|jpeg)$ 600 80% 86400

refresh_pattern \.(xbm|xpm|ico|tiff)$ 600 80% 86400

refresh_pattern \.(au|snd|wav|ra|mid)$ 600 80% 86400

refresh_pattern \.(qt|mov|avi|mpeg|3gp)$ 600 80% 86400

refresh_pattern \.(iv|wrl|vrml)$ 600 80% 86400

refresh_pattern \.(Z|gz)$ 600 80% 86400

refresh_pattern \.(hqx|bin)$ 600 80% 86400

refresh_pattern \.(tar|zip|rar)$ 600 80% 86400

refresh_pattern ^http:// 30 50% 86400

refresh_pattern ^ftp:// 30 50% 86400

maximum_object_size 5120 KB

minimum_object_size 1 KB

quick_abort_min 0

quick_abort_max 0

quick_abort_pct 98

shutdown_lifetime 10 seconds

memory_pools off

visible_hostname core.badjingan.net

cache_mgr dokter.error@gmail.com

acl manager proto cache_object

acl Lokal-1 src 192.168.1.0/255.255.255.240

acl all src 0.0.0.0/0.0.0.0

acl localhost src 127.0.0.1/255.255.255.255

acl ssl_port port 443 563

acl safe_port port 80 21 443 563 70 210 1025-65535

acl CONNECT method CONNECT

acl PURGE method PURGE

http_access allow Lokal-1

http_access allow localhost

http_access allow manager localhost

icp_access allow all

miss_access allow all

http_access deny manager

http_access deny !safe_port

http_access deny CONNECT !ssl_port

http_access deny all

http_access deny PURGE !localhost

tcp_outgoing_address 192.168.1.1 Lokal-1

tcp_outgoing_address 10.10.20.2

server_persistent_connections off



jangan lupa melakukan pengeditan pada cache dan ip lokal anda. setelah itu save ( Ctrl+x ) Enter

setelah itu anda harus melakukan beberapa langkah untuk menjalankan squid tersebut, adapun langkah-langkahnya sbb :
- ketik script pada directory #debian
" chown -R proxy.proxy /cache1 /cache2 /cache3 "

- lalu coba anda jalankan squid anda dengan mengetik
" squid -z "
bila tidak ada pesan error, berarti configurasi squid anda sudah benar.


5. NAT ip

setelah anda melakukan semua tahapan-tahapan diatas, maka tahap terakhir yang harus anda lakukan adalah nat ip lokal dan internet anda. adapun perintah yang harus anda lakukan adalah sbb:

- coba anda masuk ke directory lokal anda dengan mengetikan perintah

"nano /etc/rc.lokal"

lalu coba anda abaikan semua yang ada di directory tersebut dengan memberi tanda " # " pada awal kalimatnya. dan coba mengetik manual pada directory tersebut dengan script sbb :

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080
exit 0

setelah itu save ( Ctrl+x ) Enter

lalu anda coba ping server dan DNS anda dari komputer lokal anda, lalu coba browsing juga. maka server sederhana anda berbasis linux Debian telah berhasil dan selesai dengan selamat heheheheh...Good Luck :D

--------------------------------------------------------------------------------

Slave DNS pada Debian

settingan ini digunakan dlm sistem sehingga penulisan di ns1 secara otomatis akan dtransfer ke ns2

ns1 pd named.conf.local d tambah settingan lg ---> lihat aj
include "/etc/bind/rndc.key";

controls {
inet 127.0.0.1 port 953
allow {
127.0.0.1;
} keys { "rndc-key"; };
};



ns1 dan ns2 pada named.conf.options --> liat aj
allow-recursion {
1.1.1.0/24;
1.1.1.0/24;
127.0.0.1;


ns1 dan ns2 mode master d ganti 775 --> chmod -R 755 master
ns1:/etc/bind/zones# chmod -R 775 /etc/bind/zones/master/

Load Balancing Mikrotik

Topologi

Menggunakan 3 etrernet card

ether1 ==> wireless
ether2 ==> speedy
ethet3 ==> Lan

mikrotik command:
/ip address add address 202.152.74.1/32 interface ether1
/ip address add address 192.168.1.2/32 interface ether2
/ip address add address 192.168.10.1/24 interface ether3

Membagi Ip menjadi 2 Group

add chain=prerouting action=mark-connection src-address 192.168.10.0/25 new-routing-mark= Group-A
add chain=prerouting action=mark-connection src-address 192.168.10.128/25 new-routing-mark=Group-B

Default gw masing-masing Group

Group-A=192.168.10.0/25 default gw 192.168.1.1

Group-B=192.168.10.128/25 default gw 202.152.74.128

mikrotik command:

/ip route add gateway=192.168.1.1 routing-mark=Group-A
/ip route add gateway=202.152.74.128 routing-mark=Group-B

Nat ip local

192.168.10.0/24 ==>masquerade

mikrotik command:
/ip firewall nat add chain=srcnat src-address 192.168.10.0/24 action=masquerade

Reset Senao

Di beberapa tempat yang sempat saya kerjakan koneksi wireless point to point maupun point to multipoint, saya lebih banyak menggunakan perangkat senao, dengan pertimbangan daya pancar yang kuat, dan harga yang “murah” dibandingkan dengan perangkat semacam SmartBridge atau Motorola (tapi tentu saja kelasnya masih diatas Senao). Namun jika cukup dengan Senao mengapa harus beli yang mahal ? :)

senao-noc1-3220

Perangkat Senao yang udah terpasang meski kasusnya hanya di satu tempat, kadang butuh di reset karena radionya macet (bug?). Proses reset juga gak bisa dilakukan lewat WEB/GUI karena gak bisa diakses dari komputer lain, jadi terpaksa deh di reset secara hardware. Tapi tunggu dulu ternyata di perangkat tersebut gak ada tombol reset seperti yang biasa dijumpai pada kebanyakan perangkat wireless indoor. Setelah googling .. ternyata harus menggunakan kabel serial RS232 (null modem).

Yang perlu disiapkan adalah kabel serial RS232 9 pin (DB9) dengan konektor female dikedua ujungnya. Meski biasanya bisa ditemukan di toko-toko komputer, biasanya yang ada bukan kabel null modem, melainkan kabel serial biasa dengan konektor F/M (Satu Female dan di ujung lainnya menggunakan konektor Male). Jika Anda tidak bisa menemukan kabel null modem, diakali aja… Gunakan 2 buah kabel serial tersebut, kemudian dipotong lalu sambung kembali sehinggga membentuk konektor Female dikedua sisinya. Yang perlu diperhatikan adalah hubungan antar pin dibuat sesuai dengan hubungan untuk kabel null modem seperti berikut :

db9 null part

Keterangan lengkap mengenai Null Modem ini bisa di baca di sini

Setelah kabel Null Modem siap, selanjutnya ikuti saja langkah-langkah berikut :noc3220 p1

Buka terlebih dahulu penutup konektor serial pada radio senao yang terletak dibagian bawah dekat port RJ 45. ( lihat gambar ).

1.
Hubungkan kabel serial ke port com pada komputer/laptop.
2.
Jalankan aplikasi Hyperterminal (ada dibagian accessories-communication). Klik Start kemudian pilih Programs -> Accessories -> Communications -> HyperTerminal.
3.
Berikan nama koneksi apa saja, misalnya Senao 3220. Kemudian pilih koneksi COM1 (atau COM2 tergantung port di komputer).
4.
Setting HyperTerminal baudrate “38400?, data bits “8?, parity “none”, stop bits “1?, flow control “None”. Kemudian tekan “OK”.
5.
Matikan power pada POE selama kurang lebih 5 detik kemudian On-kan kembali.
6. Tunggu sampai prompt # muncul pada layar HyperTerminal.
7. Ketik “flash reset”, Tekan enter.
8. Ketik “reboot”, tekan enter. Perangkat Senao akan reboot dan semua setting akan dikembalikan seperti semula.
9. Jika tidak terdapat kerusakan, Anda bisa mengakses kembali melalui WEB dengan alamat IP default : 192.168.1.1