Sabtu, 28 Juni 2014

OOAD



Analisa Dan Desain Dengan
Menggunakan Obyek Oriented
(OOAD)

Dalam mempelajari analisa dan desain dengan menggunakan objek orientasi (OOAD) kita harus mengerti dulu apa itu OOAD (Object Oriented Analysis and Design)?

OOAD adalah metode analisis yang memerikasa requirements dari sudut pandang kelas kelas dan objek yang ditemui dalam ruang lingkup permasalahan yang mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek system atau subsistem.

Dalam tugas ini saya mengambil materi dari 3 referensi, menurut mereka :

Konsep OOAD mencakup analisis dan desain sebuah sistem dengan pendekatan objek, yaitu analisis berorientasi objek (OOA) dan desain berorientasi objek (OOD).

OOA adalah metode analisis yang memeriksa requirement (syarat/keperluan) yang harus dipenuhi sebuah sistem dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam suatu permasalahan.
OOD adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem.
Beberapa konsep dalam OOAD :
Objek (object)                                                                                                                   
  Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Sebuah objek memiliki       
  keadaan sesaat yang disebut state (attribute). 
  Sebagai contoh Attribute (State) dari pesawat adalah nama pesawat, tipe, warna, tahun produksi,
  roda, dll. Sedangkan Behavior dari pesawat adalah cara menghidupkan mesin, cara menerbangkan
  pesawat (take off), cara menurunkan pesawat (landing), dll.

 Kelas (class)
  Kelas merupakan gambaran sekumpulan Objek yang terbagi dalam atribut, operasi, metode,
  hubungan, dan makna yang sama.
  Contoh pesawat Boeing 737 dibuat dengan rancangan yang sama, rancangan pesawat ini disebut
  kelas. Hasil rancangan itu menjadi pesawat Boeing 737 yang disebut objek. Pesawat-pesawat hasil
  rancangan tadi bisa memiliki warna, nama yang berbeda-beda tergantung perusahaan
  penerbangannya. Disini jelas bahwa objek memiliki sifat independen. Objek adalah instance dari
  kelas, satu kelas bisa memiliki beberapa objek.
Kotak Hitam (black boxes)
  Sebuah objek adalah kotak hitam. Konsep ini menjadi dasar implementasi objek. Dalam
  operasi OO hanya developer yang dapat memahami detail proses yang ada didalam kotak tersebut,
  sedangkan user tidak perlu mengetahui apa yang dilakukan yang penting mereka dapat 
  menggunakan objek untuk memproses kebutuhan mereka. Kotak hitam berisi kode dan data.
  Asosiasi dan Agregasi
  Asosiasi adalah hubungan yang mempunyai makna antara sejumlah objek. Asosiasi              
  digambarkan dengan sebuah garis penghubung diantara objeknya. Contohnya : Asosiasi   karyawan 
  dengan unit kerja. Setiap karyawan bekerja di satu unit kerja, sedangkan unit kerja dapat memiliki 
  beberapa karyawan.
  Agregasi adalah bentuk khusus sebuah asosiasi yang menggambarkan seluruh bagian pada suatu 
  objek merupakan bagian dari objek yang lain. Contohnya : Kopling dan piston adalah bagian dari
  mesin, sedangkan mesin, roda, body merupakan bagian dari sebuah mobil.

Metodologi dalam OOAD
 
Metodologi adalah cara systematis untuk mengerjakan analisys and design. Dengan metodologi, pihak yang membangun system software dapat merencanakan dan mengulangi pekerjaan dilain waktu. Metodologi juga menghilangkan perbedaan notasi untuk suatu hal yang sama karena setiap orang akan berbicara dalam bahasa yang sama.
Metodologi pengembangan sistem berorientasi objek mempunyai tiga karakteristik utama  yaitu :
Encapsulation (Pengkapsulan)
Encapsulation merupakan dasar untuk pembatasan ruang lingkup program terhadap data yang diproses. Data dan prosedur atau fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak dapat mengaksesnya. Data terlindung dari prosedur atau objek lain, kecuali prosedur yang berada dalam objek itu sendiri.

Inheritance (Pewarisan)
Inheritance adalah teknik yang menyatakan bahwa anak dari objek akan mewarisi data/atribut dan metode dari induknya langsung. Atribut dan metode dari objek dari objek induk diturunkan kepada anak objek, demikian seterusnya. Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki bersama di anatara kelas yang mempunyai hubungan secara hirarki. Suatu kelas dapat ditentukan secara umum, kemudian ditentukan spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan ditambah dengan sifat unik yang dimilikinya. Kelas Objek dapat didefinisikan atribut dan service dari kelas Objek lainnya. Inheritance menggambarkan generalisasi sebuah kelas.

 Polymorphism (Polimorfisme)
Polimorfisme yaitu konsep yang menyatakan bahwa seuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. Kemampuan objek-objek yang berbeda untuk melakukan metode yang pantas dalam merespon message yang sama.
Seleksi dari metode yang sesuai bergantung pada kelas yang seharusnya menciptakan Objek.



Teknik Pemodelan dalam OOAD
 Model Objek
Model objek menggambarkan struktur statis dari suatu objek dalam sistem dan relasinya
yang berisikan diagram objek. Diagram objek adalah graph dimana nodenya adalah kelas yang       mempunyai relasi antar kelas.    

 Model Dinamik
Model dinamik menggambarkan aspek dari sistem yang berubah setiap saat. Dipergunakan untuk menyatakan aspek kontrol dari system yang berisikan state diagram. State diagram adalah graph dimana nodenya adalah state dan arc adalah transisi antara state yang disebabkan oleh event.

Model Fungsional
Model fungsional menggambrakan transformasi nilai data di dalam sistem.Berisikan data flow diagram. DFD adalah suatu graph dimana nodenya menyatakan proses dan arcnya adalah aliran data.



Referensi :

RATIONAL UNIFIED PROCESS

RATIONAL UNIFIED PROCESS

Di dalam perkembangan tehnologi komputer akan kebutuhan manusia yang semakin pesat membuat para pembuat software membuat sebuah perangkat lunak yang bisa memudahkan para penggunanya. Dilatar belakangi dengan perkembangan tehnologi itu maka di ciptakan perangkat lunak dengan berorientasi objek. Salah satunya adalah Rational Unified Process.
Pada 1997, RUP telah memperoleh Verdix, Objectory, Persyaratan, SQA (Software Quality Assurance), Kinerja Kesadaran, dan Pure-Atria. Menggabungkan pengalaman dasar pengguna-pengguna ini menyebabkan artikulasi tujuh praktik terbaik rekayasa perangkat lunak modern:

1. Mengembangkan iteratively, dengan risiko sebagai sopir iterasi utama
2. Mengatur persyaratan
3. Menggunakan arsitektur berbasis komponen
4. Lunak model visual
5. Terus kualitas verifikasi
6. Kontrol perubahan
7. Customization.

Cara kerja RUP itu didasarkan pada 6 kunci prinsip bagi perkembangan bisnis yang terkendali yaitu :


    1. Proses  penyesuaian terhadap lingkungan, pekerjaan
    2. Menyeimbangkan pengutamaan dari para stakeholders
    3. Melakukan kerjasama antar tim
    4. Mendemonstrasikan hasil-hasil yang ada secara berulang-ulang
    5. Menaikkan tingkat abtraksi dari sebuah software
    6. Pemusatan pada kualitas secara terus-menerus

RUP berbasis konsep object oriented, dengan aktifitas yang berpusat pada pengembangan model dengan menggunakan Unified Model Language (UML). Dibawah dapat dilihat bahwa RUP memiliki gambaran, yaitu:

Dimensi pertama digambarkan secara horizontal. Dimensi ini merepresentasi waktu dan   menunjukkan aspek dinamis dari proses, yaitu siklus, tahap, iterasi, dan milestone.Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition.
Dimensi kedua digambarkan secara vertikal. Dimensi ini merepresentasikan aspek statis dari          proses, yaitu aktivitas, artifak, pelaksana kerja (worker) dan aliran kerja (workflow)  empat elemen penting, yakni who is doing, what, how dan when.




Model Proses Rational Unified Process (RUP)
RUP adalah proses pengembangan perangkat lunak berbasis UML (Unified Modeling Language) yang mempunyai karakteristik:

1. Berulang (iterative)
    Tahap pengembangan untuk setiap produk yang diserahkan (release) dilaksanakan secara berulang.
2. Architecture centric
     Menggunakan arsitektur sistem sebagai artifak utama untuk konseptualisasi, konstruksi, pengelolaan,    
     dan penyusunan sistem selama pengembangan.
3. Use case-driven
     Menggunakan use case sebagai artifak utama untuk menetapkan perilaku sistem yang diinginkan dan  
     untuk mengkomunikasikan perilaku sistem tersebut kepada parastakeholder sistem.
4. Risk-driven
     Menghilangkan atau mengurangi risiko-risiko yang dapat menghambat kesuksesan proyek.

Tahapan-tahapan RUP

Tahap (phases) pelaksanaan pengembangan pada RUP meliputi:

1. Permulaan (inception)
     Tahap inception fokus pada penentuan manfaat perangkat lunak yang harus dihasilkan, penetapan  
     proses-proses bisnis (business case), dan perencanaan proyek.
2. Pemerincian (elaboration)
     Tahap untuk menentukan use case (set of activities) dari perangkat lunak berikut rancangan  
     arsitekturnya.
3. Konstruksi (construction)
     Membangun produk perangkat lunak secara lengkap yang siap diserahkan kepada pemakai.
4. Transisi (transition)
     Menyerahkan perangkat lunak kepada pemakai, mengujinya di tempat pemakai, dan memperbaiki
     masalah-masalah yang muncul saat dan setelah pengujian.

Ada dua jenis aliran kerja (workflow) pada RUP, yaitu aliran kerja utama dan aliran kerja pendukung.






Aliran Kerja Utama

1. Pemodelan bisnis (business modeling)
    Mendeskripsikan struktur dan proses-proses bisnis organisasi.
2. Kebutuhan (requirements)
    Mendefinisikan kebutuhan perangkat lunak dengan menggunakan metode use case.
3. Analisis dan perancangan (analysis and design)
    Mendeskripsikan berbagai arsitektur perangkat lunak dari berbagai sudut pandang.
4. Implementasi (implementation)
    Menulis kode-kode program, menguji, dan mengintegrasikan unit-unit programnya.
5. Pengujian (testing)
    Mendeskripsikan kasus uji, prosedur, dan alat ukur pengujian.
6. Deployment
    Menangani konfigurasi sistem yang akan diserahkan.


Aliran Kerja Pendukung

1. Manajemen konfigurasi dan perubahan (configuration and change management)
    Mengendalikan perubahan dan memelihara artifak-artifak proyek.
2. Manajemen proyek (project management)
    Mendeskripsikan berbagai strategi pekerjaan dengan proses yang berulang.
3. Lingkungan (environment)
    Menangani infrastruktur yang dibutuhkan untuk mengembangkan sistem.


Penggunaan Rational Unified Process (RUP) dalam proses pengembangan perangkat lunak  unified modeling language.
Ciri khas dari RUP dalam proses pengembangan perangkat lunak berbasis UML adalah adanya metode use case yang digunakan
Use case diagram digunakan untuk memodelkan bisnis proses bedasarkan pengguna system. Use case terdiri atas diagram use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan system aplikasi.
Use case merepresentasikan operasi-operasi yang dilakukan oleh actor. Use casedigambarkan berbentuk elips dengan nama operasi di dalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case. Sehingga disini dapat disimpulkan bahwa Use case mengadopsi Object Oriented Programming (OOP) karena memisahkan operasi-operasi maupun komponen yang terlibat di dalamnya ke dalam sebuah objek-objek yang berbeda.

REFERENSI :


Minggu, 04 Mei 2014

Absen menggunakan Vb.net

Absen menggunakan Vb.net
Pertama" buat seperti gambar di bawah ini..
gbr1_absn_vbii
Nah buat formnya seperti ini form ini belum saya running jika sudah di running, maka hasilnya:
gbr2_absn_vbii
Pada bagian form ini kita perlu beberapa komponen
DataGrid (sebagai jembatan)
Dbgrid (Sebagai penampil hasil), seperti pada gamabar kedua tersebut jika anda melihat ada DataGrid yang lain anda tidak perlu membuatnya anda hanya perlu satu DataGrid Saja OK!,.
DataGrid 1 pada bagian properties ubah menjadi :
Name=Data1
Caption=(Terserah anda)
DataBaseName=Path tempat anda menyimpaan data basenya contoh : (D:\LTIHAN . VB\Absensi\tabel1.mdb).
Recordsource=Tabel yang dibuat oleh Data Input sebelumnya missal : Tabel2,
recordsetType=1-type DynaSet
Untuk DbGrid1 di bagian properties:
Name=DbGrid1
Caption=terserah anda
DataSource=Data1.
Type dynaset ini berpengaruh terhadap pengurutan fileds pada DbGrid, karena dengan properties ini field tidak diurut berdasrakan kunci, tapi jika menggunkan 0-Table, maka akan diurut berdasar Index.
Kemudain untuk nama=>text3 misalnya prpertiesnya:
DataSource=Data1
dataField=nama,
lajutkan dengan text=nip ,tex=tanggal, text=kelas ,pada frame sebelum absensi (text=alpa, text=izin ,text=sakit ,text=masuk ,text=total) lakukan sama halnya pada text3.
Makanya pada saat gambar dua di running alpa dll masih dalm keadan kosong karena memang belum saya isi.
Pada
option 1=>Alpa ubah Caption=Alpa
Option2=>Masuk ubah Caption=Masuk
Option3=>Izin ubah Caption=Izin
Option4=>Sakit ubah Caption=Sakit
Nah sekarang kita buat script di masing-masing Option untuk
Option1=>Alpa:
Private Sub Option1_Click()
If Option1.Value = True Then
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Text10.Text = Val(Text6.Text) + 1
Else
Text10.Text = Val(Text6.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text10.Text) + Val(Text11.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Perlu di perhatikan saya tidak mengubah text -text yang saya buat memang sengaja tidak saya ubah, Karena inti dari sebuah program adalah hanya si programerlah yang tahu dari maksud kode yang dia buat..he…he…
Pada text11.text=text7.text, maksudnya ketika option1. diberikan titik maka text11.text akan disi oleh data yang ada pada text7.text.
Text11.text=>izin akan tetap berisi satu pada text7.text=>setelah basen , begitu pula pada saat option2 .value =true, maka text10.text=text6.text (seudah absent).
Untuk text10.text jika Option1.value=True maka text10.text(sebelum absent)=text6.text(sesudah absent) akan ditambah satu, sehingga menjadi=val(text6.text)+1, dan anda jangan berpikir jika data ini akan langsung disimpan tapi Cuma di input hanya saja kita menambahkan command button1=Save, dari pada pusing-pusing terusin scriptnya untuk
Option2=>Izin:
Private Sub Option2_Click()
If Option2.Value = True Then
Text11.Text = Val(Text7.Text) + 1
Text10.Text = Text6.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Else
Text11.Text = Val(Text7.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Option3=>Sakit:
Private Sub Option3_Click()
If Option3.Value = True Then
Text12.Text = Val(Text8.Text) + 1
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text14.Text = Text2.Text
Else
Text12.Text = Val(Text8.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text12.Text) + Val(Text11.Text) + Val(Text10.Text) + Val(Text14.Text)
End Sub
Option4=>Masuk:
Private Sub Option4_Click()
If Option4.Value = True Then
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Val(Text2.Text) + 1
Else
Text14.Text = Val(Text2.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Nah kalau anda melihat text13, itu bermaksud untuk mencari jumlah seluruh absensi baik sakit, izin,masuk dan alpa akan di jumlah menjadi satu. Sebenernya anda juga bisa membuat model seperti tanpa bantuan text sedudah absent tapi cukup mennggunkan database buffer yang sifatnya menyimpan dta smentara dan ketika di klik save maka Database akan dikosongkan kembali, nah metodhe ini saya terapkan pada koreksi soal , untuk yang ini silahkan coba dicari sendiri ya?…he…he.. .
Ok karena database kita bersifat global , dan aplikasi ini kita gunakan untuk absensi siswa , maka kita tidak mungkin mengabsen secara acak berdasar Nim siswa , dan biasanay mengabsen berdasarkan Kelas oleh karena itu kita perlu pengunci untuk mengunci, misalnya saya mau absent kelas XI-A maka data yang akan tampil hanya Kelas XI-A nah sekarang kita ketik pada command4=> Lock :
Private Sub Command4_Click()
Data1.RecordSource = “select*FROM tabel2 WHERE bagian LIKE ‘*” & Text1.Text & “*’”
Data1.Refresh
DBGrid1.Refresh
Text1.SetFocus
End Sub
Oke sakarang kita coba Run tapi sebelumnya kita klik-> Project-> ProjectProperties-> jika muncul jendela kayak gini tentukan mana dulu yang akan kita jalankan kayak gini nih,
gbr3_absn_vbii
Kalau udah klik Ok.
gbr4_absn_vbii1Nah sekarang ketikin XI-A kayak yang saya contohkan terus clik Lock.
Pada bagian Dbgrid1, ditampilkan hanya data kelas XI-A aja, nah sekarang silahkan klik Option1=>Alpa, dan perahtikan pada bagian frame sesudah absent jika muncul angka 1 pada bagian Alpa maka scrip telah berjalan dengan benar, selanjutnya apakah kita akan menyimpan hasil absensi tersebut ?, pasti dong yaiyalah kan emang itu yang kita maksud daripada pusing mendingan ketikin scripnya di command=>save:
Private Sub Command1_Click()
If Text16.Text = “” Or Text3.Text = “” Or Text5.Text = “” Then
MsgBox (“Absensi Telah Selesai / Tidak Ada Object Yang akan di Simpan”)
ElseIf Text16.Text = Data1.Recordset.Fields(“nip”) And Option1.Value = True Or Option2.Value = True Or Option3.Value = True Or Option4.Value = True Then
x=MsgBox (“Thank’s you “, vbOKOnly + vbInformation, “Aplication For Master”)
Data1.Recordset.Edit
Data1.Recordset.Fields(“alpa”) = Text10.Text
Data1.Recordset.Fields(“izin”) = Text11.Text
Data1.Recordset.Fields(“sakit”) = Text12.Text
Data1.Recordset.Fields(“masuk”) = Text14.Text
Data1.Recordset.Fields(“total”) = Text13.Text
Data1.Recordset.Fields(“tgl”) = Label16.Caption
Data1.Recordset.Update
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
DBGrid1.Refresh
Data1.Recordset.MoveNext
Else
Z = MsgBox(“Anda Belum Memilih Keterangan Absesnsi!”, vbOKOnly + vbInformation, “Informasi”)
End If
End Sub
Untuk mencegah kesalahan ,seperti menyimpan data kosong ,object yang diabsensi sudah salah,Tanpa memilih option, jika hal ini dilakukan maka program akan memeberikan peringatan seperti: “Absensi Telah Selesai / Tidak Ada Object Yang akan di Simpan” atau “Anda Belum Memilih Keterangan Absesnsi!” tapi jika data diisi dengan benar maka akan muncul pesan “Thanks You”, nah ternyata yang seperti ini jutru lebih penting dan ribet loh ,saya aja udah berakali me-Run supaya berjalan Normal, tapi tenang ada kemaun pasti ada jalan….setuju…he… .
Itulah scrip yang terpenting dalam proses ini tapi kalau penegen tahu semua scripnya boleh asal jangan muntah ya…he…ini dya jreng”:
Private Sub Command1_Click()
‘untuk menyimpan hasil absesnsi kedalam database
If Text16.Text = “” Or Text3.Text = “” Or Text5.Text = “” Then
MsgBox (“Absensi Telah Selesai Tidak Ada Object Yang akan di Simpan”)
ElseIf Text16.Text = Data1.Recordset.Fields(“nip”) And Option1.Value = True Or Option2.Value = True Or Option3.Value = True Or Option4.Value = True Then
X = MsgBox(“Thank’s you “, vbOKOnly + vbInformation, “Aplication For Master”)
Data1.Recordset.Edit
Data1.Recordset.Fields(“alpa”) = Text10.Text
Data1.Recordset.Fields(“izin”) = Text11.Text
Data1.Recordset.Fields(“sakit”) = Text12.Text
Data1.Recordset.Fields(“masuk”) = Text14.Text
Data1.Recordset.Fields(“total”) = Text13.Text
Data1.Recordset.Fields(“tgl”) = Label16.Caption
Data1.Recordset.Update
Option1.Value = False
Option2.Value = False
Option3.Value = False
Option4.Value = False
DBGrid1.Refresh
Data1.Recordset.MoveNext ‘setalah di save maka akan menuju record selanjutnya
Else
Z = MsgBox(“Anda Belum Memilih Keterangan Absesnsi!”, vbOKOnly + vbInformation, “Informasi”)
End If
End Sub
Private Sub Command2_Click()
‘hanya refresh doang
Data1.Refresh
Data3.Refresh
End Sub
Private Sub Command3_Click()
‘keluar dari form proses absensi
X = MsgBox(“Apa ada yakin untuk Mengakhiri Pengisian Absensi ini ? “, vbYesNo + vbQuestion, “Aplication For Master”)
If X = vbYes Then
subDepan.Show
Form_Input_absensi.Hide
Else
End If
End Sub
Private Sub Command4_Click()
‘menseleksi berdasarkan kelas
Data1.RecordSource = “select*FROM tabel2 WHERE bagian LIKE ‘*” & Text1.Text & “*’”
Data1.Refresh
DBGrid1.Refresh
Text1.SetFocus
End Sub
Private Sub Command5_Click()
‘ ini untuk find menu berdasarkan nip/nim/nis
Data1.Recordset.FindFirst “nip=’” & Text15.Text & “‘”
If Not Data1.Recordset.NoMatch Then
Text15.Text = “”
Text15.SetFocus
Else
X = Text15.Text
X = MsgBox(“Mohon Periksa kembali Data yang anda Cari!”, vbyesonly + vbinformasi, “Aplication For Master”)
Text15.SetFocus
End If
End Sub
Private Sub Form_Load()
‘Posisikan Form ini ketengah
Me.Move (Screen.Width – Me.Width) / 2, (Screen.Height – Me.Height) / 2
Text10.Text = “”
Text11.Text = “”
Text12.Text = “”
Text13.Text = “”
Text14.Text = “”
Text1.Text = “”
r = “Silahkan Input Nip/Nim/Nis!”
Text15.Text = r
End Sub
Private Sub Option1_Click()
‘jika di klik maka jumlah alpa akan bertambah satu
If Option1.Value = True Then
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Text10.Text = Val(Text6.Text) + 1
Else
Text10.Text = Val(Text6.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text10.Text) + Val(Text11.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Private Sub Option2_Click()
‘jika diklik maka jumlah izin akan bertambah satu
If Option2.Value = True Then
Text11.Text = Val(Text7.Text) + 1
Text10.Text = Text6.Text
Text12.Text = Text8.Text
Text14.Text = Text2.Text
Else
Text11.Text = Val(Text7.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Private Sub Option3_Click()
jika diklik maka jumlah sakit akan bertambah satu
If Option3.Value = True Then
Text12.Text = Val(Text8.Text) + 1
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text14.Text = Text2.Text
Else
Text12.Text = Val(Text8.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text12.Text) + Val(Text11.Text) + Val(Text10.Text) + Val(Text14.Text)
End Sub
Private Sub Option4_Click()
jika diklik maka jumlah izin akan bertambah satu
If Option4.Value = True Then
Text10.Text = Text6.Text
Text11.Text = Text7.Text
Text12.Text = Text8.Text
Text14.Text = Val(Text2.Text) + 1
Else
Text14.Text = Val(Text2.Text) + 0
End If
Text13.SetFocus
Text13.Text = Val(Text11.Text) + Val(Text10.Text) + Val(Text12.Text) + Val(Text14.Text)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
‘ini hanya untuk di Enter supaya pidah ke field berikutnya
If KeyAscii = 13 Then
Command4.SetFocus
End If
End Sub
Private Sub Text15_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command5.SetFocus
End If
End Sub
Private Sub Timer1_Timer()
Label14.Caption = Format(Time, “hh:mm:ss:am/pm”)’cuma format jam doang
Label16.Caption = Format(Date, “dd/mmmm/yyyy”)
End Sub
Sekarang kita coba input absensi dan lihat hasilnya missal saya mw absent kelas XI-B,
gbr5_absn_vbiiHasilnya udah langsung bisa dilihat , ketika saya klik option(keterangan) masuk maka pada frame sesudah absent bagian masuk= 1(bertambah satu yang mulanya Nol) dan jika kita memilih absen masuk lagi maka akan bertambah menjadi dua

Membuat Calculator Menggunakna Java Swing

/*
* DesainKalkulator.java
*
* Created on 24 Mei 2012, 4:07
*/
 
package kalkulator;
 
/**
*
* @author  Witty
*/
public class DesainKalkulator extends javax.swing.JFrame {
double tot, nilai1, nilai2;
String a, b;
int pil;
private Object Int;
 
/** Creates new form DesainKalkulator */
public DesainKalkulator() {
initComponents();
a="";
}
 
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
 
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton8 = new javax.swing.JButton();
jButton9 = new javax.swing.JButton();
jButton11 = new javax.swing.JButton();
jButton12 = new javax.swing.JButton();
jButton13 = new javax.swing.JButton();
jButton14 = new javax.swing.JButton();
jButton15 = new javax.swing.JButton();
jButton16 = new javax.swing.JButton();
jButton17 = new javax.swing.JButton();
jTextField1 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
 
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Kalkulator Sederhana (Siti Witty Ariyanti)");
setBackground(getBackground());
setResizable(false);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
 
jButton1.setLabel("1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 130, -1, -1));
 
jButton2.setLabel("2");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 130, -1, -1));
 
jButton3.setLabel("3");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});
getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 130, -1, -1));
 
jButton4.setLabel("4");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});
getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 170, -1, -1));
 
jButton5.setLabel("5");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});
getContentPane().add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 170, -1, -1));
 
jButton6.setLabel("6");
jButton6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton6ActionPerformed(evt);
}
});
getContentPane().add(jButton6, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 170, -1, -1));
 
jButton7.setLabel("7");
jButton7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton7ActionPerformed(evt);
}
});
getContentPane().add(jButton7, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 210, -1, -1));
 
jButton8.setLabel("8");
jButton8.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton8ActionPerformed(evt);
}
});
getContentPane().add(jButton8, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 210, -1, -1));
 
jButton9.setLabel("9");
jButton9.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton9ActionPerformed(evt);
}
});
getContentPane().add(jButton9, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 210, -1, -1));
 
jButton11.setLabel("0");
jButton11.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton11ActionPerformed(evt);
}
});
getContentPane().add(jButton11, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 250, -1, -1));
 
jButton12.setLabel("Clear");
jButton12.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton12ActionPerformed(evt);
}
});
getContentPane().add(jButton12, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 250, 90, -1));
 
jButton13.setLabel("+");
jButton13.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton13ActionPerformed(evt);
}
});
getContentPane().add(jButton13, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 130, -1, -1));
 
jButton14.setLabel("-");
jButton14.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton14ActionPerformed(evt);
}
});
getContentPane().add(jButton14, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 130, -1, -1));
 
jButton15.setLabel("*");
jButton15.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton15ActionPerformed(evt);
}
});
getContentPane().add(jButton15, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 170, -1, -1));
 
jButton16.setLabel("/");
jButton16.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton16ActionPerformed(evt);
}
});
getContentPane().add(jButton16, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 170, -1, -1));
 
jButton17.setLabel("=");
jButton17.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton17ActionPerformed(evt);
}
});
getContentPane().add(jButton17, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 210, 100, 60));
 
jTextField1.setEditable(false);
jTextField1.setFont(new java.awt.Font("Comic Sans MS", 1, 24));
jTextField1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
jTextField1.setText("0");
jTextField1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 204, 204), 3));
jTextField1.setFocusCycleRoot(true);
jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
});
getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 60, 360, -1));
jTextField1.getAccessibleContext().setAccessibleName("");
 
jLabel1.setFont(new java.awt.Font("Tahoma", 0, 8));
jLabel1.setText("By : Siti Witty Ariyanti");
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 320, -1, -1));
 
jLabel2.setIcon(new javax.swing.ImageIcon("D:\\ITB\\BAHAN KULIAH\\8. JAVA2SE\\netbeans project\\Kalkulator\\src\\kalkulator\\nomor.jpg")); // NOI18N
getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 490, 360));
 
pack();
}// </editor-fold>
 
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
a="1";
jTextField1.setText(a);
}
 
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
a="2";
jTextField1.setText(a);
}
 
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
a="3";
jTextField1.setText(a);
}
 
private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
a="4";
jTextField1.setText(a);
}
 
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
a="5";
jTextField1.setText(a);
}
 
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
a="6";
jTextField1.setText(a);
}
 
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {
a="7";
jTextField1.setText(a);
}
 
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {
a="8";
jTextField1.setText(a);
}
 
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {
a="9";
jTextField1.setText(a);
}
 
private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {
a="0";
jTextField1.setText(a);
}
 
private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) {
jTextField1.setText("0");
nilai1=0;
nilai2=0;
tot=0;
a="";
}
 
private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {
nilai1=Double.parseDouble(a);
jTextField1.setText("+");
a="";
pil=1;
}
 
private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {
nilai1=Double.parseDouble(a);
jTextField1.setText("-");
a="";
pil=2;
}
 
private void jButton15ActionPerformed(java.awt.event.ActionEvent evt) {
nilai1=Double.parseDouble(a);
jTextField1.setText("*");
a="";
pil=3;
}
 
private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {
nilai1=Double.parseDouble(a);
jTextField1.setText("/");
a="";
pil=4;
}
 
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
 
private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) {
switch(pil){
case 1:
nilai2=Double.parseDouble(a);
tot=nilai1+nilai2;
a=Double.toString(tot);
jTextField1.setText(a);
break;
case 2:
nilai2=Double.parseDouble(a);
tot=nilai1-nilai2;
a=Double.toString(tot);
jTextField1.setText(a);
break;
case 3:
nilai2=Double.parseDouble(a);
tot=nilai1*nilai2;
a=Double.toString(tot);
jTextField1.setText(a);
break;
case 4:
nilai2=Double.parseDouble(a);
tot=nilai1/nilai2;
a=Double.toString(tot);
jTextField1.setText(a);
break;
}
}
 
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton11;
private javax.swing.JButton jButton12;
private javax.swing.JButton jButton13;
private javax.swing.JButton jButton14;
private javax.swing.JButton jButton15;
private javax.swing.JButton jButton16;
private javax.swing.JButton jButton17;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JButton jButton9;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JTextField jTextField1;
// End of variables declaration
}