Sistem Informasi Penerimaan Mahasiswa Baru

21 Desember 2009

Identifikasi Masalah

Keberadaan sistem informasi dalam organisasi sudah teruji dapat mempertahankan kelangsungan hidupnya. Sistem informasi yang baik dapat mengalirkan informasi-informasi ke seluruh tingkatan organisasi baik tingkatan operasional, manajemen dan taktik. Aliran informasi yang cepat, tepat, akurat dan aman akan mempermudah pihak manajemen dalam pengambilan keputusannya. Keputusan-keputusan yang dihasilkan akan mampu membawa organisasi menghadi tekananan-tekanan baik internal maupun internal.
Organisasi seperti perguruan tinggi tidak bisa juga terlepas dari hal-hal tersebut di atas. Perguruan tinggi harus mampu memanfaatkan peluang dan sekaligus menghadapi tantangan yang ada. Peluang bahwa masih dibutuhkannya tenaga-tenaga professional di masyarakat harus dapat dimanfaatkan sebaik mungkin dengan terus menerus meningkatkan kualitas proses akademik.

Tantangan yang dihadapi perguruan tinggi salah satunya adalah semakin banyaknya institusi-institusi yang menyelenggarakan kegiatan sejenis. Disamping itu dengan dimungkinkannya pekerja-pekerja dari luar (foreign worker) untuk ikut bersaing dengan tenaga kerja lokal (national worker).

Salah satu proses akademik yang langsung berhadap dengan masyarakat adalah pada tahap proses penerimaan mahasiswa baru. Pada tahap ini masyarakat haruslah dapat terlayani dengan baik. Pelayanan disini baik dari administrasi maupun perlakuan. Pelayanan perlakukan haruslah dipandang bahwa masyarakat merupakan asset bagi perguruan tinggi. Dari masyarakatlah mahasiswa berasal. Dan jauh dari itu harus dipandang bahwa masyarakat jugalah nantinya pemakai produk dari perguruan tinggi. Pelayanan di bidang adminitrasi menyangkut seperti mudahnya memperoleh informasi yang lengkap tentang penerimaan mahasiswa baru. Informasi-informasi ini mulai dari informasi yayasan (bila perguruan tinggi swasta), perguruan tinggi (seperti akreditasi institusi), program studi, dosen, kurikulum, sarana dan prasarana, UKM, kerjasama, ekstrakurikuler, dan unit-unit usaha perguruan tinggi lainnya. Melalui informasi yang utuh tentang perguruan tinggi akan dapat mempererat hubungan antara masyarakat dengan perguruan tinggi.
Selain dari informasi umum perguruan tinggi pada tahapan ini juga harus dijelaskan informasi tentang biaya pendidikan mulai dari biaya sumbangan pendidikan, biaya pokok kuliah (bila ada), biaya sks teori, biaya sks praktikum, seminar, skripsi/tugas akhir, dan sebagainya. Uraian biaya yang rinci akan dapat mempermudah para orang tua mahasiswa dalam menyusun anggaran keuangannya. Transparansi biaya tentu akan menambah keyakinan para orang tua tentang proses akademik dari institusi.
Secara umum prosedur dalam penerimaan mahasiswa baru adalah:
1. calon mahasiswa mendaftarkan diri di bagian front office
2. bagian front office memverifikasi berkas calon mahasiswa
3. bagian front office menentukan jadwal test potensi akademik
4. bagian akademik mengumumkan jadwal test potensi akademik
5. calon mahasiswa melakukan test potensi akademik
6. bagian akademik mengumumkan hasil test potensi akademik
7. mahasiswa melengkapi adminitrasi akademik khususnya semester I

Kebutuhan Perangkat Lunak

Untuk merancang sistem informasi ini akan digunakan perangkat lunak sumber terbuka (open source). Hal ini dilakukan untuk mengurangi biaya yang mesti dikeluarkan.
Sistem yang akan dirancang berbasis web dengan harapan dapat diakses oleh orang banyak tanpa terbatas oleh waktu, tempat mapun ruang. Perangkat-perangkat lunak yang digunakan adalah:
1. Sistem operasi. Sistem operasi yang digunakan dapat berbasis windows maupun linux.
2. Perangkat lunak perancang sistem
– Apache sebagai web server
– PHP sebagai application server
– MySQL sebagai database server
– Notepad sebagai editor.

Kebutuhan Perangkat Keras

Kebutuhan minimal perangkat keras agar perangkat lunak dapat bekerja secara baik adalah:
1. Pentium III 667 MHZ
2. RAM 128 MB
3. Hard Disk 20 GB
4. Monitor 15″
5. Keyboard + Mouse


Pencarian biner

4 November 2009

Metode pencarian biner (biner method searching) merupakan salah satu metode yang banyak digunakan untuk mencari suatu data dalam suatu himpunan data. Pencarian biner dilakukan pada data yang telah terurut.

Misalkan terdapat data nilai 10 siswa yang telah terurut secara menaik (ascending) seperti di bawah ini:

5 6 7 7.5 7.9 8 8.2 8.5 8.7 9

Pencarian biner dimulai dengan cara:
0. Mulai
1. Tentukan bilangan yang dicari, mis DataCari
2. Tentukan nilai ketemu=false
3. Tentukan nilai IndexBawah=1
4. Tentukan nilai IndexAtas=10
5. Ulangi Selama IndexBawah<=IndexAtas Dan Not (Ketemu)
6. Menentukan posisi tengah dari data
IndexTengah=(IndexBawah + IndexAtas) Div 2
IndexTengah=0+9 Div 2
IndexTengah=9 Div 2
IndexTengah=4
7. Uji,
Jika DataCari = Data(IndexTengah) maka
Ketemu=True
Jika DataCariData<(IndexTengah) maka
Atas=IndexTengah-1
Jika DataCariData>(IndexTengah) maka
Bawah=IndexTengah+1
8. Ulangi ke langkah
9. Jika Ketemu maka
cetak DataCari Ditemukan
Jika Tidak Ketemu maka
cetak DataCari Tidak Ditemukan
10. Selesai

Implementasi Program
1. Rancangan antar muka
antarmuka

2. Kode Program


Private Sub cmdCari_Click()
   Dim DataCari As Single
   Dim IndexBawah, IndexAtas, IndexTengah As Byte
   Dim Ketemu As Boolean

   ‘Pindahkan txtDatacari ke DataCari
   DataCari = Val(txtDataCari.Text)

   ‘Tentukan indexBawah dan IndexAtas
   IndexBawah = 1
   IndexAtas = lstNilai.ListCount

   Ketemu = False

   While (IndexBawah <= IndexAtas) And (Not (Ketemu))
    IndexTengah = (IndexBawah + IndexAtas) \ 2
    'Print IndexBawah, IndexAtas, IndexTengah
    If (DataCari = Val(lstNilai.List(IndexTengah – 1))) Then
     Ketemu = True
    ElseIf (DataCari < Val(lstNilai.List(IndexTengah – 1))) Then
     IndexAtas = IndexTengah – 1
    Else
     IndexBawah = IndexTengah + 1
    End If
    Wend
    If (Ketemu) Then
     MsgBox (txtDataCari + " Ada di List Nilai")
    Else
     MsgBox (txtDataCari + " Tidak Ada di List Nilai")
     End If
End Sub

Private Sub cmdTutup_Click()
Unload Me
End Sub

Private Sub Form_Load()
   ‘isi data nilai ke lstNilai
   lstNilai.AddItem ("5")
   lstNilai.AddItem ("6")
   lstNilai.AddItem ("7")
   lstNilai.AddItem ("7.5")
   lstNilai.AddItem ("7.9")
   lstNilai.AddItem ("8")
   lstNilai.AddItem ("8.2")
   lstNilai.AddItem ("8.5")
   lstNilai.AddItem ("8.7")
   lstNilai.AddItem ("9")

   'kosongkan txtDataCar
   txtDataCari.Text = ""
End Sub

3. Eksekusi Program
eksekusi

ketemunilai


Prosedur

31 Oktober 2009

Prosedur Siap Pakai
Prosedur (procedure) merupakan suatu blok kode program yang disusun untuk menyelesaikan masalah umum. Misalkan dalam bahasa pemrograman pascal dikenal prosedur-prosedur seperti writeln, clrscr, textbackground, textcolor, readln, dsb. Pemanggilan prosedur-prosedur tersebut bervariasi antara satu prosedur dengan prosedur yang lainnya. Misalkan prosedur clrscr yang berfungsi untuk menghapus seluruh tulisan di layar monitor dan meletakkan posisi kursor di X=0 dan Y=0. Prosedur clrscr dalam pemanggilannya tidak membutuhkan parameter; prosedur writeln/write berufungsi untuk mencetak keluaran (output) ke layar monitor. Prosedur writeln/write bisa dipanggil dengan mengikutkan parameter atau tanpa mengikutkan parameter. Sebagai contoh diinstruksikan ke penterjemah (compiler) Pascal untuk memindahkan posisi kursor turun satu baris (Nilai Y Bertambah) dan X tetap di posisi 0 seperti terlihat pada kode berikut:

begin
  writeln;
end.

Pada kode di atas dipanggil prosedur writeln tanpa diikuti parameter. Pascal memahami bahwa bila pemanggilan prosedur writeln tanpa parameter maka posisi kursor di monitor berubah yaitu kursor kembali ke posisi X=0 (Carriage Return) dan Posisi Y tambah Satu – Turun Satu Baris (Line Feed).

Contoh lainnya kita bisa menyuruh prosedur writeln untuk mencetak perkalian 10*10:

begin
   writeln(10*10);
end.

Kode di atas dapat dijelaskan bahwa kita memanggil prosedur writeln dengan mengirimkan parameter perkalian 10*10. Karena prosedur writeln merupakan prosedur yang sudah siap pakai (built in procedure) atau sudah didefenisikan oleh pascal makan detail dari instruksi di dalam prosedur writeln tidak kita ketahui dengan pasti.

Kita juga bisa menyuruh perintah writeln untuk mencetak untaian karakter (string) “Respati Yogyakarta”:

begin
    writeln(‘Respati Yogyakarta’);
end.

Atau gabungan dari nilai dan konstata seperti berikut:
begin
   writeln(10*10,’Respati Yogyakarta’);
end.

Keluwesan prosedur writeln tentu akan sangat membantu dalam pemberian perintah ke komputer.

Prosedur Buatan Pemakai
Pascal memungkinkan programmer untuk membuat prosedur sendiri (user defined procedure). Tata cara (syntax) pendeklarasian prosedur buatan pemakai adalah:

procedure namaprosedur([par1,par2,par3,...parn]);
{deklarasi variabel}
{deklarasi prosedur}
{deklarasi fungsi}
{deklarasi konstanta}
{deklarasi label}

   begin
      <pernyataan>
   end;

Prosedur yang telah dikelarasikan selanjutnya dapat dipanggil dari program utama atau dari prosedur itu sendiri atau prosedur lainnya.

Berikut ini akan dibuat suatu prosedur untuk mencetak alamat Unriyo Yogyakarta:

Program CetakAlamat;
uses crt;
procedure Alamat();
     begin
     writeln(‘Universitas Respati Yogyakarta’);
     writeln(‘Jln.Laksda Adisucipto Km.6,3 Depok, Sleman, Yogyakarta’);
     end;

Begin
     clrscr;
     {Memanggil Prosedur Alamat}
     Alamat();
End.

Prosedur Berparameter
Prosedur yang diberi tugas khusus dapat menerima parameter sesuai dengan kebutuhan. Misalkan terdapat diinginkan prosedur untuk mencetak bilangan 1 s.d N. Disini nilai N tidak pasti, bisa 10, 20, 100. Untuk itu pada saat pemanggilan prosedur kita kirimkan nilai N dan prosedur selanjutnya memproses pencetakan angka 1 s.d N.


Program CetakAngka;
Uses Crt;

Procedure CetakAngka1Sd(N: Byte);
Var
  I: Byte; {Deklarasi Lokal}
 Begin
 For I:=1 To N Do
  writeln(I);
 End;

{Program Utama}
Begin
 {Bersihkan layar}
 clrscr;
 {Panggil Prosedur Cetak 1 s.d 20}
 CetakAngka1SD(20);
{Panggilan Lagi Prosedur Cetak Angka 1 s.d 100}
 CetakAngka1SD(100);
Readln; {Tunggu Penekanan Tombol Enter}
End.

Parameter Nilai dan Parameter Acuan
Secara umum parameter yang dikirimkan ke prosedur merupakan parameter nilai artinya nilai parameter tidak akan berubah setelah pemanggilan prosedur. Bila diinginkan perubahan nilai parameter setelah pemanggilan prosedur, parameter seperti ini disebut parameter acuan.

Buatlah prosedur untuk menghitung jumlah deret berikut:
1/1+1/2+1/3+…1/N
Diinginkan banyaknya N tidak pasti dan sekaligus hasil penjumlahan terlihat setelah pemanggilan prosedur. Dengan demikian dibutuhkan 2 (dua) buah parameter yaitu N (parameter nilai) dan Jumlah(parameter acuan).


Program Jumlah_Deret;
Uses Crt;

Procedur Jumlah (N : Byte; Var Jumlah : Real);
 Var
  I : Byte;
 Begin
   Jumlah:=0;
   For I:=1 To N Do
     Jumlah:=Jumlah + 1/I
 End;

Var
 Cacah_Data : Byte;
 Hasil : Real;
Begin
 clrscr;
 Cacah_Data:=10;
{Panggil Prosedur}
 Jumlah(Cacah_Data,Hasil);
 writeln(‘Jumlah Deret’,Hasil:8:2);
Readln;
End.

Lingkup Variabel
Lingkup variabel (variabel scope) menggambarkan daya akses dari variabel tersebut. Dalam Pascal terdapat 2 (dua) jenis ruang lingkup yaitu ruang lingkup global dan lokal. Ruang lingkup global menandakan bahwa variabel tersebut akan dikenali diseluruh kode program. Ruang lingkup lokal menandakan bahwa variabel tersebut hanya dikenal ditempatnya dideklarasikan.

Misalkan terdapat program seperti berikut:

Var
 IGlobal : Byte;

Procedure LokalSatu;
 Var
  ILokal1 : Byte;
 Begin
  ILokal1:=10;
  Writeln(ILokal1,IGlobal);
 End;

Procedure LokalDua;
 Var
  ILokal2 : Byte;
 Begin
  ILokal2:=20;
  Writeln(ILokal2,IGlobal);
 End;

{Program Utama}
Begin
 IGlobal:=10;
 Lokal;
End.

Pada kode di atas variabel IGlobal akan dikenali di seluruh kode program (baik di Program Utama, Prosedur LokalSatu, Prosedur LokalDua). Sedangkan variabel ILokal1 hanya akan dikenal di prosedur LokalSatu. Begitu juga variabel ILokal2 hanya akan dikenal di prosedur LokalDua.

Kita perhatikan lagi kode program berikut:

Program Lingkup_Lingkup;
Var
 I : Byte;
Procedure Terluar;
 Var
  ITerluar : Byte;
 Procedure Terdalam;
  Var
   ITerdalam : Byte;
  Begin
   ITerdalam:=20;
   writeln(I,ITerluar,ITerdalam);
  End;
 Begin
   ITerluar:=10;
   {Panggil Prosedur Terluar}
 End;

{Program Utama}
Begin
 I :=5;
 Terluar;
End.

Pada kode program di atas I bersifat global artinya akan dikenali di program utama, prosedur terluar dan prosedur terdalam. Variabel ITerluar akan bersifat global di prosedur tersebut sehingga variabel tersebut akan dikenali prosedur-prosedur yang dideklarasikan dalam prosedur tersebut. Namun variabel ITerluar tidak akan dikenali oleh Program Utama. Variabel ITerdalam hanya akan dikenali oleh Prosedur Terdalam.

Prosedur Rekursif
Prosedur yang memanggil dirinya sendiri disebut sebagai prosedur rekursif. Misalkan terdapat kode program seperti berikut ini:

Procedure Cetak;
 Begin
  writeln(‘Respati’);
  {Prosedur Memanggil Dirinya Sendiri}
  Cetak;
 End;

{Program Utama}
Begin
 {Panggil Prosedur}
 Cetak;
End.

Kode program di atas dapat dijelaskan sebagai berikut:
1. Mulai
2. Panggil Prosedur Cetak
3. Cetak string ‘Respati’
4. Panggil Prosedur Cetak
5. Cetak string ‘Respati’
6. Panggil Prosedur Cetak
7. Cetak string ‘Respati’
8. dst

Pemanggilan terhadap dirinya sendiri akan tetap dilakukan Prosedur Cetak karena tidak ada pernyataan yang menghentikan pemanggilan. Pemanggilan ini akan terus berlangsung terus-menerus (continues call).
Untuk mengatasi masalah ini maka perlu dibuat suatu pernyataan yang membatasi pemanggilan prosedur. Misalkan kode program di atas kita ubah seperti berikut ini:


Var
I : Byte;
Procedure Cetak;
 Begin
 IF (I<=5) Then
  begin
  writeln('Respati');
  {Prosedur Memanggil Dirinya Sendiri}
  Cetak;
  I:=I+1;
 end;
 End;

{Program Utama}
Begin
I:=1;
 {Panggil Prosedur}
 Cetak;
End.

Pada kode di atas prosedur Cetak hanya akan dipanggil sebanyak 5x seperti yang dinyatakan dalam kondisi IF (I<=5). Jika I>5 maka prosedur Cetak tidak akan dipanggil lagi. Umumnya ditentukan suatu kondisi yang memberhentikan pemanggilan prosedur pada dirinya sendiri.

Parameter Bertipe Array
Parameter bertipe array dapat dikirimkan ke prosedur dengan sedikit perbedaan dari parameter bertipe konvesional (byte, word, integer, real).

Program Jumlah_Data;
Const
 N=100;
Type
 Data : Array[1..N] Of Single;
Var
 AData : Data;

Procedure Jumlah(DataA : Data,Cacah:Byte)’
Begin
  For I:=1 To N Do
   Jlh:=Jlh+DataA[I];
  writeln(‘Jumlah Data Adalah’,Jlh:12:0);
End;

{Program Utama}
Begin
 {masukkan data}
 AData[1]:=70;
 AData[1]:=65.5;
 AData[1]:=89;
 AData[1]:=77;
 AData[1]:=64;
 AData[1]:=78.5;
 {Panggil Prosedur Jumlah Data}
 Jumlah(AData,6);
 Readln;
End.

Latihan Prosedur
Diketahui data berat mahasiswa Prodi Sistem Informasi seperti dibawah ini:
65,78,58,60,63,56,65,69,77
Buatlah prosedur untuk :
1.menginputkan N Buah data
2.menghitung jumlah, rata-rata dan standar deviasi berat
3.mengurutkan data secara menaik (ascending)
4.mengurutkan data secara menurun (descending)
5.melihat isi array

Untuk menyelesaikan kasus tersebut akan dibuat menu dalam bentuk pilihahan sehingga memudahkan dalam penggunaan program.
Menu Pilihan
1. Input Data
2. Tentukan Jumlah, Rata-Rata dan Standar Deviasi
3. Urutkan Data Secara Menaik
4. Urutkan Data Secara Menurun
5. Tampilkan Isi Array
Pilihan Anda [1..5] :


Program Statistik;
Uses Crt;
Const
 N = 100;

{Deklarasi Prosedur Input Berat}
Procedure Input_Berat(Berat_Mhs : Berat; N : Byte);
Var
 I : Byte;
Begin
  For I:=1 To N Do
   Begin
   write(‘Masukkan Berat Ke’,I,':’);readln(Berat_Mhs[I]);
  End;
End;

{Program Utama}
Var
 Ulang : Boolean;
Pil : ShortInt;
Begin
 Ulang:=True;
 While (Ulang) Do
 Begin
  clrscr;
  gotoxy(25,1);write(‘M E N U U T A M A’);
  gotoxy(25,2);write(‘————————-‘);
  gotoxy(25,3);write(‘1. Input Data’);
  gotoxy(25,4);write(‘2. Tentukan Jumlah, Rata-Rata, Standar Deviasi’);
  gotoxy(25,5);write(‘3. Urutkan Berat Secara Menurun’);
  gotoxy(25,6);write(‘4. Urutkan Berat Secara Menaik’);
  gotoxy(25,7);write(‘5. Tampilkan Array’);
  gotoxy(25,8);write(‘0. Selesai’);
 pil:=-1;
 while (pil<0)or (pil>5) do
  begin
  gotoxy(25,9);write(‘Pilihan Anda [0..5] : ‘);readln(pil);
  end;
 {Uji Pilihan}
 Case (Pil) Of
 1 : Begin {Input Data Berat}

  End;
 2 : Begin {Tentukan Jumlah, Rata-Rata dan Standard Deviasi}

  End;
 3 : Begin {Urutkan Secara Ascending}

  End;
 4 : Begin {Urutkan Secara Descending}

  End;
 5 : Begin {Tampil Isi Array}

  End;
 0 : Begin {Program Selesai}

  End;
 End; {Akhir Case}
 End;{Akhir While}
End. {Akhir Program}


Membuat output di tengah layar

15 Oktober 2009

Buatlah output seperti di bawah ini di tengah layar

                                        1
                                      111
                                     11111
                                    111111
Program Output_Tengah_Tengah_Layar;
Uses crt;
Var
  Xtengah, XGerak, N, I : Byte;
  Lagi : Char;
Begin
  Lagi:='Y';
  While (Upcase(Lagi)='Y') Do
     Begin
       clrscr;
       writeln('Banyak N : ');
       readln(N);
       A:=1;
       For I:=1 To N Do
          Begin
              K:=1;
             XGerak:=Xtengah;
             While (K<=A) Do
                Begin
                    Gotoxy(XGerak,I-1);
                    XGerak:=XGerak+1;
                    K:=K+1;
                End; {Akhir For J}
              XTengah:=XTengah-1;
              A:=A+2;
            End; { akhir For I}
            writeln;
            write('Anda Ingin Mencetak Lagi  : ');
            readln(Lagi);
        End; {Akhir while}
End.

Penghitungan Gaji

15 Oktober 2009

Rancanglah antar muka program untuk menghitung gaji bersih seorang pegawai dengan beberapa ketentuan berikut:
-seorang pegawai memiliki attribut nim, nama, jenkel, status kawin, jumlah anak, golongan, jabatan
-golongan pegawai menentukan gaji pokok yaitu:

Golongan Gaji Pokok (Rp)
I 1.000.000
II 2.000.000
III 3.000.000
IV 4.000.000

-jabatan menentukan tunjangan jabatan yaitu:

Jabatan Tunjangan Jabatan (Rp)
Tidak Menjabat 0
Operasional 500.000
Taktik 1.000.000
Strategik 1.500.000

-status kawin menentukan tunjangan istri yaitu:
kawin –> tunjangan istri Rp.100.000,-
-jumlah anak menentukan tunjangan anak yaitu:

Jumlah Anak Tunjangan Anak (Rp)
<=3 Jumlah Anak * 50.000
>3 3 * 50.000

-gaji kotor –> gaji pokok + tunjangan jabatan + tunjangan istri + tunjangan anak
-ppn –> 10% * gaji kotor
-gaji bersih –> gaji kotor – ppn

Urutan pengerjaan program
1. Rancanglah antar muka program seperti gambar dibawah ini:
gaji

2. Pada saat ditekan F5 (untuk menjalankan program VB) maka
a. kosongkan semua textbox, option radion dan combo box
b. nonaktifkan semua textbox, cmbproses, cmbbatal
Pada saat kita menekan tombol F5, maka penterjemah (compiler) Visual Basic terlebih dahulu mengerjakan event Form_Load. Untuk itu tepat meletakkan kode program memberikan nilai awal pada setiap variabel yang digunakan baik textbox, option radion, combobox maupun command.

Private Sub Form_Load()
‘kosongkan textbox
txtNip.Text = “”
txtNama.Text = “”
txtJAnak.Text = “”
txtGPokok.Text = “”
txtTIstri.Text = “”
txtTAnak.Text = “”
txtTJabatan.Text = “”
txtGKotor.Text = “”
txtPPN.Text = “”
txtGBersih.Text = “”

‘kosongkan option radio
OptKawin.Value = False
OptTKawin.Value = False

‘non aktifkan textbox, option radio
‘kode program berikut akan digunakan lagi pada saat diinginkan pengisian
‘data. Untuk kode program yang dipanggil secara berulang cocok dijadikan
‘suatu blok program, apakah prosedur atau fungsi.
txtNip.Enabled = False
txtNama.Enabled = False
txtJAnak.Enabled = False
txtGPokok.Enabled = False
txtTIstri.Enabled = False
txtTAnak.Enabled = False
txtTJabatan.Enabled = False
txtGKotor.Enabled = False
txtPPN.Enabled = False
txtGBersih.Enabled = False
OptKawin.Enabled = False
OptTKawin.Enabled = False

‘Isi golongan
cboGol.AddItem (“Pilih Golongan”)
cboGol.AddItem (“I”)
cboGol.AddItem (“II”)
cboGol.AddItem (“III”)
cboGol.AddItem (“IV”)

‘Isi Jabatan
cboJabatan.AddItem (“Pilih Jabatan”)
cboJabatan.AddItem (“Operasional”)
cboJabatan.AddItem (“Taktik”)
cboJabatan.AddItem (“Strategis”)

‘Aktifkan keterangan data baik pada combobox Golongan maupun Jabatan
cboGol.ListIndex = 0
cboJabatan.ListIndex = 0

‘non aktifkan combobox
cboGol.Enabled = False
cboJabatan.Enabled = False

‘non aktifkan command batal, proses
cmdBatal.Enabled = False
cmdProses.Enabled = False

End Sub

3. Bila Command Proses di Klik maka
a. Uji apakah textbox dan combobox sudah diisi
b. Tentukan gaji gaji pokok, tunjangan istri, anak,
Tentukan PPN, gaji kotor dan gaji bersih
c. Non aktifkan command Proses
d. Aktifkan command Baru

Private Sub cmdBaru_Click()
‘aktifkan option radion tidak kawin
OptTKawin.Value = True

‘nonaktikan isian textbox jumlah anak
txtJAnak.Enabled = False

‘kosongkan textbox
txtNip.Text = “”
txtNama.Text = “”
txtJAnak.Text = “”
txtGPokok.Text = “”
txtTIstri.Text = “”
txtTAnak.Text = “”
txtTJabatan.Text = “”
txtGKotor.Text = “”
txtPPN.Text = “”
txtGBersih.Text = “”

‘aktifkan textbox
txtNip.Enabled = True
txtNama.Enabled = True
txtGPokok.Enabled = True
txtTIstri.Enabled = True
txtTAnak.Enabled = True
txtTJabatan.Enabled = True
txtGKotor.Enabled = True
txtPPN.Enabled = True
txtGBersih.Enabled = True
OptKawin.Enabled = True
OptTKawin.Enabled = True

‘aktifkan combobox
cboGol.Enabled = True
cboJabatan.Enabled = True

‘aktifkan command proses dan batal
cmdProses.Enabled = True
cmdBatal.Enabled = True

‘nonaktifkan command baru
cmdBaru.Enabled = False

‘fokuskan kurson ke textbox Nip
txtNip.SetFocus
End Sub

4. Jumlah anak dapat diisi bila status kawin
Private Sub OptKawin_Click()
txtJAnak.Enabled = True
txtJAnak.SetFocus
End Sub

5.Jika status tidak kawin jumlah anak tidak bisa diisi dan kosongkan nilainya
Private Sub OptTKawin_Click()
txtJAnak.Enabled = False
‘kosongkan jumlah anak
txtJAnak.Text = “”
End Sub

7. Jika diklik proses maka dihitung maka lakukan verifikasi
a. apakah data Nip, Nama telah disi, golongan dan jabatan telah dipilih
b. menentukan gaji pokok, tunjangan jabatan, tunjangan istri,
tunjangan anak, gaji kotor, PPN, dan gaji bersih
c. Tampilkan gaji pokok, tunjangan jabatan, tunjangan istri,
tunjangan anak, gaji kotor, PPN, dan gaji bersih
d. nonaktifkan command Proses
e. Aktikan command Baru

Private Sub cmdProses_Click()
Dim GajiPokok, GajiKotor, PPN As Single
Dim TunjanganJabatan, TunjanganIstri, TunjanganAnak As Long

‘Uji apakah Nip sudah diisi
If (Trim(txtNip.Text = “”)) Then
MsgBox (“Nip Kosong”)
txtNip.SetFocus
Exit Sub
End If

‘Uji apakah Nama sudah diisi
If (Trim(txtNama.Text = “”)) Then
MsgBox (“Nama Kosong”)
txtNama.SetFocus
Exit Sub
End If

‘Uji apakah golongan sudah dipilih
If (cboGol.ListIndex = 0) Then
MsgBox (“Pilih Golongan”)
cboGol.SetFocus
Exit Sub
End If

‘Uji apakah jabatan sudah dipilih
If (cboJabatan.ListIndex = 0) Then
MsgBox (“Pilih Golongan”)
cboJabatan.SetFocus
Exit Sub
End If

‘Uji apakah jlhanak sudah diisi bila status kawin
If (OptKawin.Value = True) Then
If (Trim(txtJAnak.Text = “”)) Then
MsgBox (“Masukkan Jumlah Anak”)
txtJAnak.SetFocus
Exit Sub
End If
End If

‘Tentukan gaji pokok
If (cboGol.Text = “I”) Then
GajiPokok = 1000000
ElseIf (cboGol.Text = “II”) Then
GajiPokok = 2000000
ElseIf (cboGol.Text = “II”) Then
GajiPokok = 3000000
Else
GajiPokok = 4000000
End If

‘Tentukan tunjangan jabatan
If (cboJabatan.ListIndex = 1) Then ‘Jika Tidak Punya Jabatan
TunjanganJabatan = 0
ElseIf (cboJabatan.ListIndex = 1) Then ‘Jika Tidak Punya Jabatan
TunjanganJabatan = 500000
ElseIf (cboJabatan.ListIndex = 1) Then ‘Jika Tidak Punya Jabatan
TunjanganJabatan = 1000000
Else
TunjanganJabatan = 1500000
End If

‘Tentukan Tunjangan istri
If (OptKawin.Value = True) Then
TunjanganIstri = 100000
‘Tentukan Tunjangan Anak
If (txtJAnak.Text > 3) Then ‘Anak >3
TunjanganAnak = 3 * 50000
Else
TunjanganAnak = txtJAnak.Text * 50000
End If
Else
TunjanganIstri = 0
TunjanganAnak = 0
End If

‘Tentukan Gaji Kotor, PPN
GajiKotor = GajiPokok + TunjanganJabatan + TunjanganIstri + TunjanganAnak
PPN = 0.1 * GajiKotor
GajiBersih = GajiKotor – PPN

‘Pindahkan ke textbox Gaji Pokok, Tunjangan Istri
‘Tunjangan Anak, Tunjangan Jabatan
‘Gaji Kotor, PPN, Gaji Bersih

txtGPokok.Text = Str(GajiPokok)
txtTJabatan.Text = Str(TunjanganJabatan)
txtTIstri.Text = Str(TunjanganIstri)
txtTAnak.Text = Str(TunjanganAnak)
txtGKotor.Text = Str(GajiKotor)
txtPPN.Text = Str(PPN)
txtGBersih.Text = Str(GajiBersih)

‘nonaktikan command proses
cmdProses.Enabled = False

‘aktifkan command Baru
cmdBaru.Enabled = True

End Sub

8. Jika command Batal di klik
‘kosongkan textbox, option radio, combobox
‘nonaktikan textbox, option radio, combobox
‘non aktifkan command proses dan cancel

‘semua fungsi tersebut terdapat di event form load
‘panggil event form_load
Form_Load

‘aktifkan command Baru
cmdBaru.Enabled = True
End Sub

9. Jika di klik command Keluar
Uji apakah benar-benar keluar, jika ya tutup aplikasi, jika tidak kembali
ke aplikasi
Private Sub cmdTutup_Click()
If MsgBox(“Yakin Keluar”, vbOKCancel + vbDefaultButton2, “Tutup Aplikasi”) = vbOK Then
End
End If
End Sub


Drag and Drop

27 Juni 2009

Drag dan Drop merupakan salah satu fasilitas yang ditawarkan alat input mouse. Drag dapat diartikan sebagai berikut mengklik suatu objek dan menggeser mouse ke posisi tertentu. Drop dapat diartikan sebagai meletakkan objek pada suatu tempat.


Jam Digital Dengan Timer

27 Juni 2009

Visual Basic menyediakan suatu komponen pencacah waktu dengan nama timer. Timer akan dikerjakan berdasarkan jatah waktu yang diberikan. Jatah waktu pengerjaan timer dalam satuan milisecond (1/1000 detik).
Jam digital merupakan salah satu jenis jam yang banyak digunakan untuk menentukan waktu. Visual basic menyediakan suatu fungsi untuk mengetahui jam sistem yang aktif yaitu fungsi time(). Dengan menjalankan timer setiap 1000 milisecond dan memanggil fungsi time() maka otomatis jam akan ditampilkan seperti jam sistem yang aktif.


Bujur Sangkar Ajaib

22 Juni 2009

Permainan Angka-Angka Dengan Menggunakan Bilangan Bulat adalah salah satu sarana untuk meningkatkan kemampuan logika dari anak-anak.
Bilangan bulat termasuk ..-4,-3,-2,-1,0,1,2,3,4,..
Terdapat suatu bujur sangkar yang tersusun atas kotak-kotak seperti yang terlihat di bawah ini:

Masukkanlah bilangan bulat -4,-3,-2,-1,0,1,2,3,4 sehingga:
-bilangan pada arah horizontal
-bilangan pada arah vertikal, dan
-bilangan pada arah diagonal
sama jumlahnya.


Jam Analog

17 Juni 2009

Jam digunakan sebagai ukuran waktu. Terdapat dua jenis jam yang digunakan yaitu jam analog dan digital. Jam analog sebagai alat penghitung waktu dinyatakan dengan angka 1,2,3,4,5,6,7,9,10,11 dan 12 sebagai jam penunjuk waktu mulai dari tengah malam hingga tengah hari dan angka 1,2,3,4,5,6,7,8,9,10,11,12 yang menunjukkan angka tengah hari hingga tengah malam. Angka-angka di jam sering disebut sebagai pukul. Terdapat 3 jenis jarum pada jam yaitu jarum jam, menit dan detik. Bila jarum detik berputar satu putaran penuh maka jarum menit akan bertambah satu. Jika jarum menit berputar satu putaran penuh maka jarum jam akan bertambah satu.

I.Antar muka program
1. Buka proyek standard.exe
2. Simpan proyek dengan nama PAnalog
3. Simpan form dengan nama FAnalog
4. Ganti properti Form
Name : FrmAnalog
BorderSytel : Dialog
Caption : Analog
WindowState : Normal
5. Masukkan control Timer ke Form
6. Ganti properti Timer
Name : TrmAnalog
Interval : 1000 (dalam milisecond. 1 detik = 1000 milisecond)
7. Masukkan control Picture ke Form
8. Ganti properti Picture
Name : PicAnalog
Height : 3000 (dalam pixel)
Widht : 3000 (dalam pixel)
9. Masukkan command dan ganti propertinya menjadi:
– Name : cmdPlay
– Caption : &Play
10. Masukkan control command dan ganti propertinya menjadi:
– Name : cmdStop
– Caption : &Stop
11. Masukkan control command dan ganti propertinya menjadi:
– Name : cmdSet
– Caption : &Set

II.Implementasi
1. Buka Jendela Kode
2. Ketikkan kode program berikut:

Dim JariLingkaran, JarumJam, xTengah, yTengah, Y, X As Integer
Dim Radian, Derajat As Single
Dim strDetik, StrMenit, StrJam As String * 2
Dim Detik, Menit, Jam As Integer

Private Sub cmdPlay_Click()
TmrAnalog.Enabled = True
End Sub

Private Sub cmdStop_Click()
TmrAnalog.Enabled = False
End Sub

Private Sub Form_Load()
xTengah = PicAnalog.Width / 2
yTengah = PicAnalog.Width / 2
JariLingkaran = yTengah – 115
JarumJam = xTengah
X = JarumJam
Y = 100
Derajat = 264
PicAnalog.Circle (xTengah, yTengah), JariLingkaran, Black
Detik = -1
Menit = 0
Jam = 0
strDetik = “00”
StrMenit = “00”
StrJam = “00”
End Sub

Private Sub Form_Paint()
PicAnalog.Cls
PicAnalog.Line (xTengah, yTengah)-(X, Y), Yellow
End Sub

Private Sub TmrAnalog_Timer()
Derajat = Derajat + 6
If Derajat >= 360 Then
Derajat = 0
End If
Radian = 3.14 / 180 * Derajat
X = JarumJam + Cos(Radian) * 1400
Y = JarumJam + Sin(Radian) * 1400
Form_Paint
Detik = Detik + 1
If Detik 59 Then
Detik = 0
Menit = Menit + 1
If Menit 59 Then
Menit = 0
If Jam 12 Then
Jam = 0
End If
End If
End If
txtJam.Text = StrJam + “:” + StrMenit + “:” + strDetik
End Sub

III. Running
1. Jalankan proyek dengan menekan tombol F5


Kalkulator Sederhana

17 Juni 2009

Kalkulator yang akan dirancang termasuk sederhana karena kalkulator ini hanya difokuskan pada operasi dasar artimatika dan trigonometri yang melibatkan bilangan desimal yakni angka 0,1,2,3,4,5,6,7,8, dan 9. Namun penting diingat bahwa kalkulator pada saat ini sudah sangat canggih sehingga kemampuan seperti yang ditawarkan komputer yang dapat beroperasi pada data alpabet, numerik dan alphanumerik juga sudah dapat dilakukannya.
Operasi aritmatika merupakan operasi yang melibatkan angka-angka yang operasinya meliputi penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), pemangkatan (^), sisa bagi (mod). Sedangkan operasi trigonometri pada rancangan aplikasi ini menyangkut nilai sin, cos dan tangen.
Operasi penjumlahan aritmatika dengan syntax operasi umumnya adalah:
C = A Op B, dimana
A dan B adalah operand yang dioperasikan. Operand yang dioperasikan diganti dengan nilai bilangan bulat (-.., -3,-2,-1,0,1,2,3,…)
Op adalah operator aritmatika +, _ , * dan /
= adalah operator pemberi nilai
C adalah operand yang menerima hasil operasi

-Antar muka sistem

-Implementasi

Dim Op1, Op2, Op3, R As Double
Dim A, Op As Byte
Dim Sign, Koma As Boolean
Private Sub Nilai(ByVal Nilai As String)
If A = 0 Then
txthasil.Text = Trim(Str(Nilai))
A = 1
Else
txthasil.Text = txthasil.Text + Trim(Str(Nilai))
End If
End Sub

Private Sub cmd0_Click()
Nilai (cmd0.Caption)
End Sub

Private Sub cmd1_Click()
Nilai (cmd1.Caption)
End Sub

Private Sub cmd2_Click()
Nilai (cmd2.Caption)
End Sub

Private Sub cmd3_Click()
Nilai (cmd3.Caption)
End Sub

Private Sub cmd4_Click()
Nilai (cmd4.Caption)
End Sub

Private Sub cmd5_Click()
Nilai (cmd5.Caption)
End Sub

Private Sub cmd6_Click()
Nilai (cmd6.Caption)
End Sub

Private Sub cmd7_Click()
Nilai (cmd7.Caption)
End Sub

Private Sub cmd8_Click()
Nilai (cmd8.Caption)
End Sub

Private Sub cmd9_Click()
Nilai (cmd9.Caption)
End Sub

Private Sub cmdbagi_Click()
Op = 1
Op1 = Val(txthasil.Text)
A = 0
End Sub

Private Sub cmdbersih_Click()
txthasil.Text = “”
Koma = True
End Sub

Private Sub cmdkali_Click()
Op = 2
Op1 = Val(txthasil.Text)
A = 0
End Sub

Private Sub cmdkoma_Click()
If Koma Then
txthasil.Text = txthasil.Text + “.”
Koma = Not Koma
End If
End Sub

Private Sub cmdkos_Click()
Op = 6
Op1 = Val(txthasil.Text)
A = 0
End Sub

Private Sub cmdkurang_Click()
Op = 3
Op1 = Val(txthasil.Text)
A = 0
End Sub

Private Sub cmdsd_Click()
Op2 = Val(txthasil.Text)
Select Case (Op)
Case 1: Op3 = Op1 / Op2
Case 2: Op3 = Op1 * Op2
Case 3: Op3 = Op1 – Op2
Case 4: Op3 = Op1 + Op2
Case 5: Op3 = Sin(pi / 180 * Op2)
Case 6: Op3 = Cos(pi / 180 * Op2)
Case 7: Op3 = Sin(pi / 180 * Op2) / Cos(pi / 180 * Op2)
End Select
txthasil.Text = Str(Op3)
End Sub

Private Sub cmdsin_Click()
Op = 5
Op1 = Val(txthasil.Text)
A = 0
End Sub

Private Sub cmdtambah_Click()
Op = 4
Op1 = Val(txthasil.Text)
A = 0
End Sub

Private Sub cmdtk_Click()
If Trim(txthasil.Text) “” Then
If Sign Then
R = txthasil.Text
txthasil.Text = “-” + txthasil.Text
Sign = False
Else
txthasil.Text = R
Sign = True
End If
End If
End Sub

Private Sub Form_Load()
A = 1
Sign = True
Koma = True
End Sub

-Running

-Analisis


Pintar Menghitung Angka 1 s.d 20 Bagi Anak-Anak

15 Juni 2009

Bila kita mengingat masa anak-anak (usia 2-6 tahun) tentu kita bergumam “Betapa bahagianya masa itu ya”. Sungguh masa kanak-kanan masa yang penuh dengan kenangan bahagia. Pada masa itu kita menghabiskan waktu dengan bermain dan bermain. Tiada hari tanpa bermain. Bahkan kadang-kadang kita sampai diberi hukuman dari para orang tua karena tidak mematuhi aturan yang telah diberikan. Tapi pada masa itu kita tidak pernah jera. Setelah hukuman berakhir besoknya kita pasti bermain lagi. Sungguh kenangan yang sangat indah.
Sesungguhnya pada saat bermain anak-anak belum merasakan makna dari permainan itu sendiri. Bagaimana agar permainan berakhir dengan tawa dan canda itulah yang selalu dilakukan.
Masih kita ingat juga pada masa anak-anak, Ayah dan Ibu sering bercerita dongeng sebelum tidur. Meraka seakan-akan mengerti kemauan anak-anak. Cerita biasanya diawali dengan perjanjian-perjanjian misalnya anak-anak harus tidur bila ceritanya sudah sampai disini, ceritanya sudah selesai babak I dan seterusnya. Di sekolah (TK dan SD) Bapak/Ibu guru juga sering membuat hadiah-hadiah dalam wujud makanan, nyanyian, hingga mengarang dongeng yang tentunya dapat membuat anak-anak senang dan bahagia.
Bagi guru-guru matematika umumnya mengajarkan pelajaran melalui obyek-obyek yang ada dalam diri anak-anak maupun lingkungannya. Guru senantiasa berusaha meningkatkan rasa senang anak-anak sehingga anak-anak tidak mudah bosan. Memang sering kali pada masa ini banyak anak-anak yang bosan dan malahan banyak yang sampai tidur karena kurang termotivasinya sajian pelajaran yang diberikan. Ketertarikan anak-anak bermain berhitung juga dilandasi karena umumnya anak-anak sebelum memahami bilangan sudah pernah membilangnya sehingga pada saat dibangkitkan ingatan anak sebelumnya akan lebih mudah bagi anak-anak memahaminya. Guru pada saat melakukan permainan menghitung juga senantiasa memberikan dorangan dan motivasi bagi anak-anak. Bagi anak-anak yang mampu mejawab pertanyaan ada kalanya lebih duluan disuruh pulang ke rumah, di lain pihak anak-anak yang belum mampu menjawab akan diberi hukuman menyanyi, berkelamasi, menari, tugas sekolah ditambah dan sebagainya. Guru senantiasa berusaha mewujudkan suasana dengan penuh canda dan tawa.
Beragam permainan pada usia dini dilakukan anak-anak walaupun disadari banyak anak-anak yang paham akan permainan namun tidak mampu menyatakannya dalam bentuk-bentuk fisik. Misalkan pada permainan kelereng anak-anak sudah mampu menghitung namun anak-anak belum mampu menuliskannya. Permainan yang dilakukan anak-anak sehari-hari dapat dirasakan merupakan suatu ajaran dan pendidikan. Ajaran dan pendidikan yang diberikan dari kawan-kawan tanpa disadari telah mampu meningkatkan kemampuan anak-anak untuk mengenali segala jenis benda baik benda fisik maupun abstrak yang ada di sekelilingnya.
Pemerintah telah mengambil kebijaksanaan untuk lebih fokus pada peningkatan mutu dan akses pada pendidikan dasar. Pendidikan dasar langkah awal untuk menggali pengetahuan dan teknologi secara lebih mendalam. Pendidikan TK dan SD diberi perhatian khusus dengan keyakinan bahwa bila dasar-dasar pendidikan sudah teraktualisasi di tengah-tengah masyarakat dengan baik maka sudah tentu generasi muda bangsa akan lebih dapat berkompetisi dan sekaligus mampu berkarya di tengah-tengah masyarakat dan memiliki daya saing yang tinggi. Generasi muda yang berdaya saing akan mampu meningkatkan derajat bangsa di mata bangsa-bangsa lainnya.
Pelajaran berhitung merupakan salah satu pelajaran dasar bagi pemahaman bidang-bidang pelajaran lainnya. Dengan kehadiran teknologi komputer khususnya di bidang multimedia sudah tentu dapat dijadikan sarana untuk merancang aplikasi yang diharapkan dapat membantu anak-anak menghitung angka-angka dasar mulai dari 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 dengan penuh canda dan tawa namun tidak mengurangi kemampuan nalar anak itu sendiri.
Hingga usia 6 tahun anak-anak lebih senang diajak untuk bermain dan berimajinasi. Pada usia tersebut anak masih butuh motiviasi dan dorongan dari para orang tua untuk memahami keadaan yang sebenarnya. Rasionalitas anak pada usia ini masih sangat pendek. Intinya setiap anak pada usia ini butuh bermain dan bermain dan tetap dalam bimbingan orang tua.

Tabel Bilangan dan Nama Bilangan 1 s.d 20

Bilangan Nama Bilangan
0 Nol
1 Satu
2 Dua
3 Tiga
4 Empat
5 Lima
6 Enam
7 Tujuh
8 Delapan
9 Sembilan
10 Sepuluh
11 Sebelas
12 Dua Belas
13 Tiga Belas
14 Empat Belas
15 Lima Belas
16 Enam Belas
17 Tuju Belas
18 Delapan Belas
19 Sembilan Belas
20 Dua Puluh

Tujuan dari perancangan aplikasi adalah:
– anak-anak mampu menghapalkan nama bilangan 1 s.d 20
– anak-anak mampu menuliskan bilangan 1 s.d 20
– anak-anak mampu mentrasformasi obyek ke dalam bilangan 1.s.d 20


Pernyataan Array

13 Juni 2009

Untuk memperoleh informasi dari sekumpulan data dapat dilakukan dengan metode statistik deskriptif. Informasi dari kumpulan data yang diinginkan antara lain:
-jumlah
-rata-rata
-nilai tengah
-minimum
-maksimum
-modus

Antar muka
antar muka

Implementasi

Private Sub cboUrut_Click()
Dim N As Byte
N = lstNilai.ListCount
If cboUrut.ListIndex = 0 Then
For I = 0 To N – 1
For J = I + 1 To N – 1
If (lstNilai.List(I) > lstNilai.List(J)) Then
Temp = lstNilai.List(J)
lstNilai.List(J) = lstNilai.List(I)
lstNilai.List(I) = Temp
End If
Next J
Next I
Else
For I = 0 To N – 1
For J = I + 1 To N – 1
If (lstNilai.List(I) Maks) Then
Maks = lstNilai.List(I)
End If
If (lstNilai.List(I) Sem(J)) Then
Temp = Sem(J)
Sem(J) = Sem(I)
Sem(I) = Temp
End If
Next J
Next I

K = -1
For I = 0 To Cacah – 1
If Sem(I) 0 Then
K = K + 1
Nsem(K) = Sem(I)
For J = I + 1 To Cacah – 1
If Sem(I) = Sem(J) Then
Frek(I) = Frek(I) + 1
Sem(J) = 0
End If
Next J
End If
Next I

Maks = Frek(1)
For I = 1 To K
If Frek(I) >= Maks Then
Maks = Frek(I)
Pos = I
End If
Next I

Modus(0) = Sem(Pos)
S = 0
W = Pos
‘Cari Modus Yang Lain
For I = 1 To K
If Pos I Then
If Frek(I) = Modus(0) Then
S = S + 1
Modus(S) = Sem(S)
End If
End If
Next I

txtModus.Text = “”
For I = 0 To S
txtModus.Text = txtModus.Text + ” ” + Str(Modus(I))
Next I
End Sub

Private Sub cmdTambah_Click()
If txtBaru.Text “” Then
lstNilai.AddItem (txtBaru.Text)
Else
MsgBox (“Data Nilai Kosong”)
End If
cmdTambah.Enabled = False
cmdBaru.Enabled = True
txtBaru.Text = “”
txtBaru.Enabled = False
End Sub

Private Sub cmdTutup_Click()
End
End Sub

Private Sub Combo1_Click()

End Sub

Private Sub Form_Load()
‘Inisialisasi nilai
lstNilai.Clear
txtBaru.Text = “”
txtBaru.Enabled = False
txtJumlah.Text = “”
txtRata.Text = “”
txtMin.Text = “”
txtMaks.Text = “”
txtModus.Text = “”

‘Masukkan Nilai Siswa Mula-Mula
lstNilai.List(0) = 8
lstNilai.List(1) = 9
lstNilai.List(2) = 6
lstNilai.List(3) = 9

‘Non Akfitkan Tombol
cmdTambah.Enabled = False
cmdHapus.Enabled = False
cmdEdit.Enabled = False
cmdBatal.Enabled = False

‘Non Aktifkan Isian Statistik
txtJumlah.Enabled = False
txtRata.Enabled = False
txtMean.Enabled = False
txtMin.Enabled = False
txtMaks.Enabled = False
txtModus.Enabled = False
End Sub

Private Sub lstNilai_Click()
txtBaru.Text = lstNilai.List(lstNilai.ListIndex)
cmdEdit.Enabled = True
End Sub

Seperti apa proses pengerjaan dari program di atas oleh Visual Basic? Visual Basic merupakan bahasa pemrograman berorientasi objek (object oriented language). Visual basic menyediakan beragam jenis objek yang dapat digunakan dalam perancangan suatu aplikasi. Ciri pemrograman berorientasi objek dimana setiap objek dapat diwariskan (inheritance), diubah bentuknya (polymorphism), dan kodenya tidak kelihatan (encapsulated). Objek dapat menerima kejadian (event) baik dari pengguna maupun dari sistem yang lain. Kejadian yang diterima objek diterjemahkan kedalam suatu metode (fungsi atau prosedur).
Form merupakan salah satu objek yang digunakan sebagai tempat merancang antar muka sistem. Pada saat kita menjalankan suatu aplikasi (dengan menekan tombol F5 atau menu Run | Run) maka otomatis Objek form yang pertama kali dijalankan baik event maupun methodnya. Terdapat beragam event dan method dari objek form, namun yang penting diperhatikan bahwa ada beberapa event dan method yang harus dipahami dengan benar seperti event Form_Load, Form_Activate, dan sebagainya.
Pada saat ditekan sistem dijalankan (execute) maka event Form_Load yang akan dikerjakan pertama kali sehingga pada event ini cocok dimasukkan kode sebagai inisialisasi nilai dari objek-objek yang terdapat di form.

Private Sub Form_Load()
‘Inisialisasi nilai
lstNilai.Clear
txtBaru.Text = “”
txtBaru.Enabled = False
txtJumlah.Text = “”
txtRata.Text = “”
txtMin.Text = “”
txtMaks.Text = “”
txtModus.Text = “”

‘Masukkan Nilai Siswa Mula-Mula
lstNilai.List(0) = 8
lstNilai.List(1) = 9
lstNilai.List(2) = 6
lstNilai.List(3) = 9

‘Non Akfitkan Tombol
cmdTambah.Enabled = False
cmdHapus.Enabled = False
cmdEdit.Enabled = False
cmdBatal.Enabled = False

‘Non Aktifkan Isian Statistik
txtJumlah.Enabled = False
txtRata.Enabled = False
txtMean.Enabled = False
txtMin.Enabled = False
txtMaks.Enabled = False
txtModus.Enabled = False
End Sub

Penting diingat bahwa bila tidak ditemukan pernyataan bersyarat (branching statement) atau pernyataan berulang (looping statement) maka pengerjaan pernyataan akan dilakukan secara berurutan (sequential statement). Seperti pada event Form_Load pengerjaannya akan dilakukan secara berurutan mulai dari pernyataan-1, pernyataan-2, pernyataan-3, hingga pernyataan terakhir.
1. LstNilai.Clear ‘merupakan perintah untuk membersihkan nilai pada objek LstNilai. Clear merupakan metode yang sudah didefenisikan pada LstNilai.
2. txtBaru.text=”” ‘ merupakan perintah untuk memberi nilai string kosong pada properti text dari objek txtBaru. Dari namanya berarti nilai yang bisa diberi ke properti ini adalah himpunan karakter (string). Setiap string di VB harus diapit oleh tanda kutip ganda (double quote)
3. txtBaru.enabled=false ‘merupakan perintah untuk menonaktifkan interaksi antara pemakai dengan objek. Properti enable dari objek Text hanya menerima nilai Boolean, yaitu True atau False.
4. dst

Running
-permulaan aplikasi
running-1

-menambah data nilai
tambah data

-deskriptif statistik
deskriptif statistik

-mengurutkan data
menaik


Pernyataan Bersyarat

12 Juni 2009

Persamaan Kuadrat dengan bentuk:
Y = AX^2 + BX + C

untuk mengetahui nilai X1 dan X2 dapat diketahui dari rumus
X1=-B+SQRT(B^2-4AC)/2A
X2=-B-SQRT(B^2-4AC)/2A

B^2-4AC disebut sebagai Deskriminan (D).

Bila D = 0, maka akan diperoleh X1 dan X2 bernilai sama.
X1 = -B/2A
X2 = X1

Bila D > 1, maka akan diperoleh X1 dan X2 bernilai beda

Bila D < 1, maka akan diperoleh X1 dan X2 bernilai imajinir

-Antar muka program
antar muka

-Implementasi
Private Sub cmdHitung_Click()
Dim A, B, C As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
C = Val(txtC.Text)
D = B ^ 2 – 4 * A * C
If (D = 0) Then
X1 = -B / (2 * A)
X2 = X2
ElseIf (D > 0) Then
X1 = (-B + Sqr(D)) / (2 * A)
X2 = (-B – Sqr(D)) / (2 * A)
Else
X1 = 0 ‘Anggapan Imajiner
X2 = 0 ‘Anggapan Imajiner
End If
txtX1.Text = Str(X1)
txtX2.Text = Str(X2)
End Sub

Private Sub cmdTutup_Click()
End
End Sub

-Running
running

-Analisis
Persamaan kuadrat adalah persamaan yang pangkat peubahanya paling tinggi adalah 2.
Persamaan kuadrat dapat diselesaikan bila diketahui minimal nilai A dan B. Sedangkan nilai C dapat sebagai pelengkap. Bila nilai A dan B maka X1 dan X2 tidak terselesaikan karena nilai X1 peubah pada A dan X2 peubah pada B.
Apakah X1 dan X2 bernilai Nol, Negatif, Positif atau Imajiner tergantung dari nilai Deskriminan (D). Bila D = 0 maka akan diperoleh nilai X1 dan X2 yang sama, apakah nol, negatif atau positif. Bila D>1 maka akan diperoleh nilai X1 dan X2 yang berbeda dan bisa nol, negatif atau positif. Sedangkan Bila D<0 maka akan diperoleh nilai X1 dan X2 imajiner (tidak nyata).


Pernyataan Aritmatika

12 Juni 2009

Diketahui 3 (tiga) buah bilangan A,B dan C. Buatlah program visual basic untuk menyelesaikan persamaan aritmatika dibawah ini:
P=A+B
Q=B-A
X=A+BC
R=(A+B)*C
S=(A+B)*(A-C)
M=A Mod 2
N=B-A+C^2

- Antar muka program
antar muka

- Implementasi

Dim A, B, C As SingleĀ  ‘Deklarasi Global

Private Sub cmdHitungM_Click()
Dim B As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
M = A Mod 2
txtM.Text = Str(M)
End Sub

Private Sub cmdHitungN_Click()
Dim N As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
C = Val(txtC.Text)
N = B – A + C ^ 2
txtN.Text = Str(N)
End Sub

Private Sub cmdHitungP_Click()
Dim P As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
P = A + B
txtP.Text = Str(P)

End Sub

Private Sub cmdHitungQ_Click()
Dim Q As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
Q = B – A
txtQ.Text = Str(Q)
End Sub

Private Sub cmdHitungR_Click()
Dim R As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
C = Val(txtC.Text)
R = (A + B) * C
txtR.Text = Str(R)
End Sub

Private Sub cmdHitungS_Click()
Dim S As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
C = Val(txtC.Text)
S = (A + B) * (A – C)
txtS.Text = Str(S)
End Sub

Private Sub cmdHitungX_Click()
Dim X As Single
A = Val(txtA.Text)
B = Val(txtB.Text)
X = A + B * C
txtX.Text = Str(X)
End Sub

Private Sub cmdTutup_Click()
End
End Sub

- running
running

Analisis
Pernyataan P = A + B, dapat dipahami oleh Visual Basic karena tata cara penulisannya (sintaks) sudah benar. Pernyataan diatas dapat diuraikan juga sebagai berikut:
P adalah operand
= adalah operator
A adalah operand
+ adalah operator
B adalah operand
Jadi dari pernyataan di atas terdapat 3 buah operand.

Operand dalam Visual Basic dapat berupa pengenal, fungsi ataupun konstanta. Pernyataan Z = 5 + 5 juga dapat dikenali oleh visual basic. Angka 5 dalam pernyataan tersebut adalah operand yang nilainya 5. Pernyataan
Z = Pangkat(5)+A juga dapat dipahami oleh Visual Basic bila defenisi fungsi Pangkat dengan satu parameter sudah didefenisikan.

Setiap pernyataan Visual Basic dapat dibagi dalam 2 (dua) kelompok yaitu:
-kelompok kiri (left operand) dan
-kelompok kanan (right) operand)
antara kelompok dipisahkan oleh tanda sama dengan ( = )

Pada kelompok kiri harus berupa pengenal, apakah pengenal variabel atau konstanta dan bukan nilai dari variabel, konstanta. Visual Basic tidak mengenal penulisan pernyataan berikut ini:
5 = A + B ‘pernyataan salah
5 + 5 = A ‘pernyataan salah
“santi” = A ‘pernyataan salah
Pangkat(5)=10 ‘pernyataan salah

Pernyataan tersebut akan menjadi benar bila ditulis seperti dibawah ini:
Z = A + B
A = 5 + 5
A = “santi” ‘himpunan karakter (string) diberi ke pengenal A
Z=Pangkat(5) ‘pernyataan memanggil fungsi Pangkat dengan parameter 5

Urutan pengerjaan di kedua kelompok akan dimulai dari kelompok kedua. Selanjutnya pengerjaan di kelompok kedua akan disesuaikan dengan derajat operator (lihat catatan dibawah untuk lebih jelasnya). Misalkan terdapat pernyataan:
Z = A + C – B
maka proses pengerjaannya akan dimulai dari :
1. A + B, mis X
2. X – B, mis R
3. R diberi ke Z

Catatan
-Yang perlu diperhatikan dalam pembentukan ekspresi aritmatika adalah urutan pengerjaan dari tiap-tiap operator.
-Urutan pengerjaan operator akan dimulai dari sebelah kiri.
-Bila ditemukan tanda kurung maka ekspresi dalam tanda kurung akan dikerjakan pertama kali
-Operator pangkat (^) adalah operator yang memiliki derajat pengerjaan paling tinggi. Pengerjaan operator ^ lebih didahulukan dari operator /,*,Mod,+ atau -.
-Operator bagi (/), kali (*) dan Mod (sisa bagi) memiliki derajat pengerjaan yang sama dan prioritas pengerjaannya lebih tinggi dari operator tambah (+) dan kurang (-).
-Operator tambah(+) dan kurang (-) memiliki derajat pengerjaan yang sama.


Menentukan Skor

10 Juni 2009

Untuk menentukan skor akhir peserta ujian akhir di SD Perlanjasira ditetapkan ketentuan sebagai berkut:
-Jawaban benar dikali 4
-Jawaban tidak diisi dikali 0
-Jawaban salah dikali -1

Dari 5 soal ujian yang diberikan, diperoleh hasil ujian 4 siswa seperti berikut:

Buatlah program komputer untuk menentukan skor nilai dari pelajar di atas.

Nama 1 2 3 4 5
Betra A B C D
Rido C A A B B
Irvan A A A B A
Rio C B A A A

Algoritma
0. Mulai
1. Tentukan nama, nilaibenar,nilaisalah,nilaikosong
2. Tentukan banyak siswa, mis N
3. Ulangi I mulai dari 1 s.d N
4. Ulangi J mulai dari 1 s.d. 50
Jika Soal(I) adalah Benar maka
Skor(I)=Skor(I) * 4
Jika Soal(I) adalah Salah maka
Skor(I)=Skor(I)*1
Jika tidak
Skor(I)=Skor(I)-0
5. Ulangi ke J
6. Ulangi Ke I
7. Cetak nama dan skor
8. Selesai

Implementasi

Private Sub Form_Activate()
Option Base 1
Dim Nama(4) As String * 15, Jawaban(4,5) As String * 1
Dim Kunci(4) As String * 1
Dim Skor(5) As Integer
Dim I,J,N As Byte
Nama(1)="Betra" : Nama(2)="Rido" : Nama(3)="Irvan" : Nama(4)="Rio"
'Jawaban Betra
Jawaban(1,1)="A" : Jawaban(1,2)="A" : Jawaban(1,3)="A" : Jawaban(1,4)="A" 
Jawaban(1,5)="A" 

'Jawaban Rido
Jawaban(2,1)="A" : Jawaban(2,2)="A" : Jawaban(2,3)="A" : Jawaban(2,4)="A" 
Jawaban(2,5)="A" 

'Jawaban Irvan
Jawaban(3,1)="A" : Jawaban(3,2)="A" : Jawaban(3,3)="A" : Jawaban(3,4)="A" 
Jawaban(3,5)="A" 

'Jawaban Rio'
Jawaban(4,1)="A" : Jawaban(4,2)="A" : Jawaban(4,3)="A" : Jawaban(4,4)="A" 
Jawaban(4,5)="A" 

'Kunci Jawaban
Kunci(1)="A" : Kunci(2)="A" : Kunci(3)="A" : Kunci(4)="A" : Kunci(5)="A" 

For I=1 to 4 Step 1
  Skor(I)=0
  For J=1 To 5 Step 1
     IF Jawaban(I,J)=Kunci(I) Then
          Nilai=4
     ElseIf Jawaban(I,J)="K" Then
          Nilai=0
     Else
          Nilai=-1
     End IF
      Skor(I)=Skor(I)+Nilai
  Next J
Next I

'Cetak nama dan skor
For I=1 To 3 Step 1
  Print Nama(I);Skor(I)
Next I
End Sub

Ikuti

Get every new post delivered to your Inbox.