Ngebuat kalkulator dengan VB

0 comments
Assalamu’alaikum all, pa kabar nih ???

Mudah2 an baek-baek ja and pulsa ny masih banyak… biar forum ne tetep AXIS… (AXIS baek y…)

Oke langsung ja… jika sebelumnya kita dah buat program animasi, X ini kita akan coba ngebuat program kalkulator dengan VB. Untuk lebih jelasnya mari kita ikuti langkah-langkah pembuatan nya.

1. Seperti biasa buka program VB dan buat project baru…


2. Desain form dengan memasukkan textbox dan dua bh commandButton..

3. Selanjutnya untuk commandButton yang pertama, kita akan menjadikannya sebagai fungsia array sebanyak 10 bh dengan cara mengcopy paste control tersebut dan menyusunnya seperti desain dibawah ini

4. Setelah mendesai dan menambahkan fungsi array, sekarang tambahkan enam bh commandButton pada form anda

5. Selanjutnya Listing program…. Ketik listing program dibawah ne

Dim intLeft As Integer

Dim intRight As Integer

Dim intInProg As Integer

Dim intOperator As Integer

Dim intPrevOperator As Integer

Dim intClear As Integer

Private Sub Calculate()

If intInProg = 0 Then

intLeft = Int(Text1.Text)

intInProg = 1

Text1.Text = ""

intPrevOperator = intOperator

Exit Sub

Else

intRight = Int(Text1.Text)

Text1.Text = ""

End If

Select Case intPrevOperator

Case 1

intLeft = intLeft + intRight

intRight = 0

Text1.Text = intLeft

Case 2

intLeft = intLeft - intRight

intRight = 0

Text1.Text = intLeft

Case 3

intLeft = intLeft * intRight

intRight = 0

Text1.Text = intLeft

Case 4

intLeft = intLeft / intRight

intRight = 0

Text1.Text = intLeft

End Select

intPrevOperator = intOperator

intClear = 1

End Sub

Private Sub Command1_Click(Index As Integer)

If intClear = 1 Then

Text1.Text = ""

intClear = 1

End If

If Index <> 10 Then

Text1.Text = Text1.Text & (Index + 0)

Else

Text1.Text = Text1.Text & "0"

End If

End Sub

Private Sub Command2_Click()

Text1.Text = ""

intLeft = 0

intRight = 0

intOperator = 0

intPrevOperator = 0

intInProg = 0

End Sub

Private Sub Command3_Click()

intOperator = 1

Calculate

End Sub

Private Sub Command4_Click()

intOperator = 2

Calculate

End Sub

Private Sub Command5_Click()

intOperator = 3

Calculate

End Sub

Private Sub Command6_Click()

intOperator = 5

Calculate

End Sub

Private Sub Command7_Click()

intOperator = 4

Calculate

End Sub

Private Sub Command8_Click()

Text1.Text = Text1.Text & "."

End Sub

Private Sub Form_Load()

intInProg = False

Text1.Text = ""

Command1(0).Caption = "0"

Command1(1).Caption = "1"

Command1(2).Caption = "2"

Command1(3).Caption = "3"

Command1(4).Caption = "4"

Command1(5).Caption = "5"

Command1(6).Caption = "6"

Command1(7).Caption = "7"

Command1(8).Caption = "8"

Command1(9).Caption = "9"

Command2.Caption = "Delete"

Command3.Caption = "+"

Command4.Caption = "-"

Command5.Caption = "*"

Command6.Caption = "="

Command7.Caption = "/"

Command8.Caption = "."

End Sub

6. TAMAT … run programnya… (akhirnya selesai juga…)

Tampilan program

ngebuat Animasi Emotion dengan VB

0 comments


Assalamu’alaikum all, pa khabar nih ???

Ane doain boy-boy semua tetap berada dalam lindungan Allah SWT yang telah

memberikan kita hidayah (PULSA tentunya…) sehingga kita semua dapat berkumpul bersama-sama di forum ini, tidak lupa pula sha... ups, kok jadi macam ceramah ya ??? Wekekeke... ya sudah lah

Okelah kalaw begitu, langsung aja… sebenarnya ni adalah program pertama ane saat baru belajar pemograman VB, jadi bagi boy-boy yang baru belajar VB (newbies… sama kyak ane… ) mungkin program ne bsa di jadiin alternatif….

Disini kita akan membuat program animasi bergerak-gerak, kesamping, keatas, kebawah, kekanan, tw ke kiri tw kmana jaboy-boy mw.. Untuk lebih jelasnya silahkan ja boy-boy ikutin langkah-langkah pembuatan nya……….

1.Bukalah program VB 6.0, kemudian buatlah project baru…(new project)



2.Desain form dengan memasukkan sebuah timer, dua bh command button dan lima bh image, bukan lima image bh loh… (Oy..jangan lupa masukkan garam nya biar g ambar… he1000X)




3. Kemudian sempurnakan desain form nya dengan menambahkan gambar kedalam control image nya… terserah ja gambarnya…disini ane memasukkan gambar-gambar emotion,,



4. OK… sampai disini pekerjaan desain form dh selesai.. selanjutnya listing program…

( hal yang paling membosankan…) kalaw g mw bosan, silahkan copy paste ja listing program dibawah ne…

Private Sub Command1_Click()

Timer1.Enabled = True

End Sub

Private Sub Command2_Click()

Timer1.Enabled = False

Image1.Visible = True

Image2.Visible = False

Image3.Visible = False

Image4.Visible = False

Image5.Visible = False

End Sub

Private Sub Form_Load()

Timer1.Interval = 350

Timer1.Enabled = False

Form1.BackColor = vbWhite

Command1.Caption = "START"

Command2.Caption = "STOP"

Image1.Visible = True

Image2.Visible = False

Image3.Visible = False

Image4.Visible = False

Image5.Visible = False

End Sub

Private Sub Timer1_Timer()

If Image1.Visible = True Then

Image1.Visible = False

Image2.Visible = True

Image3.Visible = False

Image3.Visible = False

Image4.Visible = False

Image5.Visible = False

ElseIf Image2.Visible = True Then

Image1.Visible = False

Image2.Visible = False

Image3.Visible = True

Image4.Visible = False

Image5.Visible = False

ElseIf Image3.Visible = True Then

Image1.Visible = False

Image2.Visible = False

Image3.Visible = False

Image4.Visible = True

Image5.Visible = False

ElseIf Image4.Visible = True Then

Image1.Visible = False

Image2.Visible = False

Image3.Visible = False

Image4.Visible = False

Image5.Visible = True

ElseIf Image5.Visible = True Then

Image1.Visible = True

Image2.Visible = False

Image3.Visible = False

Image4.Visible = False

Image5.Visible = False

End If

End Sub

5. TAMAT (kayak film ja…) tinggal di run ja program ny dengan menekan F5…


5.JPG

Tampilan program

Oy,, ,hampir lupa… untuk megganti kecepatan animasinya boy-boy smua bsa mengubah interval timer nya sesuai selera Anda….klw pengen cepat perkecil interval timer nya dan sebaliknya…


Optimasi Qury

0 comments
Optimasi Query

POKOK BAHASAN:

* Optimasi Perintah SQL
* Informasi Jalur Akses Query
* Faktor-faktor yang berpengaruh terhadap kecepatan akses data

PENDAHULUAN

Data yang tersimpan dalam database semakin lama akan semakin besar ukuran atau

volumenya. Kalau tidak didukung dengan kecepatan akses yang memadai maka akan

semakin menurun unjuk kerjanya. Ukuran unjuk kerja dalam hal ini kecepatan akses

data dipengaruhi oleh banyak faktor. Pada bab ini akan membahas tentang optimasi

query serta faktor-faktor lain yang berpengaruh terhadap optimalisasi kecepatan akses

data.

OPTIMASI PADA PERINTAH SQL

Desain aplikasi saja tidak cukup untuk meningkatkan unjuk kerja harus didukung

dengan optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam

mendesain database, seringkali lokasi fisik data tidak menjadi perhatian penting.

Karena hanya desain logik saja yang diperhatikan. Padahal untuk menampilkan hasil

query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Inti dari

optimasi query adalah meminimalkan “jalur” pencarian untuk menemukan data yang

disimpan dalam lokasi fisik.

Index pada database digunakan untuk meningkatkan kecepatan akses data. Pada

saat query dijalankan, index mencari data dan menentukan nilai ROWID yang

membantu menemukan lokasi data secara fisik di disk. Akan tetapi penggunaan index

yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini kecepatan akses

data.

Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan

kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :

CREATE INDEX idx_kota_prop_kodepos

ON karyawan(kota, propinsi, kode_pos)

TABLESPACE INDX;

Kemudian user melakukan query sebagai berikut :

SELECT * FROM karyawan WHERE propinsi=’Jawa Barat’;

Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama

(kota) tidak digunakan dalam klausa WHERE. Jika user sering melakukan query ini,

maka kolom index harus diurutkan menurut propinsi. Selain itu, proses pencarian data

akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus

mencari di beberapa datafile yang terletak pada block yang berbeda.

Misal pada perintah SQL berikut ini :

SELECT * FROM karyawan

WHERE id BETWEEN 1010 AND 2010;

Query ini akan melakukan “scan” terhadap sedikit data block jika tabel karyawan

diatas diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang

berbeda-beda maka tabel disimpan dalam flat file, kemudian tabel diekspor dan

diurutkan sesuai kebutuhan.

Alternatif yang lain, bisa digunakan perintah untuk membuat tabel lain yang

memiliki urutan yang berbeda dari tabel asal, seperti perintah SQL berikut :

CREATE TABLE karyawan_urut

AS SELECT * FROM karyawan

ORDER BY id;

Pada SQL diatas, tabel karyawan_urut berisi data yang sama dengan tabel karyawan

hanya datanya terurut berdasarkan kolom id.

Tips Optimasi Query MySql

Berikut akan saya berikan tips optimasi di MySQL yang sering saya digunakan.

1. Untuk join tabel sebaiknya gunakan inner join daripada left join atau right join.

2. Cek indek-indek di tabel anda terutama untuk field-field yang sering di join. Secara default hal ini sudah dilakukan saat anda membuat primary key dan foreign key. Jadi anda jangan lupa untuk memasang primary dan foreign key di tabel anda..

3. Untuk nilai-nilai unik gunakan AutoIncrement.

4. Gunakan persistent connection(koneksi yang terus menerus). Dalam artian anda dilarang untuk membuka tutup koneksi. Di help Mysql dijelaskan bahwa kalau anda membuka tutup koneksi maka bisa menyebabkan connection overhead.

5. Hindari query yang kompleks untuk tabel yang menggunakan MyISAM dan sering diupdate. Jadi kalau pengin aman gunakan Engine InnoDB saja.

6. Gunakan Explain sintak untuk mengetahui informasi dari pernyataan Select

7. Sebisa mungkin hindari Sub Query.

Berdasar pengalaman saya sering terjadi kasus dimana saya di haruskan sub query yang menggunakan klausa “not in”. Contoh:

Select f.kode_faktur,f.tanggal, from faktur f where f.kode_faktur not in(select kode_faktur from gudang_keluar).

Untuk meningkatkan kecepatan akses datanya, anda dapat menggantinya dengan sintak berikut :

Select f.kode_faktur,f.tanggal from faktur f left join gudang_keluar g on f.kode_faktur=g.kode_faktur where g.kode_faktur is null

Di samping mempengaruhi kecepatan, berdasar pengalaman saya juga, klausa not in untuk jumlah data yang besar kadang hasil yang di dapat tidak sesuai dengan yang saya harapkan.

Tips-tips di atas adalah berdasar pengalaman saya. Kalau anda pengin lihat lebih detail lagi lihat saja di helpnya mysql, lebih komplet lagi plus menambah pusing kepala.

Tips Optimasi dan Mengontrol MySQL

Buat anda yang baru saja mengenal database server jenis MySQL dan melakukan programming dengan sedikit data ataupun mempunyai pangakses sedikit tidak terlalu bermasalah dengan load server yang makin hari semakin berat. Saya pernah mengalami server hang karena kesalahan query yang melakukan join dua tabel yang masing-masing mempunyai record lebih dari 100 ribu record berisi postingan blog berbentuk text. Kejadian itu hingga menyebabkan server hang walaupun kondisi server masih terbilang bagus. Waktu itu saya menggunakan server bersistem operasi Solaris dengan memori 4 GB. Tapi tetap saja locked.

Saya coba evaluasi beberapa query dengan menginstall mtop terlebih dahulu, mungkin buat anda pengguna hosting akan kesulitan untuk menggunakan mtop, tapi coba saja yang versi webnya. dengan mtop saya bisa melakukan control untuk query yang membutuhkan resources yang sangat besar. bahkan saya bisa melihat query mana yang harus diperbaiki.

Setelah dievaluasi maka munculah beberapa tips yang bisa digunakan antara lain:

1. Lakukan konfigurasi maksimal pada my.cf, tentu cara ini hanya bisa dilakukan oleh anda yang mempunyai server sendiri.

2. Sebisa mungkin hindari join table, apalagi yang datanya sama-sama besar. Untuk join tabel sebaiknya gunakan inner join daripada left join atau right join.

3. Check indek-indek di tabel anda terutama untuk field-field yang sering di join. Secara default hal ini sudah dilakukan saat anda membuat primary key dan foreign key. Jadi anda jangan lupa untuk memasang primary dan foreign key di tabel anda.

4. Gunakan koneksi yang terus menerus, dengan kata lain jangan melakukan buka dan tutup konek kedalam mysql. hal ini justru akan semakin berat

5. Hindari penggunakan asterik atau bintang seperti select * from tbl_contoh, cara ini memang mudah dilakukan tapi jangan salah dengan melakukannya akan membuat database anda pusing untuk menampilkan data, jadi gunakan field yang memang benar-benar dibutuhkan misalkan select id,nama from tbl_contoh.

6. Lakukan clear memory dengan menambahkan script mysql_free_result($query) setelah melakukan query, cara ini cukup ampuh untuk mengurangi load server dan memori.

7. Pisahkan tabel yang sering sekali dilakukan update, misalkan saya mempunyai tabel member yang beranggotakan 100 ribu orang, untuk membuat statistik untuk member maka kita seharusnya membuat tabel statistik member yang lebih sederhana dan updating data lastlogin atau berapa kali login dilakukan di tabel statistik

8. Lakukan backup secara berkala, saya termasuk orang yang ceroboh untuk masalah ini dan beberapa kali melakukan hal yang sama, jujur dari tahun 2003 saya sudah 2 kali menangis akibat kehilangan ribuan data mysql yang sangat penting. Saat ini saya gunakan mirroring dan replikasi mysql ke server lain supaya lebih aman.

Inti dari semuanya adalah saya mengajak anda semua jangan malas untuk menghindari * pada query atau menyisipkan msql_free_result di akhir query. karena semuanya sangat berpengaruh.

PERENCANAAN EKSEKUSI

Bagaimana cara melihat jalur akses yang akan digunakan database saat

melakukan query ? Pada Database Oracle, informasi ini dapat dilihat dengan

menggunakan perintah explain plan, yang akan memberi informasi tentang rencana

eksekusi dari suatu query. Informasi ini disimpan dalam tabel PLAN_TABLE yang

terdapat di schema user yang mengeksekusi perintah tersebut.

Sebelum melakukan perintah explain plan, terlebih dahulu buat table

PLAN_TABLE dengan menggunakan script utlxplan.sql yang diambil dari

\%ORACLE_HOME%\RDBMS\ADMIN.

Setelah itu table PLAN_TABLE dapat digunakan seperti contoh berikut :

SQL> explain plan

Set statement_id=’test1’

Into plan_table for

Select * from karyawan where gaji=2000000;

Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama test1 yang

terdefinisi pada kolom statement_id.

Untuk melihat rencana eksekusi dari test1, digunakan perintah SELECT berikut :

SELECT LPAD(’ ’,2*Level)||Operation||’ ’||Options||’ ’||Object_Name Q_Plan

FROM plan_table

WHERE statement_id=’test1’

CONNECT BY PRIOR AND statement_id=’test1’

START WITH AND statement_id=’test1’;

Contoh hasil dari eksekusi query tersebut :

Q_PLAN

——————————————————————–

SELECT STATEMENT

TABLE ACCESS FULL KARYAWAN

Output tersebut dibaca mulai dari yang indent-nya paling dalam yaitu : TABLE

ACCESS FULL KARYAWAN. Dikarenakan klausa WHERE melibatkan kolom gaji

namun kolom gaji tidak ada index-nya, maka Oracle melakukan full table scan. Setelah

seluruh tabel karyawan selesai dibaca, selanjutnya adalah SELECT STATEMENT yang

berfungsi untuk menampilkan hasil query.

FAKTOR LAIN YANG BERPENGARUH TERHADAP KECEPATAN

AKSES DATA

Faktor lain yang berpengaruh terhadap kecepatan akses data, tidak hanya terletak

pada optimasi perintah SQL, tapi terhadap hal-hal lain yang berpengaruh. Diantaranya

adalah optimasi aplikasi dan penggunaan cluster dan index. Hal yang akan dibahas

dalam optimasi query berikut ini tidak melibatkan penggunaan komponen yang ada

dalam Arsitektur database engine, misal pada database Oracle kecepatan akses data

dipengaruhi oleh penyesuaian pada shared pool, buffer cache, redo log buffer dan sistem

operasi yang digunakan.

OPTIMASI APLIKASI

Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah akses

terhadap data sudah efisien. Efisien dalam hal penggunaan obyek yang mendukung

kecepatan akses, seperti index atau cluster. Kemudian juga bagaimana cara database didesain.

Apakah desain database sudah melakukan normalisasi data secara tepat.

Kadangkala normalisasi sampai level yang kesekian, tidak menjamin suatu

desain yang efisien. Untuk membuat desain yang lebih tepat, kadang setelah melakukan

normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang hubungannya one-toone

dan sering diakses bersama lebih baik disatukan dalam satu tabel.

CLUSTER DAN INDEX

Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda

dalam suatu struktur fisik disk yang berdekatan. Konfigurasi ini bermanfaat untuk

akses data dari beberapa tabel yang sering di-query. Penggunaan cluster secara tepat

dilaksanakan setelah menganalisa tabel-tabel mana saja yang sering di-query secara

bersamaan menggunaan perintah SQL join.

Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang

berada pada klausa WHERE, maka harus digunakan index yang melibatkan kolom

tersebut. Penggunaan index yang tepat bergantung pada jenis nilai yang terdapat dalam

kolom yang akan diindex. Dalam RDBMS Oracle, index B-Tree digunakan untuk

kolom yang mengandung nilai yang cukup bervariasi, sedangkan untuk nilai yang tidak

memiliki variasi cukup banyak, lebih baik menggunakan index bitmap.

RINGKASAN:

•Data yang tersimpan dalam jumlah yang sangat besar, Terdapat aturan system

informasi dalam organisasi, system basis data dilihat sebagai bagian system

informasi dalam aplikasi berskala besar.

•Untuk meningkatkan unjuk kerja tidak hanya desain logik saja yang diperhatikan

tapi juga struktur fisik penyimpanan data.

•Penggunaan Index pada database secara tepat, dapat digunakan untuk

meningkatkan kecepatan akses data.

•Informasi tentang jalur akses yang digunakan oleh database untuk melaksanakan

query dalam database Oracle dapat dengan menggunakan perintah explain plan.

•Selain optimasi perintah SQL, faktor lain yang berpengaruh terhadap kecepatan

akses data adalah optimasi aplikasi dan penggunaan cluster dan index.

•Pada sebuah database engine semisal pada database Oracle kecepatan akses data

dipengaruhi oleh beberapa komponen arsitektur pembentuknya seperti shared

pool, buffer cache, dan redo log buffer.

•Optimasi aplikasi tergantung pada efisiensi penggunaan obyek yang mendukung

kecepatan akses seperti index atau cluster, dan normalisasi data pada desain

database.

Non-Deterministic Finite Automata Dengan ε-Move

0 comments
Non-Deterministic Finite Automata Dengan ε-Move
older post