Seperti juga PHP, Visual basic adalah sebuah bahasa pemrograman yang
mudah dipelajari dan tutorial ini akan mengantarkan anda untuk memasuki
dunia VB dengan enjoy.
Dengan Visual basic, kamu bisa ngembangin
aplikasi dan game-game berbasis Windows. Visual Basic jauh lebih mudah
dipelajari dibandingkan bahasa pemrograman lainnya (seperti Visual C++)
namun tetap merupakan bahasa pemrograman yang sangat powerful.
Visual
basic lebih cocok untuk pengembangan aplikasi dibandingkan pengembangan
game. Kamu bisa aja membuat game yang menakjubkan menggunakan Visual
basic, tetapi jika kamu ingin membuat game profesional yang lebih
canggih seperti Quake 2, maka kamu mungkin lebih baik memilih untuk
menggunakan bahasa lain (seperti C++), yang tentunya akan jauh lebih
sulit untuk digunakan.
Namun demikian, Visual basic sebenarnya sudah
sangat memadai untuk memenuhi hampir semua kebutuhan pemrograman
aplikasi dangame yang kamu inginkan.
Keuntungan Visual basic:
-
Bahasa yang sederhana. Banyak hal yang mungkin sulit dilakukan jikak
kita menggunakan bahasa pemrograman lainnya, akan dapat dilakukan dengan
mudah dengan menggunakan Visual basic.
- Karena Visual basic sangat
populer, maka sangat banyak sumber-sumber yang dapat kamu gunakan untuk
belajar dan mengembangkan kemampuan kau baik berupa buku, web site dll .
Dengan banyaknya sumber-sumber tersebut, maka tentu saja kamu akan
sangat mudah menemukan jawaban atas persoalan yang kamu hadapi kan?
-
Kamu bisa memperoleh banyak tools baik gratis maupun tidak di Internet
yang akan sangat membantu menghemat waktu kamu dalam pemrograman.
Contoh, jika kamu ingin membuat program untuk melakukan ping ke salah
satu komputer di jaringan kamu, alih-alih membuat program ping tersebut
sendiri, kamu bisa donlot sebuah kontrol yang melakukan hal tersebut dan
menempelkannya di program kamu. Jika dibandingkan dengan bahasa lain,
Visual basic memiliki variasi tools yang paling luas lho.
Kekurangan Visual basic:
-
Visual Basic adalah bahasa pemrograman yang powerful, tetapi sebenarnya
tidak terlalu bagus untuk membuat game-game yang benar-benar memuaskan.
- Lebih lambat dibandingkan bahasa pemrograman lain
- matakuliah(kodemk, namamk, sks), berisi daftar matakuliah yang ditawarkan
- dosen(nip, nama), berisi daftar dosen pengampu kuliah
- mahasiswa(nim, nama, dosenpembimbing), berisi daftar mahasiswa
- kuliah(kodekuliah, kodemk, nip, thnakademik, semester), berisi daftar matakuliah dan dosen pengampu
- peserta(nim, kodekuliah, nilai), berisi kuliah yang diikuti mahasiswa beserta nilainya dalam huruf
- matakuliah hanya ditawarkan sekali dalam setahun, yaitu pada semester 1 (ganjil) saja atau semester 2 (genap) saja dan tidak kedua-duanya.
- bila pernah mengulang matakuliah, nilai yang diikutkan untuk perhitungan IP adalah nilai terakhir
- matakuliah dikatakan lulus bila nilai yang diperoleh minimal ‘D’
1. Menampilkan banyaknya SKS yang telah diselesaikan oleh masing-masing mahasiswa
a. Bila matakuliah yang diulang semua masuk dalam perhitungan
SELECT nim, SUM( sks ) jumlahsks
FROM peserta, (
SELECT kodekuliah, kuliah.kodemk, sks
FROM kuliah, matakuliah
WHERE kuliah.kodemk = matakuliah.kodemk
) A
WHERE peserta.kodekuliah = A.kodekuliah
GROUP BY nim
Penjelasan:
Pada query ini kita menampilkan jumlah SKS
yang telah diselesaikan oleh masing-masing mahasiswa bila matakuliah
yang diulang semua masuk dalam perhitungan. Pertama-tama, kita melakukan
join tabel kuliah dengan tabel matakuliah pada kondisi kodemk pada
tabel kuliah sama dengan kodemk pada tabel matakuliah untuk
mendapatkankodekuliah, kodemk dan sks.
…(
SELECT kodekuliah, kuliah.kodemk, sks
FROM kuliah, matakuliah
WHERE kuliah.kodemk = matakuliah.kodemk
) A
…
Lalu hasil join tersebut diberi alias A.
Selanjutnya, tabel A tadi kita join-kan dengan tabel peserta pada
kondisi kodekuliah pada tabel peserta sama dengan kodekuliah pada
tabelA untuk mendapatkan nim dan sks yang selanjutnya kita
menjumlahkan sks dengan SUM(sks) yang dikelompokkan
berdasarkan nim menggunakan GROUP BY nim.
b. Bila matakuliah yang diulang hanya yang sesuai dengan asumsi yang masuk dalam perhitungan
SELECT nim, SUM( sks ) totalsks
FROM (
SELECT DISTINCT nim, kodemk
FROM peserta, kuliah
WHERE peserta.kodekuliah = kuliah.kodekuliah
)P, matakuliah
WHERE P.kodemk = matakuliah.kodemk
GROUP BY nim
Penjelasan:
Pada query ini kita menampilkan jumlah SKS
yang telah diselesaikan oleh masing-masing mahasiswa bila matakuliah
yang diulang hanya dihitung sekali. Pertama-tama kita melakukan join
tabel peserta dengan tabel kuliah pada kondisi kodekuliah pada
tabel peserta sama dengan kodekuliah pada tabel kuliah untuk
mendapatkan nim dan kodemk.
… (
SELECT DISTINCT nim, kodemk
FROM peserta, kuliah
WHERE peserta.kodekuliah = kuliah.kodekuliah
)P …
Kata DISTINCT setelah SELECT digunakan
untuk menghilangkan pengulangan record yang
mempunyai nim dan kodemk yang sama agar matakuliah yang diulang oleh
seorang mahasiswa hanya muncul sekali. Hasil join tersebut diberi
alias P. Lalu tabel P kita join-kan dengan tabel matakuliah pada
kondisi kodemk pada tabel P sama dengan kodemk pada
tabel matakuliah untuk mendapatkan nim dan sks yang dijumlahkan
dengan SUM(sks) setelah dikelompokkan berdasarkan GROUP BY nim.
2. Menampilkan data-data yang bisa untuk melakukan perhitungan IPK (berdasar asumsi di atas)
SELECT nim, kuliah.kodemk, nilai, sks
FROM peserta, matakuliah, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
AND kuliah.kodemk = matakuliah.kodemk
AND (
nim, kuliah.kodemk, thnakademik
)
IN (
SELECT nim, kodemk, MA thnakademik ) thnterakhir
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
)
Penjelasan:
Pada query ini kita melakukan join pada
tiga tabel, yaitu peserta, matakuliah dan kuliah dengan
kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah pada
tabelpeserta dan kodemk pada tabel kuliah sama dengan kodemk pada
tabel matakuliah. Setelah itu kita lakukan operasi intersection dengan
query yang menampilkan tahun terakhir menyelesaikan suatu matakuliah.
…
AND (
nim, kuliah.kodemk, thnakademik
)
IN (
SELECT nim, kodemk, MA thnakademik ) thnterakhir
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
)
Pada query untuk menampilkan tahun
terakhir menyelesaikan suatu matakuliah, kita melakukan join pada
tabel peserta dan tabel kuliah dengan kondisi kodekuliah pada
tabel kuliahsama dengan kodekuliah pada tabel peserta. Lalu untuk
mencari tahun terakhir digunakan fungsi MAthnakademik) setelah
dikelompokkan berdasarkan nim dan kodemk denganGROUP BY nim, kodemk.
Lalu operasi intersection dilakukan dengan memeriksa apakah record nim,
kodemk, thnakademik dari hasil join tiga tabel ada pada hasil query
untuk menampilkan tahun terakhir menyelesaikan suatu matakuliah.
3. Menampilkan dosen yang pernah mengampu kelas matakuliah yang pesertanya tidak lebih dari 15 mahasiswa
SELECT DISTINCT nip
FROM kuliah, (
SELECT kodekuliah, COUNT( * ) jumlahpeserta
FROM peserta
GROUP
BY kodekuliah
) banyakpeserta
WHERE kuliah.kodekuliah = banyakpeserta.kodekuliah
AND jumlahpeserta <=15
Penjelasan:
Pada query ini kita akan menampilkan dosen
yang pernah mengampu matakuliah yang pesertanya <= 15 mahasiswa.
Awalnya menggunakan tabel peserta, kita hitung dahulu jumlah peserta
dari setiap kuliah dengan menggunakan COUNT setelah dikelompokkan berdasarkan kodekuliah dengan GROUP BY kodekuliah.
…(
SELECT kodekuliah, COUNT( * ) jumlahpeserta
FROM peserta
GROUP
BY kodekuliah
) banyakpeserta
…
Setelah itu query tersebut diberi
alias banyakpeserta. Lalu pada query utama kita melakukan join pada
tabel banyakpeserta dengan tabel kuliah pada kondisi kodekuliah pada
tabelkuliah sama dengan kodekuliah pada tabel banyakpeserta serta
menambahkan kondisi jumlahpeserta <= 15. Pada query utama kita
menampilkan nip yang di dahului dengan kataDISTINCT agar nip yang
ditampilkan tidak ada perulangan.
4. Menampilkan nama mahasiswa yang telah lulus lebih dari 100 SKS
SELECT nama
FROM (
SELECT nim, SUM( sks ) jumlahsks
FROM peserta, kuliah, matakuliah
WHERE nilai <
'E'
AND kuliah.kodekuliah = peserta.kodekuliah
AND kuliah.kodemk = matakuliah.kodemk
GROUP
BY nim
) yanglulus, mahasiswa
WHERE jumlahsks >100
AND yanglulus.nim = mahasiswa.nim
Penjelasan:
Pada query ini kita akan menampilkan nama
mahasiswa yang telah lulus > 100 SKS. Mula-mula kita menghitung
jumlah SKS dari matakuliah yang lulus untuk masing-masing mahasiswa.
Kita melakukan join pada tiga
tabel peserta, kuliah dan matakuliah dengan kondisi kodekuliah pada
tabel kuliah sama dengan kodekuliah pada tabel peserta dan kodemk pada
tabel kuliah sama dengan kodemk pada tabel matakuliah disertai dengan
kondisi nilai < ‘E’ yang berarti nilai >= ‘E’ tidak diikutkan.
Lalu sks yang memenuhi kondisi dijumlahkan dengan SUM(sks) yang diberi
alias jumlahsks setelah dikelompokkan berdasarkan nim dengan GROUP BY
nim. Query tersebut diberi alias jumlahlulus.
…(
SELECT nim, SUM( sks ) jumlahsks
FROM peserta, kuliah, matakuliah
WHERE nilai <
'E'
AND kuliah.kodekuliah = peserta.kodekuliah
AND kuliah.kodemk = matakuliah.kodemk
GROUP
BY nim
) yanglulus …
Pada query utama kita melakukan join pada
tabel yanglulus dengan mahasiswa dengan kondisi nim pada
tabel yanglulus sama dengan nim pada tabel mahasiswa disertai
kondisijumlahsks > 100 untuk menampilkan nama mahasiswa yang telah
lulus > 100 SKS.
5. Menampilkan banyaknya siswa yang telah lulus tugas akhir bila kode matakuliah untuk tugas akhir adalah ‘M0012’
SELECT COUNT( * ) lulusTA
FROM peserta, kuliah
WHERE nilai <
'E'
AND kuliah.kodekuliah = peserta.kodekuliah
AND kodemk =
'M0012'
Penjelasan:
Pada query kali ini kita akan menampilkan
jumlah mahasiswa yang telah lulus tugas akhir bila kode matakuliah tugas
akhir = ‘M0012’. Pertama-tama kita melakukan join pada
tabel peserta dankuliah dengan kondisi kodekuliah pada tabel kuliah sama
dengan kodekuliah pada tabel peserta untuk
mendapatkan nilai dan kodemk. Lalu hasil join tersebut kita saring
dengan kondisi nilai < ‘E’ dan kodemk = ‘M0012’ yang selanjutnya
setelah disaring kita hitung dengan COUNT dan diberi alias lulusTA untuk menghitung jumlah mahasiswa yang telah lulus tugas akhir.
6. Menampilkan daftar nomor dan nama mahasiswa beserta IP berdasar dua asumsi di atas
SELECT buatip.nim, nama, (
SUM( nilaisks ) / SUM( sks )
) ip
FROM mahasiswa, (
SELECT nim, kuliah.kodemk, (
( 69 – ASCII( UPPER( nilai ) ) ) * sks
) nilaisks, sks
FROM peserta, matakuliah, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
AND kuliah.kodemk = matakuliah.kodemk
AND (
nim, kuliah.kodemk, thnakademik
)
IN (
SELECT nim, kodemk, MA thnakademik ) thnterakhir
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
)
)buatip
WHERE mahasiswa.nim = buatip.nim
GROUP BY nim
Penjelasan:
Pada query yang cukup panjang ini. kita
akan menampilkan nomor dan nama mahasiswa beserta IP berdasar dua asumsi
di atas. Pada awalnya kita membuat query untuk
menampilkan nim,kodemk dan nilai yang sudah dikali sks. Query ini mirip
seperti query yang dijelaskan pada nomor 2 dengan sedikit perubahan.
…(
SELECT nim, kuliah.kodemk, (
( 69 – ASCII( UPPER( nilai ) ) ) * sks
) nilaisks, sks
FROM peserta, matakuliah, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
AND kuliah.kodemk = matakuliah.kodemk
AND (
nim, kuliah.kodemk, thnakademik
)
IN (
SELECT nim, kodemk, MA thnakademik ) thnterakhir
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
)
) buatip
Bagian yang ditebalkan merupakan perubahan
yang dilakukan untuk query kali ini. Hasil query tersebut diberi
alias buatip. Lalu kita melakukan join pada tabel buatip dan
tabel nama dengan kondisi nim pada tabel mahasiswa sama dengan nim pada
tabel buatip untuk mendapatkan nama. Selanjutnya untuk menghitung IP,
kita menjumlahkan semua nilaisks dan membaginya dengan
jumlah sks dengan SUM(nilaisks) / SUM(sks) setelah dikelompokkan
menurut nim-nya dengan menggunakan GROUP BY nim.
7. Menghitung IP bila asumsi kedua di atas diganti bahwa nilai
yang dipakai untuk penentuan IP adalah nilai yang terbaik (dari
serangkaian mengulang matakuliah)
SELECT nim, (
SUM( nilaimaxsks ) / SUM( sks )
)ip
FROM (
SELECT nim, (
( 69 – ASCII( UPPER( nilaimax ) ) ) * sks
)nilaimaxsks, sks
FROM matakuliah, (
SELECT nim, kodemk, MIN( nilai ) nilaimax
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
) nilaiterbaik
WHERE nilaiterbaik.kodemk = matakuliah.kodemk
)buatip
GROUP BY nim
Penjelasan:
Pada query ini kita akan menampilkan IP
dengan asumsi kedua diganti menjadi nilai yang dipakai untuk menghitung
IP adalah nilai yang terbaik. Mula-mula kita mencari nilai terbaik pada
setiap matakuliah untuk masing-masing mahasiswa. Kita melakukan join
pada tabel peserta dengan tabel kuliah pada kondisi kodekuliah pada
tabel kuliah sama dengan kodekuliah pada tabel peserta untuk
mendapatkan kodemk dan nilai. Lalu kita mencari nilai terbaik dari
setiap matakuliah untuk masing-masing mahasiswa
dengan MIN(nilai) setelah dikelompokkan
berdasarkan nim dan kodemk dengan menggunakan GROUP BY nim,
kodemk karena nilai ascii ‘A’ < ‘B’ < ‘C’ < ‘D’ < ‘E’.
…(
SELECT nim, kodemk, MIN( nilai ) nilaimax
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
) nilaiterbaik
…
Hasil query tersebut diberi
alias nilaiterbaik. Setelah itu kita melakukan join
tabel nilaiterbaik dengan tabel matakuliah pada kondisi kodemk pada
tabel nilaiterbaik sama dengan kodemk pada tabel kuliah untuk
mendapatkan sks.
Selanjutnya ditampilkan nim, nilaimaxsks yang merupakan nilaimax dikali sks serta sks.
…(
SELECT nim, (
( 69 – ASCII( UPPER( nilaimax ) ) ) * sks
)nilaimaxsks, sks
FROM matakuliah, (
SELECT nim, kodemk, MIN( nilai ) nilaimax
FROM peserta, kuliah
WHERE kuliah.kodekuliah = peserta.kodekuliah
GROUP BY nim, kodemk
) nilaiterbaik
WHERE nilaiterbaik.kodemk = matakuliah.kodemk
)buatip
…
Hasil query tersebut diberi alias buatip.
Kemudian kita menghitung IP seperti query pada nomor 6
yaitu SUM(nilaimaxsks) / SUM(sks) setelah dikelompokkan
berdasarkan nimdengan menggunakan GROUP BY nim.