Wednesday, May 19, 2010

Meng-Compile Kernel Linux

Pendahuluan
Tulisan ini diharapkan menjadi panduan praktis untuk pemula yang baru kenal linux dan ingin melakukan recompile kernel. Saya hanya menuliskan apa yang saya ketahui dan berhasil diterapkan di komputer saya. Bila langkah-langkah kompilasi telah di lakukan dengan benar (sesuai dengan petunjuk) dan ternyata masih terjadi kesalahan, saya tidak bertanggung jawab atas kesalahan tersebut ;-D

Sekilas tentang Kernel dan Module
Kernel merupakan inti dari Operating System berisikan instruksi- instruksi yang bertindak sebagai mediator antara hardware dengan software. Kernel baru pada umumnya menawarkan dukungan yang lebih banyak terhadap ber bagai jenis hardware,memiliki manajemen proses yang lebih baik, berjalan lebih baik dari versi sebelumnya, dan lebih stabil karena adanya perbaikan pada bug-bug yang ditemukan pada versi sebelumnya.

Module merupakan bagian dari code kernel yang tidak secara langsung dimasukan kedalam kernel. Module dapat di masukan atau dihilangkan kedalam kernel yang sedang berjalan kapanpun diperlukan. Module biasanya digunakan untuk mendukung pekerjaan yg tidak di gunakan terus-menerus. misal, jika kita tidak membutuhkan dukungan networking sepanjang waktu, seperti ppp,maka lebih baik ppp dijadikan sebagai module. ketika kita memerlukannya (untuk koneksi ke isp) module kita panggil dan setelah selesai koneksi module dapat kita matikan. penerapan module seperti ini akan mengurangi jumlah memori yang di butuhkan kernel sehingga mempercepat operasi.

Configurasi Kernel
Ada 3 command yang dapat digunakan untuk mengkonfigurasi kernel
config (text-based)
menuconfig (text-based menu)
xconfig (under X )

Diantara ketiga cara tersebut, saya menyarankan untuk menggunakan "menuconfig". karena memiliki tampilan yang lebih menarik dan lebih fleksibel dalam konfigurasi daripada cara pertama (config).

Untuk memilih module dalam menuconfig di tunjukan dengan tanda (dengan menekan tombol m pada keyboard), jika <> menandakan module ini tidak digunakan. tanda <*> atau [*] (dengan menekan tombol y) digunakan untuk menyertakannya secara langsung kedalam kernel. Selama melakukan konfigurasi tidak banyak perubahan yang saya lakukan, apa yang telah ditandakan atau diberi tanda [*] tidak saya rubah. Kecuali hal-hal tertentu yang memang benar-benar tidak dibutuhkan oleh komputer saya, tanda bintangnya di hapus (biar ngak ikut di compile).

Selain itu saya melakukan penambahan penandaan sesuai kebutuhan saya, misal [*] untuk menggunakan module, penandaan untuk ppp atau <*> untuk sb16 saya. ini tentu sesuai dengan kebutuhan anda.

Note: Pastikan pemilihan dilakukan sesuai dengan kebutuhan komputer anda, dan pemilihan menjadi module di lakukan karena penggunaannya dilakukan hanya pada waktu-waktu tertentu saja.

Utility Module
Berikut ini adalah utility yang saya gunakan dalam menangani module
lsmod digunakan untuk melihat module yang telah di load.
contoh: # lsmod

depmod digunakan untuk membuat dependency list module-module yang ada kepada sistem.
contoh: # depmod –a
Bila anda tidak menjalankan perintah ini anda tidak dapat meload module. perinatah "depmod -a" menghasilkan file /lib/modules/2.0.xx/modules.dep yang berisi daftar keterkatian module terhadap module yang lainnya.

modprobe digunakan untuk load/unload module
contoh: # modprobe -r msdos.o -->untuk unload module (menghapus)
contoh: # modprobe msdos.o -->untuk load module
command "modprobe msdos.o" bila dilihat dengan "lsmod" akan nampak seperti:

Module Pages Used by
msdos 2 0
fat 6 [msdos] 0

Perhatikan module fat juga diload, padahal perintah modprobe hanya diperin tahkan untuk meload module msdos. hal ini terjadi karena adanya ketergan tungan module, module msdos memerlukan module fat.
File-file (module) seperti msdos.o bisa dilihat di /lib/modules/2.0.xx/

kerneld merupakan daemon yang secara automatis meload dan unload module. dengan menggunakan kerneld kita tidak perlu lagi menggunakan modprobe (untuk load/unload module) secara manual karena daemon ini telah mena nganinya secara automatis.
Anda dapat mengecek apakah "kerneld" telah bekerja dengan baik. Misalnya anda memilih ppp sebagai module (ketika konfigurasi kernel), kemudian anda ketik command "lsmod", anda akan melihat bahwa module ppp belum di load, hal ini terjadi karena "kernel" belum membutuhkannya sehingga "kernel" tidak meminta "kerneld" meload module ppp. Kemudian anda melakukan proses koneksi ke isp (seperti yang biasa anda lakukan), setelah koneksi berhasil anda ketik "lsmod", kini anda dapat melihat bahwa module ppp telah diload.
Note: bila anda menginginkan menggunakan kerneld pastikan system startup script anda berisi baris /sbin/kerneld (atau check dengan command "ps ax", jika terdapat /sbin/kerneld berarti kerneld telah aktif). bila anda menggunakan RedHat 5.1 jalankan perintah "setup", kemudian pilih "ntsyssv" dan beri tanda [*] pada kerneld. dan jangan lupa sewaktu configurasi kernel (menuconfig) beri tanda [*] pada kernel daemon support.

Langkah-langkah compile kernel

cd /usr/src
tar -zxvf linux-2.0.zz.tar.gz (bila source belum di extract)
cd /usr/src/linux
make mrproper
make menuconfig (bisa dengan config atau xconfig)
make dep
make clean
make zImage (biasanya lama)
make modules
make modules_install
cp arch/i386/boot/zImage /boot/vmlinuz-2.0.xx
depmod –a
(edit /etc/lilo.conf untuk menulis kernel yang baru dengan mengisi image=/boot/vmlinuz-2.0.xx, ikuti prosedur penulisan seperti yang telah ada)
lilo (ketik lilo)
shutdown -r now (reboot)

Membuat Jam Tangan dengan Adobe Photoshop



  1. Hal pertama yang harus dilakukan adalah menciptakan basis. Saya membuat dua silinder sebagai panduan untuk kaca dan panel. Dengan kotak snap untuk membuat garis besar. Lepaskan snap grid dan buat titik itu berada di paling kiri dan kanan ke sudut Bezier dengan cara mengklik kanan dan memilih sudut Bezier. Pilih titik filet dan sesuaikan sudutnya, dan kemudian Anda akan memiliki gambar seperti Gbr dibawah ini sebagai gambar dasar.

  2. Kemudian bungkukkan pada ujung-ujungnya dengan cara pilih bagian atas dan bawah titik dan pindahkan mereka ke bawah sedikit. Hasilnya perspektivnya akan seperti dibawah ini

  3. Pada bagian Bit ini anda memerlukan sedikit utak-atik. Kita akan menggunakan metode loteng yang ada di bawah objek majemuk. Buat garis kecil, untuk kedalamannya Anda pilih dasar yang digunakan dan klik tombol loteng. Klik untuk mendapatkan bentuknya dan kemudian objek dasarnya harus tebal tetapi kosong sehingga modifikasi objek untuk membuatnya padat.

    Deformasi bawah membuat klik tombol skala dan membuat grafik. Sekali lagi, gunakan sudut Bezier untuk membuat kurva. Hal ini akan memberikan dasar bentuk bulat . (Kanan)

    anda akan menemui banyak kesulitan dibagian ini, jadi mebutuhkan waktu khusus untuk mengotak-atiknya

  4. Gambarkan bentuk ditampilan dan gunakan metode loteng lagi untuk mengarsirnya. Gunakan Bevel untuk bentuk seperti yang ditunjukkan. Tingkatkan sisi kanan grafik sedikit sampai terlihat benar.

  5. Berikutnya menggunakan metode Boolean untuk membuat 4 silinder. Kaca, wajah, cincin batin dan panel. Buat kaca dan wajah sangat tipis dan pusatkan mereka dengan sedikit memberikan sedikit jarak antara mereka. Berikutnya membuat cincin dalam (merah) yang sangat tipis. Panel (ungu) tidak harus rata sehingga menaikkan titik tengah sehingga objek akan tertarik.hasilnya tampak seperti ini.

    Untuk membuat tombol, membuat silinder silinder dan talang (sedikit lebih kecil) dan menempatkannya bersama. Klon 4 dari mereka dan membuat mereka 2, 4, 8, dan 10 pagi. Juga menciptakan 6 nomor untuk keluar dari kotak panel

  6. Ini adalah bagaimana saya membuat link dalam rantai tersebut. Cukup loteng bentuk datar. Skala kedua ujungnya seperti sebelumnya dan membuat kotak 3 talang seperti yang ditunjukkan. Pastikan cocok baik ke dalam celah dalam menonton

  7. Untuk membuat rantai, aku pertama kali dibuat elips sebagai panduan untuk bentuk rantai. Saya akhirnya harus tetap kloning, bergerak dan berputar link karena metode lain seperti foto dan array tidak bekerja seperti yang kuinginkan. Untuk lupa bahwa setelah Anda melakukan satu sisi hanya klon dan cermin itu!

    Berikutnya membuat kotak sederhana dan bentuk itu (dikonversi ke mesh dapat diedit) agar terlihat seperti potongan menghubungkan.

    Sekarang Anda memiliki objek menonton dan yang perlu anda lakukan adalah tekstur itu. Lebih lama dari Anda mungkin berpikir (!)

Membuat Fungsi pada kristal report

Membuat fungsi pada Crsytal Report

Salah satu kelebihan Crystal Report v7 dan terbaru (v8) adalah kemampuannya dalam memberikan keleluasaan kepada para developer untuk membuat fungsi sendiri/User Defined Function (UDF) menggunakan tool pemrograman yang mendukung Component Object Model (COM) seperti VB, Delphi, Visual C++ dsb.

Kenapa membuat fungsi sendiri ? bukankah Crystal Report telah menyediakan berbagai macam fungsi dari operasi string sampai dengan statistika ? betul, tapi tidak semuanya. Katakanlah kita sedang membuat program aplikasi untuk mencetak faktur penjualan dan anda harus mencetak nilai nominal penjualan beserta jumlah terbilangnya. Adakah fungsi terbilang (dalam bahasa Indonesia) pada Crystal Report ? nah, disinilah manfaatnya dan pada kesempatan ini penulis akan mencoba membuat fungsi terbilang pada Visual Basic 6 dan memanggilnya menggunakan Crystal Report v7.

Cara Kerja

Crystal Report mengenali fungsi yang dibuat sendiri diatas melalui User Function Library (UFL) yang bertindak sebagai "penterjemah" antara Crystal Report dan komponen yang kita buat. UFL sendiri sebenarnya berupa file .DLL, U2LCOM.DLL, dan biasanya terdapat pada direktori WINDOWS\CRYSTAL ketika kita install Crystal Report.

Agar komponen yang kita buat dapat diakses oleh file diatas, project yang kita buat harus mempunyai nama dengan awalan CRUFL (misalnya CRUFLFungsiku) dan fungsi-fungsi yang dideklarasikan pada satu Class harus berifat global/public.


Gambar 1
Fungsi dari VB yang dipanggil Crystal Report

Membuat ActiveX DLL

Jalankan Visual Basic, pada window New Project pilih ActiveX DLL dan klik tombol Ok, anda akan dibuatkan satu buah project dengan satu buah Class. Pilih menu Project | Project1 Properties, pada tab General set nama project menjadi CRUFLFungsiku (lihat gambar 2).


Gambar 2.
Set nama project.

Set nama class1 menjadi Konversi pada window property (lihat gambar3), aktifkan window code dan ketikkan kode dibawah :

Public Function Terbilang(Angka As Double) As String

Dim strJmlHuruf$, intPecahan As Integer, strPecahan$,
Urai$, Bil1$, strTot$, Bil2$
Dim x As Integer, y As Integer, z As Integer

If IsNull(Angka) Then
Terbilang = ""
Exit Function
End If

strJmlHuruf = LTrim(CStr(Angka))
intPecahan = Val(Right(Mid(CStr(Angka), 15, 2), 2))

If (intPecahan = 0) Then
strPecahan = ""
Else
strPecahan = LTrim(Str(intPecahan)) + "/100 "
End If

x = 0
y = 0
Urai = ""
While (x < x =" x" strtot =" Mid(strJmlHuruf," y =" y" z =" Len(strJmlHuruf)" z =" 1" z =" 7" z =" 10" z =" 13)" bil1 = "SATU " z =" 4)" x =" 1)" bil1 = "SE" bil1 = "SATU " z =" 2" z =" 5" z =" 8" z =" 11" z =" 14)" x =" x" strtot =" Mid(strJmlHuruf," z =" Len(strJmlHuruf)" bil2 = "" bil1 = "SEPULUH " bil1 = "SEBELAS " bil1 = "DUA BELAS " bil1 = "TIGA BELAS " bil1 = "EMPAT BELAS " bil1 = "LIMA BELAS " bil1 = "ENAM BELAS " bil1 = "TUJUH BELAS " bil1 = "DELAPAN BELAS " bil1 = "SEMBILAN BELAS " bil1 = "SE" bil1 = "DUA " bil1 = "TIGA " bil1 = "EMPAT " bil1 = "LIMA " bil1 = "ENAM " bil1 = "TUJUH " bil1 = "DELAPAN " bil1 = "SEMBILAN " bil1 = ""> 0) Then
If (z = 2 Or z = 5 Or z = 8 Or z = 11 Or z = 14) Then
Bil2 = "PULUH "
ElseIf (z = 3 Or z = 6 Or z = 9 Or z = 12 Or z = 15) Then
Bil2 = "RATUS "
Else
Bil2 = ""
End If
Else
Bil2 = ""
End If
If (y > 0) Then
Select Case z
Case 4
Bil2 = Bil2 + "RIBU "
y = 0
Case 7
Bil2 = Bil2 + "JUTA "
y = 0
Case 10
Bil2 = Bil2 + "MILYAR "
y = 0
Case 13
Bil2 = Bil2 + "TRILYUN "
y = 0
End Select
End If
Urai = Urai + Bil1 + Bil2
Wend
Urai = Urai + strPecahan
Terbilang = Urai & "RUPIAH"
End Function


Gambar 3
Setting nama class

Save project diatas dan pilih menu File | Make CRUFLFungsiku.dll. Jika tidak ditemukan error pada saat kompilasi maka akan dibuatkan file CRUFLFungsiku.dll.

Menambahkan Fungsi pada Crystal Report

Sekarang kita akan mencoba membuat laporan menggunakan Crystal Report dengan memanfaatkan fungsi diatas. Laporan yang akan dibuat diambil dari myDB.mdb yang mempunyai struktur sebagai berikut :

Nama Field Tipe Lebar
Nama Barang TEXT 50
Harga LONG N/A


Jalankan program Crystal Report, buat report baru dan tambahkan kedua field diatas. Pilih menu Insert | Formula Field, klik tombol New dan ketikan nama Formula, misalnya Terbilang dan klik tombol Ok. Pada Formula Editor ketikkan kode dibawah :

FungsikuKonversiTerbilang({Daftar Harga.Harga})

Atau anda bisa mencari fungsi diatas pada Additional Functions.


Gambar 4
Contoh laporan yang menggunakan fungsi terbilang

Jika anda perhatikan, nama fungsi yang dibuat pada Formula Editornya Crystal Report menjadi [Nama Project] [Nama Class] [Nama Fungsi] (lihat gambar 1), sebenarnya hal ini sudah diset sedemikian rupa oleh Crystal report sendiri agar nama fungsi tersebut benar-benar unik. Tetapi jika anda yakin fungsi yang anda buat sudah unik dan ingin menghilangkan nama project dan nama class didepan nama fungsi diatas, anda tinggal men-set variabel UFPrefixFunction menjadi FALSE, sebagai berikut :

Public UFPrefixFunctions as Boolean

Private Sub Class_Initialize()

UFPrefixFunctions = False

End Sub

Konversi Variabel

Pada saat diekseskusi, semua tipe variabel akan dikonversi oleh Crystal Report sebagai berikut :

Visual Basic Crystal Report
Integer NumberVar
Long NumberVar
Single NumberVar
Double NumberVar
Currency CurrencyVar
Date DateVar
Boolean BooleanVar
String StringVar
Error Handling

Sebenarnya jika muncul runtime error pada fungsi yang kita buat diatas, sudah ditangani secara otomatis oleh Crystal Report tetapi jika anda ingin mengontrol error yang muncul yang anda lakukan tinggal menambahkan variabel UFErrorText, misalnya sebagai berikut :

Public UFErrorText

Public Function Terbilang(ANGKA as Integer) as Boolean

On Error Goto err_Terbilang

...
...
...

err_Terbilang :
If Err.Number = 11 Then
UFErrorText = "Error : Division by Zero di modul Terbilang !"
End If
' Error selain 11 di handle oleh Crystal Report

End Function

Kesimpulan

Setelah membaca artikel ini saya harap dapat membuka wawasan dan pengetahuan anda dalam menggunakan Crystal Report dan memperkaya fungsinya dengan fungsi-fungsi buatan sendiri. Pada saat membuat program instalasi menggunakan Package and Deployment Wizard, pastikan file .DLL diatas diikutsertakan untuk mengindari runtime error pada Crystal Report.

Tips dan Trik Visual Basic

Membuat Form ke Tengah

Jika anda membuat anak form (form child) pada MDI form, maka defaultnya form tersebut tidak akan ketengah. Untuk membuat form tersebut ketengah anda menggunakan kode dibawah ini:

Public Sub CenterForm(frm As Form)
frm.Top = (Screen.Height - frm.Height) / 2
frm.Left = (Screen.Width - frm.Width) / 2
End Sub

Pindah Antar Kontrol Dengan Menggunakan Enter

Defaultnya untuk berpindah antar kontrol kita menggunakan tombol tab. Namun kita bisa merubah tombol tersebut dengan menggunakan fungsi SendKeys. Cara kerjanya adalah dengan mendeteksi agar ketika tombol enter ditekan kita mengirim tombol tab kepada program.

Anda dapat mendeteksinya dengan menaruh potongan program tersebut pada KeyPress event procedure dengan mengecheck apakah nilai dari KeyAscii parameter = 13.

Code

Sub Text1_KeyPress (KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{tab}"
KeyAscii = 0
End If
End Sub

Membuat Disable Tombol X Pada ControlBox

Pada module ketikan kode berikut ini:

Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Integer, ByVal bRevert _
As Integer) As Integer

Declare Function RemoveMenu Lib "User32" _
(ByVal hMenu As Integer, ByVal nPosition _
As Integer, ByVal wFlags As Integer) As Integer

Global Const MF_BYPOSITION = &H400

Lalu pada load event form1 ketikan:

Private Sub Form_Load()
SystemMenu% = GetSystemMenu(hWnd, 0)
Res% = RemoveMenu(SystemMenu%, 6, MF_BYPOSITION)
End Sub

Membuat Form Transparent

Module Code

Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_TRANSPARENT = &H20&
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_SHOWME = SWP_FRAMECHANGED Or _
SWP_NOMOVE Or SWP_NOSIZE
Public Const HWND_NOTOPMOST = -2

Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Declare Function SetWindowPos Lib "user32" _
(ByVal hwnd As Long, ByVal hWndInsertAfter _
As Long, ByVal x As Long, ByVal y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long

Private Sub Command1_Click()
SetWindowLong Me.hwnd, GWL_EXSTYLE, _
WS_EX_TRANSPARENT
SetWindowPos Me.hwnd, HWND_NOTOPMOST, _
0&, 0&, 0&, 0&, SWP_SHOWME
End Sub

Pada ShowInTaskbar property ubah menjadi False dan BorderStyle menjadi 0-None.

Membatasi Gerakan Kursor Dalam Form

Private Type RECT
left As Integer
top As Integer
right As Integer
bottom As Integer
End Type

Private Type POINT
x As Long
y As Long
End Type

Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)
Private Declare Sub GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT)
Private Declare Sub ClientToScreen Lib "user32" (ByVal hWnd As Long, lpPoint As POINT)
Private Declare Sub OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long)

Private Sub Form_Load()
Command1.Caption = "Limit Cursor Movement"
Command2.Caption = "Release Limit"
End Sub

Private Sub Command1_Click()
'membatasi pergerakan kursor sesuai batas Form
Dim client As RECT
Dim upperleft As POINT

GetClientRect Me.hWnd, client
upperleft.x = client.left
upperleft.y = client.top
ClientToScreen Me.hWnd, upperleft
OffsetRect client, upperleft.x, upperleft.y
ClipCursor client
End Sub

Private Sub Command2_Click()
'
mengembalikan pembatas kursor
ClipCursor ByVal 0&
End Sub

Private Sub Form_Unload(Cancel As Integer)
'mengembalikan pembatas kursor
ClipCursor ByVal 0&
End Sub


Membuat animasi Pre-Loader dengan Flash

  1. Gambarlah persegi panjang tanpa batas.
    Jika panel campuran warna Anda tidak terbuka tekan Shift + F8 untuk membukanya.
    Pilih persegi panjang Anda, buka panel warna dan memilih campuran linier dari menu drop down.




    Sekarang perubahan Anda linier mengisi sesuai, dengan putih di ujung kanan dan warna latar belakang Anda di ujun
    g lain.
  2. Pilih persegi panjang ini dan tekan F8 untuk mengubah segi empat ini untuk simbol. Nama simbol ini "Bar" dan memilih perilaku Grafis. Tekan OK.
  3. Tekan Ctrl + F8 untuk membuat klip video baru untuk efek preloader.
    Sebut saja "preloader_mc". Pilih klip video
    perilaku dan tekan OK.
  4. Gambarkan berkelok-kelok tanpa batas seperti yang ditunjukkan di bawah ini pada frame pertama dan tekan F5 pada frame 90.





  5. Masukkan lapisan baru dan menarik di bawah ini Layer1.
  6. Sisipkan simbol bar grafis menjadi lapisan baru "Layer2".
  7. Sesuaikan ketinggian bar seperti yang tingginya sama dengan atau sedikit lebih dari ketinggian zigzag.
  8. Posisi bar ini grafik seperti yang ditunjukkan di bawah ini.




  9. Tekan F6 pada frame 35. Menjaga framehead pada frame 35, tarik bar grafik ke sisi lain dari zigzag seperti yang ditunjukkan di bawah ini.




  10. Pilih frame antara frame 2 dan 34 dan pilih Motion dari menu pop-up tween di Properti inspektur.
  11. Pilih frame 40 dan tekan F6 untuk memasukkan keyframe baru di frame 40. Menjaga framehead pada frame 40 pilih bar grafis dan pergi ke menu utama
    Modify> Transform> Flip Horizontal.
  12. Pilih frame 85 dan tekan F6 untuk memasukkan keyframe baru di frame 85.Menjaga framehead pada frame 85 tarik bar simbol grafis untuk posisi awal seperti pada frame 1.
  13. Pilih frame antara frame 41 dan 84 dan pilih Motion dari menu pop-up tween di Properti inspektur.
  14. Pilih frame 90 dan tekan F5.

selamat datang