Repo Local Untuk Debian Lenny, Ubuntu Jaunty dan Karmic

Setelah dua hari berusaha untuk membuat sebuah repository buant linux berbasis debian maka saya dan teman-teman ICT Center Rembang
bagi teman-teman jardiknas dan lain-lainnya yang ingin menggunakan repo ini silah ganti sources.list nya dengan list dibawah ini
untuk debian lenny (5.03)

deb http://tkjrbg.co.cc/debian/lenny/repo1 lenny main contrib
deb http://tkjrbg.co.cc/debian/lenny/repo2 lenny main contrib
deb http://tkjrbg.co.cc/debian/lenny/repo3 lenny main contrib
deb http://tkjrbg.co.cc/debian/lenny/repo4 lenny main contrib
deb http://tkjrbg.co.cc/debian/lenny/repo5 lenny main contrib


untuk ubuntu jaunty (9.04)

deb http://tkjrbg.co.cc/ubuntu/jaunty/repo1 jaunty main restricted
deb http://tkjrbg.co.cc/ubuntu/jaunty/repo2 jaunty main multiverse restricted
deb http://tkjrbg.co.cc/ubuntu/jaunty/repo3 jaunty universe
deb http://tkjrbg.co.cc/ubuntu/jaunty/repo4 jaunty universe
deb http://tkjrbg.co.cc/ubuntu/jaunty/repo5 jaunty universe
deb http://tkjrbg.co.cc/ubuntu/jaunty/repo6 jaunty universe


untuk ubuntu karmic koala (9.10)

deb http://tkjrbg.co.cc/ubuntu/karmic/repo1 karmic main restricted
deb http://tkjrbg.co.cc/ubuntu/karmic/repo2 karmic main multiverse restricted
deb http://tkjrbg.co.cc/ubuntu/karmic/repo3 karmic universe
deb http://tkjrbg.co.cc/ubuntu/karmic/repo4 karmic universe
deb http://tkjrbg.co.cc/ubuntu/karmic/repo5 karmic universe
deb http://tkjrbg.co.cc/ubuntu/karmic/repo6 karmic universe
deb http://tkjrbg.co.cc/ubuntu/karmic/repo7 karmic universe



semoga aja dapat membantu, kalau mau lebih cepet bisa datang langsung ke ict center rembang

Logo buat TKJ Rembang


tolong kasih komentarnya kekurangannya...


Hasil modif ubuntu karmic koala di laptop BYON

Setelah berhasil install ubuntu karmic kaola di byon dengan sukses walaupun vganya ga support 3d. kemudian iseng-iseng cari artikel-artikel kemudian di coba hasilnya dektops laptop jadi mirip kayak miliknya mic******of. silahkan lihat dulu dektopnya


yang dibawah ini kayak MAC OS

untuk tool-toolnya nanti aku uploadkan deh kalau sempet... bagi yang di rembang silahkan datang aja nanti tak oprekan..


Ubuntu 9.10 Karmic Koala di BYON M31W

kemarin nyobain ubuntu dengan virtual box, untuk melihat performance dari ubuntu tersebut. Setelah mencoba dan ingin mencoba langsung di laptop ku yang BYON M31W yang VGA nya SIS Mirage 3, untuk laptop ini dari dulu pasti sulit sekali untuk di install linux. akan tetapi untuk ubuntu 9.10 udah langsung bisa diterapkan dan tidak pakai script noapic, nolapic, acpi=off karena acpi udah dapat dikenali oleh ubuntu 9.10 sehingga langsung bisa di terapkan. langsung deh aku aku install laptopku dengan dengan ubuntu 9.10. setelah terinstall ternyata masalah muncul lagi yaitu driver vga sisnya tidak di support oleh ubuntu hanya dapat 800 x 600, dan aku terapkan driver ubuntu versi yang terdahulu ternyata masih ga bisa, kemudian mau aku rubah dengan script yang ada di /etc/X11/xorg.conf ternyata filenya tidak ada aku coba tulis sendiri kemudian aku restrat eeee mala ga bisa masuk ke mode grafis, kemudian layar berkedip-kedip. akhirnya aku hapus lagi file xorg.conf nya. aku restart dan akhirnya bisa masuk ke mode grafis lagi.
akhirnya aku cari driver vga untuk sis mirage yang di google dan aku menemukan driver ini silahkan di download di sini n akhirnya layar jadi penuh 1280 x 800


Nyobain Ubuntu 9.10 Karmic Koala

Di awal bulan Nopember akhirnya aku sudah selesai donwload ubuntu 9.10. langsung aja aku coba dengan virtual box. dan emang hasilnya bagus banget. bagi yang mau ngocy CD bisa langsung datang aja ke tempatku.


Hack Deefreze versi 6

bagi temen-temen yang mau membuka password deefreeze versi 6 silahkan gunakan software ini, caranya jalankan software terus pilih versi DF yang kemudian di hack aja. setelah itu tekan ctrl + alt + shift + F6 kemudian masuk de DF tanpa password. password menjadi default (alias kosong). software klik disini


Repo Local debian di ruang server 3 SMK 1 Rembang

ketik pada terminal dengan sebagai root
cp /etc/apt/sources.list /home/
gedit /etc/apt/sources.list

hapus semua yang ada di gantikan dengan dibawah ini

deb http://serverict.edu/repo/1 lenny main contrib
deb http://serverict.edu/repo/2 lenny main contrib
deb http://serverict.edu/repo/3 lenny main contrib
deb http://serverict.edu/repo/4 lenny main contrib
deb http://serverict.edu/repo/5 lenny main contrib
deb http://serverict.edu/repo/up lenny main contrib

kemudian setelah itu kamu ketikan
apt-get updates


Proxy Server di debian lenny atau ubuntu jaunty

Sudah 2 minggu cari 2 artikel tentang membuat proxy server di debian atau ubuntu, akhirnya aku coba dengan berbagai sumber, berikut langkah-langkahnya:
1. Install squid
#apt-get install squid

2. Stop service
#/etc/init.d/squid stop

3. Konfigurasi squid
#nano /etc/squid/squid.conf

cari kata http_port 3128 kemudian tambahkan kata transparent
http_port 3128 transparent

cari kata acl CONNECT kemudian dibawahnya di tambahkan

acl situs dstdomain "/etc/squid/situs"
acl kunci url_regex -i "/etc/squid/kunci"
no_cache deny situs
no_cache deny kunci
http_access deny situs
http_access deny kunci


cari kata INSERT YOUR kemudian di bawahnya di tambahkan

acl jaringan src ip_network_kamu/netmask_kamu
http_access allow jaringan

cari kata http_access deny all (ada 2 jadi cari semua dan beri tanda # di depannya)
cari cache_mem 8 MB hilangkan tanda # ganti angka 8 menjadi 1/4 dari RAM
cari cache_dir ufs /var/spool/squid kemudian buat menjadi
cache_dir ufs /var/spool/squid 10000 16 256

cari cache_swap_low hilangkan tanda # pada low dan high
cari cache_log /etc/log/squid/cache.log hilangkan tanda #
cari cache_store /etc/log/squid/store.log hilangkan tanda #
cari ipcache_size hilangkan tanda # pada size, low dan high

simpan konfigurasi
4. membuat daftar situs yang akan di blokir
#nano /etc/squid/situs

misalkan yang mau diblokir facebook maka di tuliskan www.facebook.com
5. membuat daftar kata kunci yang akan di blokir
#nano /etc/squid/kunci

misalkan yang mau diblokir mengenai sex maka di tuliskan sex
6. membuat directori swap squid
#squid -z

7. menjalankan squid
#/etc/init.d/squid start

8. membuat iptables
#iptables -t nat -A PREROUTING -s ip_network_kamu/netmask_kamu -p tcp --dport 80 -j REDIRECT --to-ports 3128

9. biar ga hilang waktu restart maka kita simpan di rc.local
#nano /etc/rc.local

di atas exit 0 kita tambahkan
iptables -t nat -A PREROUTING -s ip_network_kamu/netmask_kamu -p tcp --dport 80 -j REDIRECT --to-ports 3128

10. restart squid
#/etc/init.d/squid restart

11. reconfigure squid
#squid -k reconfigure

12. restart service networking
#/etc/init.d/networking restart


selesai sudah konfigurasi squid (ditulis pukul 01.00 WIB, 18 Oktober 2009)
silahkan di coba di client

semoga bermanfaat
chung chin

Cerita IP Forward dan NAT dari Kamas Muhammad

Pada suatu hari, bertanyalah seorang teman kepada saya: "Gimana cara biar jaringan lokal kantorku bisa ngontak
jaringan ip publik di kantor tanpa NAT?" Ya, memang seringkali susah mempelajari mekanisme routing ketika sebelum
belajar sudah ngerti bahwa ada IP Privat dan ada IP Publik.



Di sini saya mencoba untuk menjelaskan dengan cara yang sedikit berbeda dengan penjelasan-penjelasan yang sudah ada
di internet, yang jumlahnya sudah jutaan halaman itu. Semoga saja dengan cara ini, hubungan awal dan perbedaan antara IP Forwarding dengan
Source NAT bisa lebih mudah dimengerti. Tentu saja, tulisan ini ditujukan untuk semua pemula yang ingin belajar tentang topik ini.



Harap diingat bahwa dalam cerita ini saya membuang beberapa detil yang seharusnya juga ada dalam proses routing. Detil itu saya hilangkan
untuk mempermudah pemahaman hal-hal mendasar dalam operasi ini. Jangan pernah menerima cerita ini sebagai
informasi utuh
. Lengkapi dengan cerita/referensi lain yang membahas detilnya lebih dalam!



Suatu Desa dan Seorang Anak



Ilustrasi Kampungnya



Inilah peta kecamatan OtotKwat yang terletak di salah satu distrik di Negeri Kayangan.




Pada Suatu Hari...



Hiduplah keluarga bahagia di Desa Suka Nyapu. Keluarga itu memiliki seorang anak yang masih balita.
Mereka menjalani kehidupan seperti biasa, hingga pada suatu hari sang ibu sakit flu. Karena pileknya tak
tertahankan dan bapak sedang nun jauh di sana bekerja, maka ibu terpaksa minta tolong pada anaknya untuk membeli obat di toko
obat Bu Jamilah yang terletak di Desa Suka Ngelap, walaupun sang anak sebenarnya tidak tahu jalan. Yang diketahui
oleh anaknya hanyalah kalau mau keluar dari Desa Suka Nyapu, jalannya ya hanya itu saja
.



Ibu berpesan kepada anaknya: "Nak, tolong belikan obat UsirPhileg di toko Bu Jamilah. Naik sepeda saja,
nanti kalau sudah ketemu Pak Hasan tanyakan jalan ke Desa Suka Ngelap." Dan berangkatlah sang anak
naik sepeda kecilnya. Klutak klutek klutik, akhirnya sang anak bertemu dengan Pak Hasan. Berkatalah
sang anak kepada Pak Hasan: "Pak, saya mau ke toko obat Bu Jamilah di Desa Suka Ngelap. Saya lewat mana ya pak?" Dan
Pak Hasan pun menjawab: "Belok kanan nak, nanti kamu akan sampai ke Desa Suka Ngelap."



Sesampainya di Desa Suka Ngelap di toko Bu Jamilah, anak itu kemudian membeli obat, dan menuju kembali pulang.
Bertanyalah sang anak kepada Bu Jamilah: "Bu, kembali ke Desa Suka Nyapu lewat mana?" Dan
dia memperoleh jawaban: "Lewat jalan yang tadi saja Nak, kemudian nanti kalau sudah ketemu Pak Hasan tanyakan saja
jalan menuju Desa Suka Nyapu."


Klutak klutek klutik, bertemulah anak itu dengan Pak Hasan lagi. Kembali dia bertanya: "Pak, saya mau ke
Desa Suka Nyapu lewat mana ya?" Jawaban yang diperoleh: "Belok kiri nak, nanti kau akan sampai kembali ke
desamu."
Akhirnya, dengan arahan Pak Hasan, sampailah sang anak ke desanya dengan membawa obat flu untuk ibunya
yang sedang sakit.



Pada Hari Yang Lain...



"Ibu, aku ingin mandi, tapi sabunnya habis.. hiks.. hiks.." Sang ibu pun berkata kepada anaknya: "Ya beli dong nak, di Desa
Suka Mandi
pasti ada yang jual sabun." Tanpa basa-basi, sang anak langsung berangkat menuju Desa Suka Mandi. Dia tak
merasa perlu bertanya kepada ibunya, karena toh jalan keluar dari desanya ya hanya itu, dan nanti dia bisa bertanya
kepada Pak Hasan
.



Sesampainya di tempat Pak Hasan, dia bertanya: "Pak, ke Desa Suka Mandi lewat mana ya?" Dan
Pak Hasan
pun menjawab: "Bapak tidak tahu, Nak, jadi kamu lurus saja dan nanti tanyakan ke Pak
Amir
."
Berangkatlah dia mengikuti petunjuk Pak Hasan. Tak lama kemudian, sampailah dia ke tempat Pak Amir.
Lagi-lagi dia menanyakan pertanyaan yang sebelumnya telah dia tanyakan ke Pak Hasan.Tapi di luar dugaan, Pak Amir

berkata: "Jangan ke sana, Nak, pulanglah. Di sana sedang ada kerusuhan!" Tanpa patah semangat,
sang anak terus-menerus mendesak agar boleh meneruskan perjalanan ke Desa Suka Mandi. Karena ternyata Pak Amir tak
bergeming, maka pulanglah sang anak dengan kecewa. Dasar balita ndak tau jalan, ketika bertemu Pak Hasan,
bertanya lagi dia tentang jalan pulangnya. Berkat petunjuk Pak Hasan, akhirnya dia sampai ke desanya dan kembali
ke rumah.



Selang beberapa hari, kembali sang anak melanjutkan usahanya menuju Desa Suka Mandi. Dengan melalui jalan yang sama seperti
beberapa hari sebelumnya, sampailah anak itu ke tempat Pak Amir. Karena keadaan sudah aman, berkatalah Pak Amir
kepada anak itu: "Jalan terus saja nak, nanti bertanyalah kepada Pak Badri." Dengan riang gembira,
berjalanlah dia sesuai dengan arahan Pak Amir. Sesampainya di tempat Pak Badri, kembali dia menanyakan jalan ke

Desa Suka Mandi. Dijawab oleh Pak Badri: "Belok Kanan, ikuti jalan!"
Cihuyyy, dia berjalan dan akhirnya sampailah ke toko sabun itu.



Karena mendapati bahwa pembelinya balita, bertanyalah si penjual: "Rumahmu di mana, Nak?" Sang anak menjawab: "Rumah saya ada di
Desa Suka Nyapu." Penjualnya kemudian berkata: "Aku tak tahu di mana itu, Nak. Berangkatlah
ke Pak Badri, kemudian tanyakan jalan menuju arah pulangmu."
Sambil tersenyum, berangkatlah anak itu. Sesampainya di
tempat Pak Badri, dia menanyakan jalan yang mana yang menuju ke arah desanya. Dia memberitahukan bahwa desanya adalah Desa
Suka Nyapu
. Di luar dugaan, Pak Badri menjawab:

"Aduh Nak, aku tak tahu ke mana arah pulangmu. Aku cuma tahu jalan ke Desa Suka Mandi, Desa Suka Cuci, Desa
Suka Ngepel,
dan Desa Suka Setrika. Ke 2 desa yang terakhir melewati Pos Pak Amir. Selebihnya aku tak tahu."

Menangislah sang anak, dan karena dia tak bisa pulang, maka dia menjalani sisa hidupnya sampai mati di Pos Pak Badri.



Sayang sekali hidupnya harus berakhir seperti itu. Kejadian itu tidak perlu terjadi andaikata sebelumnya Pak Amir berkata:

"Nak, sepulangmu nanti katakan kepada Pak Badri bahwa kau berasal dari Pos Pak
Amir
,"
karena Pak Badri memang tahu ke mana jalan yang harus ditempuh kalau anak itu akan kembali menuju
Pos Pak Amir, tapi selebihnya tidak. Setelah sampai di tempat Pak Amir, anak itu bisa diteruskan menuju
tujuan yang sesungguhnya, yaitu rumahnya di Desa Suka Nyapu.


Computer Network Version of Previous Story



Dalam dunia jaringan, padanannya kira-kira begini:



  • Anak balita yang berjalan-jalan adalah IP Packet.

  • Pak Hasan, Pak Amir, dan Pak Badri pada perangkat jaringan berperan sebagai ROUTER.


  • Desa-desa di kecamatan OtotKwat pada jaringan merupakan suatu Network Segment.

  • Warna biru menunjukkan proses routing. Tentu saja, pada proses ini IP Forwarding aktif.

  • Warna hijau menunjukkan kondisi di mana router tidak melakukan IP Forwarding. Dalam
    dunia Linux, kondisi ini berlaku ketika /proc/sys/net/ipv4/ip_forward bernilai 0.


  • Warna merah merupakan ilustrasi peristiwa timeout.

  • Warna oranye merupakan ilustrasi peristiwa destination unreachable.

  • Warna hijau aneh merupakan ilustrasi peristiwa source NAT.




Skema Jaringan



Pada skema di bawah ini, kotak kuning adalah internet, sedangkan warna hijau (atau biru? terserah) muda adalah jaringan suatu gedung.





Cara Kerja



Menurut cerita sebelumnya, dari Desa Suka Nyapu sang anak menuju ke Desa Suka Ngelap. Pada versi ini, berarti ada paket dari network 10.1.21.0/24
ke network 222.111.212.248/29. Kalau memperhatikan cerita sebelumnya, tidak ada operasi Source NAT di situ. Kok bisa sampai? Padahal asalnya adalah
IP Privat, dan tujuannya adalah IP Publik! Tak masalah. Berapa pun IPnya, asal router punya info tentang itu ya ndak masalah. Yang penting
adalah router punya info untuk paket itu untuk kembali. Kasus yang persis sama berlaku untuk cerita kalau ada paket dari
172.16.92.16/28 ke 222.111.212.248/29, atau untuk cerita 10.1.21.0/24 ke 202.212.222.128/28.




Pada cerita sebelumnya pun tergambarkan bahwa paket dari 10.1.21.0/24 ke 9.10.11.0/23 tanpa
operasi NAT ya bisa sampai kok. Perkaranya adalah, siapa pun yang dihubungi di 9.10.11.0/23 tidak dapat mengirim jawaban kembali ke 10.1.21.0/24.
Kenapa? Karena Pak Badri tidak tahu di mana itu desa 10.1.21.0/24. Kenapa ndak tau? Karena tidak ada dalam routing table-nya.
Alasan lain yang sedikit lebih masuk akal: Silakan baca RFC1918 yang menyatakan bahwa
10.0.0.0/8, 172.16.0.0/12, dan 192.168.0.0/16 tidak boleh routeable di internet. Kenapa angkanya itu? Ya suka-suka yang bikin keputusan.
Tugas kita adalah menikmati keputusan, bukan ikut memikirkan keputusannya.



Sebentar, bukannya paket ndak bisa nyampe karena IP privat diblok? Pada dasarnya tidak.
Ngapain diblok? Tidak diblok pun tetap tidak bisa balik lha ndak ada info route-nya. Kalau mau diblok ya boleh-boleh saja,
itung-itung ngurangi traffic yang ndak perlu.



Nah setelah ada operasi S-NAT pada paket yang menuju ke 9.10.11.0/23, maka harusnya paket bisa balik ke tujuan, karena Pak Badri akan melihat
bahwa paket itu berasal dari jaringan Pak Amir. Setelah dikembalikan ke Pak Amir, maka Pak Amir bisa mengembalikan paket data tersebut ke
jaringan asalnya. Kalau tidak di-NAT bagaimana? Ya sesuai cerita di atas: Tewas.



Kesimpulan



IP Forwarding merupakan peristiwa di mana router meneruskan paket yang diterima pada suatu interface ke interface yang lain sesuai tujuan paket.


Source NAT merupakan peristiwa di mana router mengubah paket, menggantikan SourceAddress paket tersebut menjadi suatu alamat tertentu.


Bisakah IP Forwarding bekerja tanpa S-NAT? BISA. Bisakah S-NAT bekerja tanpa IP Forwarding? Bisa aja sih, tinggal set iptables kalo anda
pake Linux, atau perintah NAT lain yang sesuai untuk router anda. Tapi ya ngapain???




5 Langkah membuat router di debian 5 (lenny)

Untuk kali ini saya akan menuliskan gimana membuat router secara sederhana di debian 5 (lenny)
kita definisikan IP yang ada digunakan

Ip untuk koneksi internet kita taruh di eth0
IP : 199.199.199.xxx/24 xxx(disi no kelompok)
Gateway : 199.199.199.254

Ip untuk local ditaruh di eth1
IP : 192.168.212.254/24

dari definisi diatas dikonfigurasikan kedalam sistem debian dengan langkah-langkah sebagai berikut:

1. Memasukkan IP di interfaces (eth)
dengan perintah
#gedit /etc/network/interfaces

kemudian edit filenya menjadi sebagai berikut:

auto eth0
iface eth0 inet static
address 199.199.199.xxx
netmask 255.255.255.0
network 199.199.199.0
broadcast 199.199.199.255
gateway 199.199.199.254

auto eth1
iface eth1 inet static
address 192.168.212.254
netmask 255.255.255.0
network 192.168.212.0
broadcast 192.168.212.255


2. kemudian kita edit file rc.local
(digunakan untuk melukan routing walaupun di restart)
dengan perintah
#gedit /etc/rc.local

sebelum baris exit 0 ditambahkan

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

3. Aktifkan ip forward
dengan perintah
#gedit /etc/sysctl.conf

cari kata #net.ipv4.ip_forward=1
kemudian hilangkan tanda #
4. Restart network
perintah
#/etc/init.d/networking restart

5. reboot (restart) komputer
kalau ga mau komputernya di restart ketikan aja

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

kemudian ulangi langkah ke 4

cara diatas kalau belum bisa untuk internetan maka perlu di masukkan DNS Server
caranya
edit file resolv.conf dengan perintah #gedit /etc/resolv.conf
edit atau tambahkan di paling bawah nameserver xxx.xxx.xxx.xxx
xxx diisi ip DNS server

untuk pengisian client adalah
IP : 192.168.212.1 - 253 /24
Gateway : 192.168.212.254

sekian dulu


Chung Chin

Install Debian 5.03 (lenny) di PC Zyrex

Akhirnya PC Zyrex yang ada di SMK N 1 Rembang dapat di install Debian setelah mencoba debian 3 sampai 4 ga bisa-bisa. nantinya PC ini digunakan latihan mensetting webserver, DNS server, mail server, proxy server, SSH, FTP yang merupakan materi pokok untuk kelas 3 SMK program keahlian TKJ. semoga aja adanya debian lenny ini bisa digunakan dengan baik di sekolah kami.


DNS Server Ubuntu 9.04 dengan Bind9 mudah dan cepat

Kalau dulu saya udah posting gimana membuat DNS Server dengan bind kemudian settingannya dengan pakai menuliskan semua jadi akan membuat anda sulit untuk menghafal. untuk kali ini akan aku permudah cara setting DNS Server yang kemarin sehingga nantinya akan mempermudah dalam mensetting DNS Server. langsung aja silahkan anda ikuti langkah selanjutnya:

1. Install Bind9

#apt-get install bind9

2. copy db.local menjadi db.domainanda

#cp /etc/bind/db.local /etc/bind/db.xwaja.com

3. edit db.xwaja.com

#gedit /etc/bind.db.xwaja.com

kemudian ganti kata-kata localhost menjadi xwaja.com
kemudian kalau ada ip adress 127.0.0.1 diganti menjadi ipaddress anda
jangan lupa angka serialnya diganti ya (ditambahi)
4. copy db.127 menjadi db.angka

#cp /etc/bind/db.127 /etc/bind/db.199

angka di db.angka boleh apa aja selain 1, 0, 127
5. edit db.199

#gedit /etc/bind.db.199

kemudian ganti kata-kata localhost menjadi xwaja.com
jangan lupa angka serialnya diganti ya (ditambahi)
6. edit named.conf

#gedit /etc/bind/named.conf

anda tambahkan di paling akhir dengan

zone “xwaja.com” {
type master;
file “/etc/bind/db.xwaja.com”;
};
zone “0.168.192.in-addr.arpa” {
type master;
file “/etc/bind/db.199”;
};

kalau males nulis anda bisa copikan kata2 dari atasnya
kemudian baru di ganti.
7. Edit resolv.conf

#gedit /etc/resolv.conf

anda tambahkan berikut

nameserver 192.168.0.199
search xwaja.com
domain xwaja.com

ip 192.168.0.199 (adalah sesuaikan dengan ipanda)

8. restart bind

#/etc/init.d/bind9 restart

9. cek dengan dig xwaja.com
kalau ada answer bernilai 1 dan nilainya itu ip anda berarti settingan bind udah selesai

sekian dulu setting DNS server dengan sederhana
mungkin ga butuh wantu 5 menit

salam

chung_chin

RPP dan Silabus MYOB untuk SMK

ini aku kasih link untuk RPP dan Silabus MYOB untuk mengajar di SMK, semoga bermanfaat.
silahkan klik link di bawah
RPP
Silabus



DNS Server dengan Bind9 di Ubuntu 9.04

Ini hasil aku membuat DNS Server di bantu oleh faizal reza
pertama install dulu ubuntu
kemudian masuk ke terminal sebagai root
xwaja@xwaja:~$ sudo su

[sudo] password for xwaja:
kita install dulu bind9
root@xwaja:/home/xwaja# apt-get install bind9

setelah terinstall kita
edit /etc/bind/named.conf.local
root@xwaja:/home/xwaja# gedit /etc/bind/named.conf.local

kemudian kita tambahkan di paling bawah sebagai berikut:

zone "xwaja.com" {

type master;

file "/etc/bind/zones/xwaja.com.db";

};



zone "100.100.100.in-addr.arpa" {

type master;

file "/etc/bind/zones/rev.100.in-addr.arpa";

};

kemudian kita edit /etc/bind/named.conf.options
root@xwaja:/home/xwaja# gedit /etc/bind/named.conf.options

kemudian kita tambahkan
forwarders {

202.134.0.155;

};
ip diantas ip yang diberikan oleh ISP
kemudian kita buat direktory /etc/bind/zones
root@xwaja:/home/xwaja# mkdir /etc/bind/zones/

kemudian kita buat file /etc/bind/zones/xwaja.com.db

root@xwaja:/home/xwaja# gedit /etc/bind/zones/xwaja.com.db

kita tuliskan sebagai berikut
$TTL 86400

@ IN SOA xwaja.com. admin.xwaja.com. (

20091123 ;Serial

604800 ;Refresh

86400 ;Retry

2419200 ;Expire

604800 ) ; Negative Cache TTL



@ IN NS xwaja.com.

@ IN A 100.100.100.99

www IN A 100.100.100.99

untuk serial kalau kita mengedit maka ditambah 1 angka aja
langkah selanjutnya buat file /etc/bind/zones/rev.100.in-addr.arpa

root@xwaja:/home/xwaja# gedit /etc/bind/zones/rev.100.in-addr.arpa

kita tuliskan sebagai berikut
$TTL 86400



@ IN SOA xwaja.com. admin.xwaja.com. (

20081123 ;Serial

604800 ;Refresh

86400 ;Retry

2419200 ;Expire

604800) ; Negative Cache TTL

;

IN NS xwaja.com.

IN PTR www.xwaja.com.


yang terakhir kita edit gedit /etc/resolv.conf

root@xwaja:/home/xwaja# gedit /etc/resolv.conf

kita ubah menjadi
search xwaja.com

domain xwaja.com

nameserver 127.0.0.1
kemudian kita restart bind
root@xwaja:/home/xwaja# /etc/init.d/bind9 restart

kemudian untuk melihat keberhasilan silahkan anda gunakan dig
root@xwaja:/home/xwaja# dig www.xwaja.com



; <<>> DiG 9.5.1-P2 <<>> www.xwaja.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1042

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1



;; QUESTION SECTION:

;www.xwaja.com. IN A



;; ANSWER SECTION:

www.xwaja.com. 86400 IN A 100.100.100.99



;; AUTHORITY SECTION:

xwaja.com. 86400 IN NS xwaja.com.



;; ADDITIONAL SECTION:

xwaja.com. 86400 IN A 100.100.100.99



;; Query time: 1 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Tue Sep 15 15:44:21 2009

;; MSG SIZE rcvd: 77


lihat hasilnya
kalau answer hasilnya 0 maka DNS server anda belum berhasil

kemudian untuk penggunaannya silahkan anda masukkan ip yang ada DNS server sebagai DNS pada clientt. Sehingga menurut kesimpulan saya sebagai DNS server juga di gunakan sebagai server gateway dan router sehingga ipnya digunakan sebagai DNS.
Kalau di windows n belum juga berhasil membuka di web browser www.xwaja.com silahkan anda masuk ke command prompt kemudian anda ketikan ipconfig /flushdns

sekian dulu
semoga bermanfaat

chung chin
special thank to faizal reza

Script Inno Setup untuk MYSQL dan AppServ

berikut aku buatkan script agar MYSQL yang berada di Appserv dapat terinstall kemudian adanya ODBC yang ddigunakan untuk menghubungkannya.
silahkan di baca seterusnya


; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Elearning"
#define MyAppVerName "Elearning 9.8"
#define MyAppPublisher "www.xwaja.co.nr"
#define MyAppURL "http://www.xwaja.co.nr/ & http://s0dikin.blogspot.com"
#define MyAppExeName "ElearningSMP.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{EDD1BECE-1CE1-4D32-84D0-B891642904AC}
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=C:\InnoSetup\Elearning\Hasil
OutputBaseFilename=setup
ShowTasksTreeLines=yes
SetupIconFile=C:\InnoSetup\Elearning\conect.ico
Password=ELEARNING_2009
WizardImageFile=C:\InnoSetup\Elearning\setup5.bmp
WizardSmallImageFile=C:\InnoSetup\Elearning\setup4.bmp
Compression=lzma/max
SolidCompression=yes
LicenseFile=C:\InnoSetup\Elearning\Lisensi.txt
InfoBeforeFile=C:\InnoSetup\Elearning\Files\readme.txt
MinVersion=4.1.1998,4.00.1381

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "SERVER"; Description: "Untuk Server"; Types: full
Name: "CLIENT"; Description: "Untuk Client"; Types: full

[Languages]
Name: "id"; MessagesFile: "C:\InnoSetup\Elearning\Indonesian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\InnoSetup\Elearning\Files\ElearningSMP.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\BuatDatabase.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\Silver.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\Aqua.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\Black.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\APPSERV.EXE"; DestDir: "{app}"; Flags: ignoreversion; Components: SERVER
Source: "C:\InnoSetup\Elearning\Files\ODBC.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: CLIENT
Source: "C:\InnoSetup\Elearning\Files\readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\elearning.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\theme.cjstyles"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\cetak.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\pegawai.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\siswa.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\soal.cc@"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\msvbvm60.ocx"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\InnoSetup\Elearning\Files\VB6STKIT.DLL"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\COMCAT.DLL"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\stdole2.tlb"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\asycfilt.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\olepro32.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\oleaut32.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\msvbvm60.dll"; DestDir: "{sys}"; Flags: uninsneveruninstall onlyifdoesntexist
Source: "C:\InnoSetup\Elearning\Files\TABCTL32.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\MSDATGRD.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\MSCOMCT2.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\MSCOMCTL.OCX"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\Codejock.CommandBars.v12.0.1.ocx"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\Codejock.SkinFramework.v12.0.1.ocx"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace
Source: "C:\InnoSetup\Elearning\Files\arpro2.dll"; DestDir: "{sys}"; Flags: regserver sharedfile restartreplace


; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\APPSERV.EXE"; Description: "Menginstall MYSQL Server 5"
Filename: "{app}\ODBC.exe"; Description: "Menginstall MYSQL Connector ODBC 3.51"

silahkan di baca n di praktekan.

semoga bermanfaat.

salam

Chung Chin

Repository local Ubuntu 9.04 di ICT Center Rembang

ketik pada terminal dengan sebagai root
cp /etc/apt/sources.list /home/
gedit /etc/apt/sources.list

hapus semua yang ada di gantikan dengan dibawah ini

deb http://118.98.162.203/ubuntu/repo1 jaunty main restricted
deb http://118.98.162.203/ubuntu/repo2 jaunty main multiverse restricted
deb http://118.98.162.203/ubuntu/repo3 jaunty universe
deb http://118.98.162.203/ubuntu/repo4 jaunty universe
deb http://118.98.162.203/ubuntu/repo5 jaunty universe
deb http://118.98.162.203/ubuntu/repo6 jaunty universe



Create file Cab dan Expand with VB6

jika kita akan merubah file setup windows jika file themeui.dll dibuat menjadi themeui.dl_
Program ini saya buat guna menyingkat waktu dalam mengekstrak file windows yang berektensi *.dl_ , *.cp_, *.ex_ dan lain-lainnya kemudian mengembalikan file tersebut ke bentuk semula.
Kenapa kog harus di ekstrak padahal file tersebut kan sudah ada di file windows yang sudah terinstall tinggal pakai ambil aja di c:\windows\system32 kan ga repot. He..he..
Tapi kalau anda pengin membuat modifikasi file windows tersebut dari file setup pada CD windows pasti anda akan kebingungan. Sebenarnya bisa pakai command prompt yang disediakan oleh windows tapi akan memperlama anda dalam mengetik di command prompt.
Kemudian karena aku terinspirasi dengan perintah-perintah di command prompt sehingga aku membuat program ini. Mungkin aja para master akan tertawa melihat source code yang saya kirim ini maklum newbie dalam penulisan bahasa program.

File terdiri dari
frmMain (4 label, 4 commandbutton)
modMakeFolder
CommonDialog (User Control)
Langsung aja ya. Kita tuliskan codenya
Untuk frmMain.frm
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = -1&
Dim FileNama As String
Private Sub ShellAndWait(ByVal program_name As String)
Dim process_id As Long
Dim process_handle As Long

process_id = Shell(program_name, vbHide)
DoEvents
' tunggu sampai program selesai
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If
End Sub

Private Sub cmdAbout_Click()
MsgBox "Program dibuat oleh Sodikin" + Chr(13) + _
"Email : hack.chin@gmail.com" + Chr(13) + _
"Site :http://s0dikin.blogspot.com" + Chr(13) + _
"Thank for :" + Chr(13) + _
"------------------------------------------" + Chr(13) + _
"Allah SWT" + Chr(13) + _
"Bokap n Nyokap" + Chr(13) + _
"Istri Tercinta" + Chr(13) + _
"All Frinds" + Chr(13) + _
"------------------------------------------" + Chr(13) + _
"Forum : www.xcode.co.id; www.vb-bego.net", vbInformation + vbOKOnly, "About Me?"

End Sub

Private Sub cmdExit_Click()
End
End Sub

Private Sub cmdExpand_Click()
With CD
.Filter = "*.sy_, *.dl_, *.ex_, *.cp_|*.sy_;*.dl_;*.ex_;*.cp_|"
.DialogTitle = "Buka File Xwaja"
.ShowOpen
End With
txtSource.Text = CD.FileName
Label2.Caption = CD.FileTitle
txtHasil.Text = Left(CD.FileName, Len(txtSource.Text) - Len(Label2.Caption)) + "HasilExpand"
CreateDirectory txtHasil.Text, Keamanan
'buat file BAT untuk melakukan Expand
FileNama = GetSystemPath + "chungchin.bat"
Open FileNama For Output As #1
Print #1, Tab(1); "expand.exe -r " + txtSource.Text + " " + txtHasil.Text
Close #1
'Jalankan file BAT yang telah dibuat
ShellAndWait FileNama
'Hapus file BAT yang telah dibuat
Kill FileNama
MsgBox "expand file : " + txtSource.Text + Chr(13) + _
"silahkan di lihat di " + txtHasil.Text
End Sub

Private Sub cmdMakeCab_Click()
With CD
.Filter = "*.sys, *.dll, *.exe|*.sys;*.dll;*.exe|"
.DialogTitle = "Buka File BM@"
.ShowOpen
End With
txtSource.Text = CD.FileName
Label2.Caption = CD.FileTitle
Label3.Caption = Left(CD.FileName, Len(txtSource.Text) - Len(Label2.Caption)) + "HasilCab"
txtHasil.Text = Label3.Caption + "\" + Left(CD.FileTitle, Len(Label2.Caption) - 1) + "_"
CreateDirectory Label3.Caption, Keamanan
'buat file BAT untuk melakukan MakeCAB
FileNama = GetSystemPath + "chungchin.bat"
Open FileNama For Output As #1
Print #1, Tab(1); "makecab.exe " + txtSource.Text + " " + txtHasil.Text
Close #1
'Jalankan file BAT yang telah dibuat
ShellAndWait FileNama
'Hapus file BAT yang telah dibuat
Kill FileNama
MsgBox "MakeCAB file : " + txtSource.Text + Chr(13) + _
"silahkan di lihat di " + txtHasil.Text

End Sub

Kemudian anda ketikkan code ini untuk Module (modMakeFolder)
Option Explicit
Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Declare Function NdamelAnak Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Keamanan As SECURITY_ATTRIBUTES
Public Sub GaweAnakManeh(Ibu As String, Anak As String)
NdamelAnak Ibu, Anak, 0
End Sub


Public Function GetSystemPath() As String

On Error Resume Next
Dim Buffer As String * 255
Dim x As Long
x = GetSystemDirectory(Buffer, 255)
GetSystemPath = Left(Buffer, x) & "\"

End Function

Yang terakhir anda buat Usercontrol kemudian beri nama CommonDialog (sebernarnya bisa pakai comdlg.ocx yang sudah terinstall, tapi program ga akan portable karena harus menyertakan comdlg.ocx. tapi kalau kita buat sendiri maka program yang kita buat bisa di jalankan di semua komputer (tapi yang berbasis windows tentunya)
Langsung aja setelah buat UserControl langsung tuliskan code berikut:

Option Explicit
Private Declare Function GetOpenFileName Lib _
"COMDLG32.DLL" Alias "GetOpenFileNameA" _
(pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib _
"COMDLG32.DLL" Alias "GetSaveFileNameA" _
(pOpenfilename As OPENFILENAME) As Long

Private cdlg As OPENFILENAME
Private LastFileName As String

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Const OFN_ALLOWMULTISELECT = &H200
Private Const OFN_CREATEPROMPT = &H2000
Private Const OFN_ENABLEHOOK = &H20
Private Const OFN_ENABLETEMPLATE = &H40
Private Const OFN_ENABLETEMPLATEHANDLE = &H80
Private Const OFN_EXPLORER = &H80000
Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_LONGNAMES = &H200000
Private Const OFN_NOCHANGEDIR = &H8
Private Const OFN_NODEREFERENCELINKS = &H100000
Private Const OFN_NOLONGNAMES = &H40000
Private Const OFN_NONETWORKBUTTON = &H20000
Private Const OFN_NOREADONLYRETURN = &H8000
Private Const OFN_NOTESTFILECREATE = &H10000
Private Const OFN_NOVALIDATE = &H100
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_READONLY = &H1
Private Const OFN_SHAREAWARE = &H4000
Private Const OFN_SHAREFALLTHROUGH = 2
Private Const OFN_SHARENOWARN = 1
Private Const OFN_SHAREWARN = 0
Private Const OFN_SHOWHELP = &H10

Public Enum DialogFlags
ALLOWMULTISELECT = OFN_ALLOWMULTISELECT
CREATEPROMPT = OFN_CREATEPROMPT
ENABLEHOOK = OFN_ENABLEHOOK
ENABLETEMPLATE = OFN_ENABLETEMPLATE
ENABLETEMPLATEHANDLE = OFN_ENABLETEMPLATEHANDLE
EXPLORER = OFN_EXPLORER
EXTENSIONDIFFERENT = OFN_EXTENSIONDIFFERENT
FILEMUSTEXIST = OFN_FILEMUSTEXIST
HIDEREADONLY = OFN_HIDEREADONLY
LONGNAMES = OFN_LONGNAMES
NOCHANGEDIR = OFN_NOCHANGEDIR
NODEREFERENCELINKS = OFN_NODEREFERENCELINKS
NOLONGNAMES = OFN_NOLONGNAMES
NONETWORKBUTTON = OFN_NONETWORKBUTTON
NOREADONLYRETURN = OFN_NOREADONLYRETURN
NOTESTFILECREATE = OFN_NOTESTFILECREATE
NOVALIDATE = OFN_NOVALIDATE
OVERWRITEPROMPT = OFN_OVERWRITEPROMPT
PATHMUSTEXIST = OFN_PATHMUSTEXIST
ReadOnly = OFN_READONLY
SHAREAWARE = OFN_SHAREAWARE
SHAREFALLTHROUGH = OFN_SHAREFALLTHROUGH
SHARENOWARN = OFN_SHARENOWARN
SHAREWARN = OFN_SHAREWARN
ShowHelp = OFN_SHOWHELP
End Enum

Private CFm_CancelError As Boolean
Private CFm_DialogTitle As String
Private CFm_DefaultExt As String
Private CFm_FileName As String
Private CFm_FileTitle As String
Private CFm_Filter As String
Private CFm_Flags As DialogFlags
Private CFm_InitDir As String

Public Property Get CancelError() As Boolean
CancelError = CFm_CancelError
End Property

Public Property Let CancelError(PropVal As Boolean)
CFm_CancelError = PropVal
End Property

Public Property Get DialogTitle() As String
DialogTitle = CFm_DialogTitle
End Property

Public Property Let DialogTitle(PropVal As String)
CFm_DialogTitle = PropVal
End Property

Public Property Get DefaultExt() As String
DefaultExt = CFm_DefaultExt
End Property

Public Property Let DefaultExt(PropVal As String)
CFm_DefaultExt = PropVal
End Property

Public Property Get FileName() As String
FileName = CFm_FileName
End Property

Public Property Let FileName(PropVal As String)
CFm_FileName = PropVal
End Property

Public Property Get FileTitle() As String
FileTitle = CFm_FileTitle
End Property

Public Property Let FileTitle(PropVal As String)
CFm_FileTitle = PropVal
End Property

Public Property Get Filter() As String
Filter = CFm_Filter
End Property

Public Property Let Filter(PropVal As String)
CFm_Filter = PropVal
End Property

Public Property Get Flags() As DialogFlags
Flags = CFm_Flags
End Property

Public Property Let Flags(PropVal As DialogFlags)
CFm_Flags = PropVal
End Property

Public Property Get InitDir() As String
InitDir = CFm_InitDir
End Property

Public Property Let InitDir(PropVal As String)
CFm_InitDir = PropVal
End Property


Private Sub UserControl_Initialize()
UserControl.Height = 32 * 15
UserControl.Width = 32 * 15
End Sub

Private Sub UserControl_Resize()
UserControl.Height = 32 * 15
UserControl.Width = 32 * 15
End Sub

Public Sub ShowOpen()
Dim i As Integer
Dim flt As String, idir As String, trez As String
On Error Resume Next
flt = Replace(Filter, "|", Chr(0))

If Len(flt) = 0 Then flt = Replace("All Files (*.*)|*.*|", _
"|", Chr(0))
If Right(flt, 1) <> Chr(0) Then flt = flt & Chr(0)
If Len(InitDir) = 0 Then idir = FileName Else idir = InitDir

cdlg.hwndOwner = UserControl.Parent.hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = flt
cdlg.lpstrFile = FileName & String(255 - Len(FileName), _
Chr(0))
cdlg.nMaxFile = 256
cdlg.lpstrFileTitle = String(255, Chr(0))
cdlg.nMaxFileTitle = 256
cdlg.lpstrInitialDir = idir
cdlg.lpstrTitle = DialogTitle
cdlg.Flags = Flags
cdlg.lStructSize = Len(cdlg)
trez = IIf(GetOpenFileName(cdlg), Trim(cdlg.lpstrFile), "")

If Len(trez) > 0 Then FileName = trez: FileTitle = _
cdlg.lpstrFileTitle Else If CancelError Then _
Err.Raise -1, "CDL control", "Cancel"

End Sub

Public Sub ShowSave()

Dim i As Integer
Dim flt As String, idir As String, trez As String
On Error Resume Next
flt = Replace(Filter, "|", Chr(0))

If Len(flt) = 0 Then flt = Replace("All Files (*.*)|*.*|", _
"|", Chr(0))
If Right(flt, 1) <> Chr(0) Then flt = flt & Chr(0)
If Len(InitDir) = 0 Then idir = FileName Else idir = InitDir

cdlg.hwndOwner = UserControl.Parent.hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = flt
cdlg.lpstrFile = FileName & String(255 - Len(FileName), _
Chr(0))
cdlg.nMaxFile = 256
cdlg.lpstrFileTitle = String(255, Chr(0))
cdlg.nMaxFileTitle = 256
cdlg.lpstrInitialDir = idir
cdlg.lpstrTitle = DialogTitle
cdlg.Flags = Flags
cdlg.lStructSize = Len(cdlg)
trez = IIf(GetSaveFileName(cdlg), Trim(cdlg.lpstrFile), "")

If Len(trez) > 0 Then FileName = trez: FileTitle = _
cdlg.lpstrFileTitle Else If CancelError Then _
Err.Raise -1, "CDL control", "Cancel"

End Sub

Sudah selesai dalam penulisan silahkan aja di jalankan.
'|<<<<<<<<<<<<<..:: Programmer ::..>>>>>>>>>>>>>>|
'| Name : Sodikin |
'| site : http://s0dikin.blogspot.com |
'| email : hack.chin@gmail.com |
'| mr_hack77@yahoo.com |
'| chung_chin@joomlaku.info |
'| forum : www.xcode.or.id |
'| www.vb-bego.net |
'|<<<<<<<<<<<<<..:: End of File ::..>>>>>>>>>>>>>|

Buat server Repository Ubuntu 9.04

Hari ini suntuk sekali karena ya ga ada kerjaan. akhirnya yang berupaya membuat webserver berbasis ubuntu kemudian biar ga repot untuk mengupdate ubuntu sekalian deh aku buatkan reponya dan repo ini bisa diakses di LAN dan kedepannya bisa diakses ke public.
untuk persyaratan tersebut aku pakai xampp for linux digunakan sebagai web server dan reponya.
silahkan siapkan aja bahan-bahannya. Repo ubuntu 9.04 sebanyak 6 DVD aku sih donlot di repo.ugm.ac.id hehe... (1 minggu untuk donlot tu repo)
kalau yang beli silahkan dibuat file ISO aja, kalau yang donlot ya tinggal pakai aja. kemudian anda sediakan lampp nya

setelah xampp for linux (lampp) silahkan aja di install tu xampp
tutorialnya banyak kog cari aja deh
setelah install lammpp berhasil jalankan aja lammp tersebut, sehingga anda mempunyai webserver sendiri.
sekarang cara membuat reponya
letakkan hasil donlotan repo kamu di /home/[namauser]/
[namauser] adalah user yang kamu buat pada waktu istall ubuntu
setelah itu rename iso repo kamu menjadi repo1 dan seterusnya sampai repo6
oke langsung aja
anda buka terminal
kemudian anda masuk sebagai root
dengan perintah sudo su

kemudian anda ketikkan

mkdir -p /opt/lampp/htdocs/jaunty/repo1
mkdir -p /opt/lampp/htdocs/jaunty/repo2
mkdir -p /opt/lampp/htdocs/jaunty/repo3
mkdir -p /opt/lampp/htdocs/jaunty/repo4
mkdir -p /opt/lampp/htdocs/jaunty/repo5
mkdir -p /opt/lampp/htdocs/jaunty/repo6


diatas merupakan script untuk membuat direktori /opt/lampp/htdocs beserta sub directorinya (dengan perintah -p)

masukan perintah pengeditan pada /etc/fstab
dengan perintah

gedit /etc/fstab


masukkan script berikut di paling bawah

/home/[namauser]/iso1.iso /opt/lampp/htdocs/jaunty/repo1 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso2.iso /opt/lampp/htdocs/jaunty/repo2 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso3.iso /opt/lampp/htdocs/jaunty/repo3 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso4.iso /opt/lampp/htdocs/jaunty/repo4 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso5.iso /opt/lampp/htdocs/jaunty/repo5 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso6.iso /opt/lampp/htdocs/jaunty/repo6 iso9660 ro,loop,auto 0 0


sekarang kita edit /etc/rc.local untuk menjalankan lammp secara otomatis jika restart
dengan perintah

gedit /etc/rc/local

masukkan script berikut sebelum exit o

sudo /opt/lampp/lampp start


kemudian restart komputer anda

sekarang anda jalankan web browser kemudian anda ketikkan localhost/jaunty
jika ada folder dan didalam folder2 tersebut ada isinya berarti pembuatan repo berhasil (kalau belum berhasil silahkan di lihat dulu script2 yang telah anda masukkan sudah benar atau tidak atau mungkin aja xampp nya belum jalan0
sekarang kita masukkan script untuk perubahan repository yang telah kita buat
buka terminal lagi sebagai root
kita anda source list repo dalam ubuntu akan tetepi terlebih dahulu kita backup dulu yang ada di system (biar kalau salah bisa kita restore kembali)
perintah backup

cp /etc/apt/sources.list /etc/apt/source.list-backup


perintah mengedit

gedit /etc/apt/sources.list


hilangkan semua tulisan yang ada kemudian kita ganti menjadi

deb http://192.168.0.1/jaunty/repo1 jaunty main restricted
deb http://192.168.0.1/jaunty/repo2 jaunty main restricted multiverse
deb http://192.168.0.1/jaunty/repo3 jaunty universe
deb http://192.168.0.1/jaunty/repo4 jaunty universe
deb http://192.168.0.1/jaunty/repo5 jaunty universe
deb http://192.168.0.1/jaunty/repo6 jaunty universe


dengan syarat ip 192.168.0.1 adalam ip dimana komputer yang ada repo (atau komputer yang sekarang kamu buat repo)

kemudian kamu coba jalan aplications/add/remove
silahkan kamu coba menginstall aplikasi yang belum ada jika berhasil berarti repository sudah berhasil di install pada komputer kamu.

sekiaan dulu semoga bermanfaat

Chung Chin

Backup mySQL dengan mysqldump

Kalau yang terdahulu saya bahas dengan membackup mysql dengan script di Visual basic sekarang akan saya bahas membackup database mysql dengan bantuan program mysqldump.exe yang merupakan bawaan dari mysql server. namun juga digabungkan dengan script2 di visual basic. Langsung aja anda kita bahas, anda harus menginstall mysql server (pati sudah terinstall kan udah punya database), kemudian anda cari program mySQLdump dan anda copykan ke folder tempat penyimpanan visual basic anda. kalau sudah langsung aja anda buat project nya.

project terdiri dari 1 project dan 1 form dan 1 commandbutton
silahkan anda copas nih kode

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = -1&
Dim FileNama As String
Sub BuatBAT()
Open App.Path + "\Backup.bat" For Output As #1
Print #1, Tab(1); "mysqldump.exe --user=root --password=dikosongi --host=localhost --databases kkpi --opt --quote-names --allow-keywords --complete-insert --add-drop-database --hex-blob> c:\kkpi.sql"
Close #1

End Sub
Private Sub ShellAndWait(ByVal program_name As String)
Dim process_id As Long
Dim process_handle As Long

process_id = Shell(program_name, vbHide)
DoEvents
' Wait for the program to finish.
' Get the process handle.
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If
' Reappear.
End Sub
Private Sub Command1_Click()
BuatBAT
ShellAndWait App.Path + "\Backup.bat"
kill App.Path + "\Backup.bat"
End Sub


sekian dulu semoga aja bermanfaat

chung chin

Backup dan Restore mySQL

ini merupakan source yang saya ambil dari www.pscode.com yang mana digunakan untuk membackup dan merestore database dengan mySQL sehingga bisa untuk memindahkan data mySQL. tentunya dengan visual basic juga.
silahkan lanjutkan aja

silahkan aja di copas ni kode pada module

Option Explicit

'Translate the literals if you want...
Const MSG_01 = "Dibuat Oleh: " 'created by
Const MSG_02 = "NamaDatabase: " 'database name
Const MSG_03 = "Tanggal/Waktu: " 'Data and time
Const MSG_04 = "DD/MM/YY HH:MM:SS" 'Your prefered format to display dates
Const MSG_05 = "DBMS: MySQL v"
Const MSG_06 = "Struktur Tabel " 'Table structure
Const MSG_07 = "Data Tabel " 'Table data
Const MSG_08 = "Akhir dari Backup: " 'End of backup
Public Sub MySQLBackup(ByVal strFileName As String, cnn As ADODB.Connection)
' strFileName contains the filename where you want to backup to go...
' It will overwrite the file if it exists...
' cnn is the current conection with the database...
On Error Resume Next

Dim rss As ADODB.Recordset
Dim rssAux As ADODB.Recordset

Dim X As Long, i As Integer

Dim strTableName As String
Dim strCurLine As String
Dim strBuffer As String
Dim strDBName As String

X = FreeFile
Open strFileName For Output As X

Print #X, ""
Print #X, "#"

Print #X, "# " & MSG_01 & App.Title & " v" & App.Major & "." & App.Minor & "." & App.Revision

'Looking for the database name
strDBName = Mid(cnn.ConnectionString, InStr(cnn.ConnectionString, "DATABASE=") + 9)
strDBName = Left(strDBName, InStr(strDBName, ";") - 1)
Print #X, "# " & MSG_02 & strDBName

Set rss = New ADODB.Recordset
Set rssAux = New ADODB.Recordset

'Looking for the version of MySQL
Print #X, "# " & MSG_03 & Format(Now, MSG_04)
rss.Open "show variables like 'version';", cnn
If Not rss.EOF Then
Print #X, "# " & MSG_05 & rss.Fields(1)
End If
rss.Close

'Preventing errors by foreign key violation during the restoring process
Print #X, "#"
Print #X, ""
Print #X, "SET FOREIGN_KEY_CHECKS=0;"
Print #X, ""

strTableName = ""

With rss
.Open "SHOW TABLE STATUS", cnn

'For each table...
Do While Not .EOF
strTableName = .Fields.Item("Name").Value
With rssAux
.Open "SELECT * FROM " & strTableName & "", cnn
If Not .EOF Then
Print #X, "INSERT INTO `" & strTableName & "` VALUES "

Do While Not .EOF
strCurLine = ""
For i = 0 To .Fields.Count - 1
strBuffer = .Fields.Item(i).Value

If .Fields.Item(i).Type = 131 Then
strBuffer = Replace(Format(strBuffer, "0.00"), ",", ".")
End If

'Some safe replacements...
strBuffer = Replace(strBuffer, "\", "\\")
strBuffer = Replace(strBuffer, "'", "\'")
strBuffer = Replace(strBuffer, Chr(10), "")
strBuffer = Replace(strBuffer, Chr(13), "\r\n")

If strCurLine <> "" Then
strCurLine = strCurLine & ", "
End If
strCurLine = strCurLine & "'" & strBuffer & "'"
Next i
.MoveNext

strCurLine = "(" & strCurLine & ")"
If .EOF Then
Print #X, strCurLine & ";"
Else
Print #X, strCurLine & ","
End If
Loop

End If

.Close
End With

Print #X, "unlock tables;"
Print #X, "#--------------------------------------------"

.MoveNext
Loop

'Setting the DB to its normal behavior...
Print #X, ""
Print #X, "SET FOREIGN_KEY_CHECKS=1;"
Print #X, ""
Print #X, "# " & MSG_08 & Format(Now, MSG_04)

.Close
End With

Close #X
End Sub
Public Sub MySQLRestore(ByVal strFileName As String, cnn As ADODB.Connection)
' strFileName contains the filename of the backup...
' cnn is the current conection with the database...

Dim lngTotalBytes As Long, lngCurrentBytes As Long
Dim X As Integer, strCurLine As String, strAux As String
Dim blnPassLines As Boolean
Dim blnAnalizeIt As Boolean

X = FreeFile

On Error GoTo ErrDrv

Open strFileName For Input As #X
lngTotalBytes = LOF(X)

blnPassLines = False
Do While Not EOF(X)
Line Input #X, strCurLine
lngCurrentBytes = lngCurrentBytes + Len(strCurLine)

'If you want to inform the user about the progress of the restoring process...
' do so with UpdateProgressBar (or whatever name you gave it to this function).
'Call UpdateProgressBar(lngTotalBytes, lngCurrentBytes)
'DoEvents

'Avoiding comments...
blnAnalizeIt = True
strCurLine = Trim(strCurLine)
If Not blnPassLines Then
If Left(strCurLine, 1) = "#" Then
blnAnalizeIt = False
ElseIf Left(strCurLine, 2) = "/*" Then
blnAnalizeIt = False
blnPassLines = True
End If
ElseIf Right(Trim(strCurLine), 2) = "*/" Then
blnPassLines = False
blnAnalizeIt = False
End If

'if the line should be proccessed...
If blnAnalizeIt And strCurLine <> "" Then

'Do it... Searching for a whole SQL statment
' (those with a trailing semicolon)
While Mid(strCurLine, Len(strCurLine), 1) <> ";"
strAux = strCurLine
Line Input #X, strCurLine
lngCurrentBytes = lngCurrentBytes + Len(strCurLine)
strCurLine = Trim(strCurLine)

'Call UpdateProgressBar(lngTotalBytes, lngCurrentBytes)
'DoEvents

strCurLine = strAux & strCurLine
Wend

'Execute the sentence...
cnn.Execute strCurLine
End If

'Call MyDoEvents
Loop

Close #X
'Call UpdateProgressBar(lngTotalBytes, lngTotalBytes)
HackPesan "Penambahan OK"
Exit Sub
ErrDrv:

Debug.Print "ERROR:" & Err.Number & vbNewLine & Err.Description & vbNewLine, vbCritical
Err.Clear

End Sub


nah kalau ini di taruh pada command
Call MySQLBackup(App.Path + "\Backup\backup" + Format(Now, "hhmmss") + ".sql", cn)


demikian semoga bermanfaat

Pelatihan Kepala Sekolah SMP se-Kab Rembang

pada tanggal 14 sampai 15 Juli kemarin diadakan pelatihan kepala sekolah SMP se-Kabupaten Rembang di SMP 1 Pamotan dengan materi Internet dan Powerpoint. saya dan teman saya Irawan karyo Utomo di tunjuk sebagai pemakalah dalam acara tersebut. berikut aku beri Modul Pelatihan tersebut. silahkan klik disini


Windows Seven X-Waja

ni windows yang udah aku modified bagi yang pengin bisa copy ke saya
Photobucket


didalamnya sudah include
Office 2009 (pakainya KingSoft Office mirip office 2003)
7zip
winrar
Smadav 2009 rv5.1
CorelDraw 11
Nero
FoxitReader
Yahoo Messenger
Mozilla Firefox 3.7
Client dan Server (untuk warnet)
ViStart
Viglance
KLite MegaCodec
IDM 5.14
GadGet

Buat Program dengan tampilan pakai ribbon office2007

Udah lama ga posting karena ngoprek buat source code dengan aplikasi codejock, setelah sekian lama ngoprek akhirnya berhasil buat tampilan yang sesuai dengan keinginan.
berikut akan aku sertakan tampilannya biar semua lihat. dan untuk source codenya menyusul.



source code akan aku berikan jika ada min 10 komentar di posting ini
sebenernya nunggu sampai 10 komentar, tapi aku ga tega karena mungkin akan lama aku ga bisa OL karena sekolah udah liburan jadi ikutan libur deh. biar ga di uber2 utang ama temen-teman aku posting source codenya deh. lihat di bawah.
ni source code nya beserta ocxnya : klik disini

Buat DSN untuk database mySQL

Posting ini saya buat karena pada waktu aku buat suatu project kesulitan gimana cara memanggil database mySQL untuk di taruh report sehingga report bisa menggunakan database tersebut. akan tetapi pada waktu buat DSN di komputer langsung maka setelah aku pidah project kita di komputer lain maka DSN juga ga ikut sehingga report tidak bisa memanggil database kita.
DSN bisa dibuat dengan sendirinya. setelah gogling dan membongkar source code yang aku miliki sehingga mendapatkan source create DSn dengan fungsi API.
kali ini akan aku share source code yang telah aku buat.

pertama-tama buat dulu module yang berisi fungsi untuk menuliskan ke registry
ni sourcenya silahkan di copas

Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Enum REG
HKEY_CURRENT_USER = &H80000001
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_CONFIG = &H80000005
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
End Enum
Public Const READ_CONTROL = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20

'Tipe Reg Key ROOT ...
Public Const ERROR_SUCCESS = 0
Public dsnDriver As String
Enum TypeStringValue
REG_SZ = 1
REG_EXPAND_SZ = 2
REG_MULTI_SZ = 7
End Enum
Enum TypeBase
TypeHexadecimal
TypeDecimal
End Enum
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Declare Function NdamelAnak Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Public Keamanan As SECURITY_ATTRIBUTES
Public Sub GaweAnakManeh(Ibu As String, Anak As String)
NdamelAnak Ibu, Anak, 0
End Sub
Public Function NdamelTulisan(hKey As REG, Subkey As String, RTypeStringValue As TypeStringValue, strValueName As String, strData As String) As Long

On Error Resume Next
Dim ret As Long

RegCreateKey hKey, Subkey, ret
NdamelTulisan = RegSetValueEx(ret, strValueName, 0, RTypeStringValue, ByVal strData, Len(strData))
RegCloseKey ret

End Function
Public Sub GaweDSN(dsnName As String, dsnServer As String, dsnPort As String, dsnUser As String, dsnPass As String)
If Not cekDrivermySQL(dsnDriver) Then
MsgBox "Tidak ada driver mySQL silahkan di install dulu", vbOKOnly + vbCritical, "Error.!!"
MsgBox "Program sementara di tutup", vbOKOnly + vbCritical, "Error.!!"
End
End If
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Description", "MySQL for Education"
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Database", dsnName
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Server", dsnServer
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Port", dsnPort
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "User", dsnUser
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Password", dsnPass
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Server", dsnServer
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Driver", dsnDriver
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Stmt", ""
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Option", ""
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", REG_SZ, dsnName, "MySQL ODBC 3.51 Driver"
End Sub
Public Function AdaDriver(RegKeyPath As String, _
RegKeyName As String, _
ByRef RegKeyValue As String) As Boolean
Dim DoesIt As Boolean
Dim Result As Long
Dim hKey As Long
Result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, RegKeyPath, 0&, KEY_QUERY_VALUE, hKey)
If Result <> ERROR_SUCCESS Then
AdaDriver = False
Exit Function
End If
Result = RegQueryValueEx(hKey, RegKeyName, 0&, REG_SZ, ByVal RegKeyValue, Len(RegKeyValue))
RegCloseKey (hKey)


If Result <> ERROR_SUCCESS Then
AdaDriver = False
Exit Function
End If
AdaDriver = True
End Function


Public Function cekDrivermySQL(ByRef dsnDriver As String) As Boolean
Dim RegKeyPath As String
Dim RegKeyName As String
Dim RegKeyValue As String
Dim DoesIt As Boolean


DoesIt = False
'edit here to change the driver information
RegKeyPath = "SOFTWARE\ODBC\ODBCINST.INI\MySQL ODBC 3.51 Driver"
RegKeyName = "Driver"
RegKeyValue = String(255, Chr(32))



If AdaDriver(RegKeyPath, RegKeyName, RegKeyValue) Then
dsnDriver = RegKeyValue
DoesIt = True
Else
DoesIt = False
End If

cekDrivermySQL = DoesIt
End Function

Install Puppy Linux di Anoa 212 Zyrex

Kemarin aku di suruh memperbaiki laptop merk Anoa 212 Zyrex yang berhardisk cuma 2 GB, tidak ada CDRoom, DVD. malah tambah bingung lagi di dalamnya udah ada windows dan ternyata blue screen. aku coba install windows XP SP1 setelah proses copy file install lasi dan restart ternyata blue screen lagi. aku coba beberapa kali lagi ternyata sama. aku coba pakai live cd windows ternyata juga sama bluescreen. sehingga aku putuskan untuk install linux. aku coba pakai ubuntu 9.04 versi livecdnya ternyata berjalan dengan sukses (ga ada blue screennya) eh aku coba install ternyata HD ga cukup. pusing dehhhhh
setelah aku browsing n cari linux yang kecil tapi tampilannya bagus aku nemuin yang namanya Puppy Linux dan aku coba download versi yang terakhir dengan besar kurang lebih 100 MB.
setelah itu aku burn di cd dan aku coba ternyata sukses berjalan, yang jadi pertanyaannya gimana cara memasukkan ke HD laptopnya. aku coba beberapa kali mungkin sampai 10 x lebih, karena selama 2 hari aku coba sampai jam 1 malam terus ga berhasil, aku browsing cari di mbah google juga masuh ga bisa2. kemudian aku coba utak utik dan berhasil.....
mau tau caranya:
gini....

Langsung aja ya
1. format HDnya pakai gparted (klik start --> system -- gparted)
2. format dengan ext2 (katanya puppy belum kenal dengan ext3)
3. kemudian klik appply tunggu beberapa menit
4. kemudian klik kanan area HD kemudian klik manage flag
5. kemudian pilih yang boot
6. tunggu kemudian tutup program gparted
7. klik start --> setup --> remastering cdlive
8. ikuti langkah selanjutnya sampai selesa
9. klik start --> setup --> install universal..
10. ikuti langkahnya....
11. sampai cd installnya keluar
12. kemudian restart....
13. kalau ada perintah simpan klik aja simpan
14. tunggu beberapa saat karena biasanya sedikit lama
15. selasai deh anda bisa menikmati puppy linux

pasti anda bertanya kog bisa install pakai cd padahal ga ada cd. anda bisa pakai cd external atau anda buat booting dengan FD.

maaf jika ada kesalahan maklum newbie dalam hal linux.

semoga aja bermanfaat

Chung Chin

Install Ubuntu 9.04 di Laptop BYON M31W

setelah nunggu akhirnya aku selesai juga download ubuntu 9.04 setelah aku coba di laptop BYON M31W juga harus menyisipkan acpi=off noapic nolapic. dan tidak mendukung VGA SIS, akhirnya aku coba untuk install terus, setelah selesai ternyata ga usah mengedit grub karena secara otomatis juga udah tertulis acpi=off, noapic, nolapic. selain itu Wireless juga langsung ke detect ga harus memakai ndiwswrapper. sekian ya hasil review install ubuntu.9.04 di laptop byon m31w.
semoga aja bermanfaat.


Cetak struk pakai printer star tipe cutter 2

Yang tadi ada source code yang aku buat, sekarang akan aku berikan source code dengan vb yang di buat oleh team support dari pembuat printernya (star). Silahkan di ikuti ya.... (lanjutkan aja)

source code ini di gabungkan dengan metode rawprinter yang pernah aku bahas di posting yang terdahulu. langsung aja ya ni sourcenya

Call StartPagePrinter(lhPrinter)
' Sending raw data to the printer
sWrittenData = Chr(&H1B) + Chr(&H1D) + Chr(&H61) + Chr(&H1) 'Center Alignment - Refer to Pg. 3-29
sWrittenData = sWrittenData + Chr(&H5B) + "If loaded.. Logo1 goes here" + Chr(&H5D) + vbCrLf
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H1C) + Chr(&H70) + Chr(&H1) + Chr(&H0) + vbCrLf 'Stored Logo Printing - Refer to Pg. 3-38
sWrittenData = sWrittenData + "Star Clothing Boutique" + vbCrLf
sWrittenData = sWrittenData + "1150 King Georges Post Rd." + vbCrLf
sWrittenData = sWrittenData + "Edison, NJ 08837" + vbCrLf
sWrittenData = sWrittenData + vbCrLf
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H1D) + Chr(&H61) + Chr(&H0) 'Left Alignment - Refer to Pg. 3-29
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H44) + Chr(&H2) + Chr(&H10) + Chr(&H22) + Chr(&H0) 'Setting Horizontal Tab - Pg. 3-27
sWrittenData = sWrittenData + "Date: 12/31/2008 " + Chr(&H9) + " Time: 9:10 PM" 'Moving Horizontal Tab - Pg. 3-26
sWrittenData = sWrittenData + "------------------------------------------------" + vbCrLf + vbCrLf
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H45) 'Select Emphasized Printing - Pg. 3-14
sWrittenData = sWrittenData + "SALE" + vbCrLf
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H46) 'Cencel Emphasized Printing - Pg. 3-14
sWrittenData = sWrittenData + "SKU " + Chr(&H9) + " Description " + Chr(&H9) + " Total" + vbCrLf
sWrittenData = sWrittenData + "300678566 " + Chr(&H9) + " PLAN T-SHIRT" + Chr(&H9) + " 10.99" + vbCrLf
sWrittenData = sWrittenData + "300692003 " + Chr(&H9) + " BLACK DENIM" + Chr(&H9) + " 29.99" + vbCrLf
sWrittenData = sWrittenData + "300651148 " + Chr(&H9) + " BLUE DENIM" + Chr(&H9) + " 29.99" + vbCrLf
sWrittenData = sWrittenData + "300642980 " + Chr(&H9) + " STRIPE DRESS" + Chr(&H9) + " 49.99" + vbCrLf
sWrittenData = sWrittenData + "300638471 " + Chr(&H9) + " BLACK BOOT" + Chr(&H9) + " 35.99" + vbCrLf
sWrittenData = sWrittenData + vbCrLf
sWrittenData = sWrittenData + "Subtotal " + Chr(&H9) + "" + Chr(&H9) + " 156.95" + vbCrLf
sWrittenData = sWrittenData + "Tax " + Chr(&H9) + "" + Chr(&H9) + " 00.00" + vbCrLf
sWrittenData = sWrittenData + "------------------------------------------------" + vbCrLf
sWrittenData = sWrittenData + "Total" + Chr(&H6) + "" + Chr(&H9) + Chr(&H1B) + Chr(&H69) + Chr(&H1) + Chr(&H1) + " $156.95" + vbCrLf 'Character Expansion - Pg. 3-10
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H69) + Chr(&H0) + Chr(&H0) 'Cancel Character Expansion - Pg. 3-10
sWrittenData = sWrittenData + "------------------------------------------------" + vbCrLf + vbCrLf
sWrittenData = sWrittenData + "Charge" + vbCrLf + "$159.95" + vbCrLf
sWrittenData = sWrittenData + "Visa XXXX-XXXX-XXXX-0123" + vbCrLf + vbCrLf
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H34) + "Refunds and Exchanges" + Chr(&H1B) + Chr(&H35) + vbNewLine 'Specify/Cencel White/Black Invert - Pg. 3-16
sWrittenData = sWrittenData + "Within " + Chr(&H1B) + Chr(&H2D) + Chr(&H1) + "30 days" + Chr(&H1B) + Chr(&H2D) + Chr(&H0) + " with receipt" + vbCrLf 'Specify/Cancel Underline Printing - Pg. 3-15
sWrittenData = sWrittenData + "And tags attached" + vbCrLf + vbCrLf
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H1D) + Chr(&H61) + Chr(&H1)
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H62) + Chr(&H6) + Chr(&H2) + Chr(&H2) + " 12ab34cd56" + Chr(&H1E) + vbCrLf 'Barcode - Pg. 3-39 - 3-40
sWrittenData = sWrittenData + Chr(&H1B) + Chr(&H64) + Chr(&O2) 'Cut - Pg. 3-41
sWrittenData = sWrittenData + Chr(&H7)



aku aja bngung tu untuk apa aja. hehe
buanyak kode untuk printer dot matrix
bagi yang bisa kasih komentar ya, buat sharing ilmu aja. maklum newbie tinggal copas

Cetak struk pakai printer star tipe cutter 1

Kemarin aku nyoba membuat program dengan memanfaatkan printer star aku lupa serinya tapi tipe kayak di market2 yang bisa langsung ada cutternya dan lebarnya cuma sekitar 6-8 cm. menggunakan kertas penggulung. Dulu pernah aku prosting gimana cara agar kertas berhenti sendiri dan tidak menggulung terus. tapi cara tersebut tidak bisa untuk mengatur besar kecilnya huruf. setelah browsing kesana-kemari dan mampir ke situs www.vb-bego.net di salam forumnya di bahas tapi akhirnya juga harus pakai ocx dan di komersilkan ya terpaksa sih cari-cari referensi yang lainnya. setelah cukup lama akhirnya aku menemukan gimana cara agar bisa membuat tulisannya tebal. dan aku gabungkan dengan source untuk tidak menggulung terus. silahkan di lanjutkan aja.

langsung aja aku berikan sourcenya aja ya

Open "Lpt1" For Output As #1

Print #1, Chr(27) & "@" 'mendekeksi printer
Print #1, Chr(27) & "A" & Chr(11)
Print #1, Chr(27) & "E" 'Membuat Tebal
Print #1, "Mencetak dengan ukuran 2 kali biasa"
Print #1, "Mencetak dengan ukuran 2 kali biasa"
Print #1, Chr(27) & "F" ' membuat normal kembali

Print #1, "Mencetak yang normal-normal saja"
Print #1, "Mencetak yang normal-normal saja"

Close #1


printer langsung mencetak sesuai dengan perintah dan akan berhenti sendiri deh.
source code ini aku dapat dari www.pscode.com. Terima kasih bagi yang buat.

semoga aja bermanfaat.

chung chin

Satu lagi cara membuat report dengan Ms Excell

Kemarin pada waktu aku berkunjung ke www.vb-bego.net aku menemukan source code gimana cara membuat report atau laporan dengan MS. Excell. langsung aja ya aku kasih sourcenya..
terima kasih kepada RidenX yang merupakan member dari www.vb-bego.net
untuk lihat sourcenya lanjutkan aja ya
saya tunggu komentarnya


Dim ApExcel As Object ' persiapkan untuk object Excel
Private Sub Command1_Click()
Dim i As Integer
Dim nama(5) As String
Dim alm(5) As String
Dim gaji(5) As String
'-------ambil data-------------------
Open App.Path & "\data.txt" For Input As #1
i = 1
Do
Input #1, nama(i), alm(i), gaji(i)
If nama(i) = "" Then Exit Do
i = i + 1
Loop Until EOF(1)


Set ApExcel = CreateObject("Excel.application") 'bikin object
ApExcel.Visible = True ' excel muncul
ApExcel.workbooks.Add 'nambahin workbook.
ApExcel.sheets("sheet1").Name = "SATU" ' me Rename Sheet satu
ApExcel.sheets("sheet2").Name = "DUA" ' me Rename Sheet dua
ApExcel.sheets("sheet3").Name = "TIGA" ' me Rename Sheet tiga
ApExcel.sheets("SATU").Activate 'Aktifkan Sheet satu



With ApExcel

.CELLS(1, 1).Value = "PT. INDONESIA TENTREM ADEM"
.CELLS(2, 1).Value = "REKAP GAJI BULAN " & UCase(Format(Month(Now), "MMMM")) & " TAHUN " & Year(Now)


.CELLS(1, 1).Font.COLORINDEX = 17 ' beri warna
.CELLS(2, 1).Font.COLORINDEX = 17



.CELLS(3, 1).Value = "No." 'Menulis di kolom 1 baris 1
.CELLS(3, 2).Value = "NAMA" 'Menulis di Kolom 2 baris 1
.CELLS(3, 3).Value = "ALAMAT" ' Menulis di kolom 3 baris 1
.CELLS(3, 4).Value = "GAJI"


.Columns(1).columnwidth = 6 ' set kolom 1 lebarnya 6
.Columns(2).columnwidth = 20 'set kolom 2 lebarnya 20
.Columns(3).columnwidth = 20 'set kolom 3 lebarnya 20
.Columns(4).columnwidth = 20 'set kolom 4 lebarnya 20
.sheets("SATU").RANGE("A1:d3").Font.Bold = True ' Bikin cetak tebel dari kolom A sampe C di sheet satu
.CELLS(3, 1).horizontalalignment = 3 '
.CELLS(3, 2).horizontalalignment = 3 'Bikin ketengah semua
.CELLS(3, 3).horizontalalignment = 3 '
.CELLS(3, 4).horizontalalignment = 3 '
For i = 1 To 5
.CELLS(3 + i, 1).Value = i 'tulis no urut
.CELLS(3 + i, 2).Value = nama(i) ' tulis nama
.CELLS(3 + i, 3).Value = alm(i) ' tulis alamat
.CELLS(3 + i, 4).Value = Format(gaji(i), "#,###,###") ' tulis gaji
Next i

.CELLS(4 + i, 4).formula = Format("=sum(D3:D" & 3 + i & ")", "#,###,###") ' sum data gajinya
.CELLS(4 + i, 2).Value = "TOTAL"
.CELLS(4 + i, 2).horizontalalignment = 3
.sheets("SATU").RANGE("b" & 4 + i & ":d" & 4 + i).Font.Bold = True 'cetak tebal bawahnya
.RANGE("a3:d" & 4 + i).borders.linestyle = 1 ' buat kotak
End With

Close (1) ' tutup file text

End Sub



databasenya menggunakan file txt jadi anda anda harus mempunyai file txt
silahkan anda buka notepad kemudian copas ni data

Unyil,Tangerang, 5000000
usro,Jakarta,1000000
Jontor,Bekasi,500000
Bapuk,Bogor,789000
JAenab,Jakarta,2000000


kemudian simpan dengan nama "data.txt"
semoga aja bermanfaat

chung chin

Terusan Export Excell dari database dengan VB6

Setelah beberapa waktu yang lalu aku posting tentang export excell dari database kita dengan VB6 n adanya kesalahan dalam penulisan kode, setelah aku analisis dan pemberitahuan teman maka aku tambahi ni source codenya.
pada waktu kemarin itu kurang tranposedim(array)


Function TransposeDim(v As Variant) As Variant
Dim X As Long, Y As Long, Xupper As Long, Yupper As Long
Dim tempArray As Variant

Xupper = UBound(v, 2)
Yupper = UBound(v, 1)

ReDim tempArray(Xupper, Yupper)
For X = 0 To Xupper
For Y = 0 To Yupper
tempArray(X, Y) = v(Y, X)
Next Y
Next X

TransposeDim = tempArray

End Function



terima kasih atas kunjungan, tolong kasih komentarnya donk.
semoga bermanfaat aja

Grid dengan tampilan XP - Vista dgn VB

Kalau yang berkecimpung di dunia pemrogram Visual basic bosan dengan data grid yang tampilannya standar bisa beralih menggunakan LynxGrid dengan tampilan dari XP - Vista. grid ini merupakan gabungan antara listview dengan grid sehingga bisa menampilkan data kita. pada versi terakhir telah ada untuk mencetak data kita ke clipboard maupun ke file. Pokoknya sip deh....

Ini tampilan form yang telah aku buat dengan gird tersebut:



gambar yang pertama merupakan gridnya dan gambar kedua merupakan hasil preview data yang telah kita masukkan ke grid sehingga bisa di cetak dengan printer. kemudian bisa juga di export ke excell tapi dengan sedikit modifikasi.

berikut aku berikan author(pembuat) lynxGrid

'// Title: LynxGrid version 2
'// Author: Morgan Haueisen
'// Modified: 7/12/07
'// Version: 2.15.4a (11 May 2009)(see HistoryLog file for details)
'// MOST CHANGES MADE BY MORGAN HAUEISEN ARE MARKED AS '// MLH
'// Downloaded from: klik disini

'*************************************************************************************************
' Title: Original LynxGrid
' Author: Richard Mewett
' Created: 01/08/05
' Version: 1.89 (10 May 2007)
' Copyright © 2005 Richard Mewett. All rights reserved.
' Provides a combination of MSFlexGrid and ListView (Report Style) functionality.
' Downloaded from: Klik disini


Export database kita ke Excell

Aku posting judul ini karena ada seseorang yang bertanya gimana cara mengeksport database kita ke MS. Exc*ll dengan sekali klik sehingga bisa di edit lagi dan di cetak menurut selera kita. Sebenarnya udah banyak yang memberikan tutorial sekaligus source codenya. saya di sini hanya mengingatkan sekaligus berbagai buat teman-teman saya. hehe....
Maaf kalau ada yang sama, aku cuma ambil source code ini dari www.pscode.com.
Langsung aja ya silahkan di lanjutkan....

Pertama-tama anda buat database anda entah pakai MS Access atau MySQL. tapi dalam contoh ini saya pakai Access.
kemudian anda hubungkan akses anda dengan visual basic. kalau udah berhasil sekarang silahkan tambah satu command lagi untuk eksport data anda. silahkan di pelajari code dibawah ini:

Private Sub cmdExcell_Click()
Dim xlApp As Object
Dim xlWb As Object
Dim xlWs As Object
Dim recArray As Variant
Dim strDB As String
Dim fldCount As Integer
Dim recCount As Long
Dim iCol As Integer
Dim iRow As Integer

Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Add
Set xlWs = xlWb.Worksheets(1)

xlApp.Visible = True
xlApp.UserControl = True

fldCount = rsDaftar.RecordCount
For iCol = 1 To fldCount
xlWs.Cells(1, iCol).Value = rsDaftar.Fields(iCol - 1).Name
Next

If Val(Mid(xlApp.Version, 1, InStr(1, xlApp.Version, ".") - 1)) > 8 Then
xlWs.Cells(2, 1).CopyFromRecordset rsDaftar

Else
recArray = rsDaftar.GetRows
recCount = UBound(recArray, 2) + 1
For iCol = 0 To fldCount - 1
For iRow = 0 To recCount - 1
If IsDate(recArray(iCol, iRow)) Then
recArray(iCol, iRow) = Format(recArray(iCol, iRow))
ElseIf IsArray(recArray(iCol, iRow)) Then
recArray(iCol, iRow) = "Array Field"
End If
Next iRow
Next iCol '
xlWs.Cells(2, 1).Resize(recCount, fldCount).Value = _
TransposeDim(recArray)
End If

xlApp.Selection.CurrentRegion.Columns.AutoFit
xlApp.Selection.CurrentRegion.Rows.AutoFit
rsDaftar.Close
Set rsDaftar = Nothing
Set xlWs = Nothing
Set xlWb = Nothing

Set xlApp = Nothing
End Sub


dalam code diatas pemanggil databasenya ada rsdaftar yang merupakan recordset nya.

sekian dulu semoga bermanfaat, kalau masih belum jelas silahkan kasih komentarnya. kalau ada tambahan juga boleh kasih komentarnya.

thank

chung chin

Burning File lebih dari 700 MB pakai K3B

Tutorial ini aku buat karena keinginkanku untuk mencoba linux di laptop aku, akhirnya setelah browsing kesana kemari aku menemukan DewaLinux yang filenya lebih dari 700 MB setelah putar-putar cari CD dengan kapasitas lebih dari 700MB di kotaku ga ketemu, mau aku bakar di DVD terlalu kecil (bahasa jawanya Nyakang) sehingga aku cari artikel mengenai burning di Cd lebih dari 700 Mb dari beberapa artikel kuncinya cuma overburn yaitu membakar lebih dari 700MB. di Nero juga ada tapi aku coba ga bisa akhirnya ada tutoriaal membakar dengan k3b yang dimiliki linux, aku buka linux ubuntu ku yang ada di kantor ehhh ternyata udah terinstall k3b jadi ga perlu download lagi, bagi yang belum untuk ubuntu ketik sudo apt-get install k3b. tunggu sampai proses selesai.

setelah software terinstall tinggal setting tu k3b dengan overburning kemudian anda tinggal burning di file.
semoga bermanfaat aja.