Buatlah Program dalam Pascal untuk membuat sistem informasi sederhana, yang mengelola sebuah data tertentu beserta dengan minimal 10 query + 1 prosedur InputData.
Contoh :
Pengelolaan Data Mahasiswa
Program ini mengelola data mahasiswa berupa tabel yang mempunyai atribut/field: nim, nama, jurusan, ipk. Sebagai ilustrasi (ini hanya contoh):
nim | nama | jurusan | IPK |
111 | Bejo | IF | 2.5 |
112 | Abdurahman | IF | 3.4 |
113 | Revalina | TE | 2.75 |
114 | Baizal | TI | 3.51 |
115 | Tono | IF | 2.6 |
116 | Tini | TE | 2.2 |
117 | Paijo | TI | 2.1 |
a. Program menyediakan 3 menu query (ingat, dalam tugas minimal 10 menu query), yang dapat dipilih oleh user:
1. Mencari dan mencetak nama berdasar nim yang dimasukkan oleh user
2. Mencetak daftar nama mahasiswa (beserta jumlahnya) berdasar jurusan yang dimasukan oleh user.
3. Mencari dan mencetak nama mahasiswa dengan IPK tertinggi
Ilustrasi hasil running program (ini hanya contoh, berdasarkan tabel yang telah di-input-kan di atas)
- Misal user memilih menu 1
|
- Misal, user memilih menu 2
|
- Misal, user memilih menu 3
|
Contoh Program (ingat, dalam tugas harus memakai PASCAL, dalam contoh ini adalah dalam notasi algoritmik)
Program Query |
Kamus : type DataMhs :< nim : string nama : string jurusan : string ipk : real > type TabelMahasiswa = array [1..100] of DataMhs TabMhs : TabelMahasiswa {Tabel utk menampung data mahasiswa} jummhs:integer {Jumlah mahasiswa dalam TabMhs} pil : integer {pilihan menu} posisimax:integer {index dari posisi mhs IPK tertinggi} nimcari:string {nim yang dimasukkan oleh user} JurCari : string {jurusan yang dimasukkan oleh user} Procedure inputtabel Procedure cari_nama_berdasar_nim(input TabMhs:TabelMahasiswa, input nmhs:integer, input NimCari:string) Procedure cari_daftarmhs_berdasar_jurusan(input TabMhs:TabelMahasiswa, input nmhs:integer, input JurCari:string) Procedure cari_ipk_tertinggi(input TabMhs:TabelMahasiswa, input nmhs:integer, output Imax:integer) |
Algoritma {Pemanggilan prosedur input tabel} inputtabel output('1.Cari nama berdasar nim') output('2.Cari daftar mahasiswa berdara jurusan') output('3.Cari mahasiswa dengan IPK tertinggi') output('menu pilihan = ') input(pil) depend on (pil) 1 : output('masukkan nim = ') input(nimcari) cari_nama_berdasar_nim(TabMhs,jummhs,NimCari) 2 : output('masukkan jurusan = ') input(JurCari) cari_daftarmhs_berdasar_jurusan(TabMhs,jummhs,JurCari) 3 : cari_ipk_tertinggi(TabMhs,jummhs,posisimax) output('Mahasiswa IPK tertinggi = ',TabMhs[posisimax].nama) |
Procedure cari_nama_berdasar_nim(input TabMhs:TabelMahasiswa, input nmhs:integer, input NimCari:string) {IS : terdefinisi TabMhs yang tidak kosong FS : mencetak nama mahasiswa berdasar nimcari} |
Kamus |
Algoritma |
Procedure cari_daftarmhs_berdasar_jurusan(input TabMhs:TabelMahasiswa, input nmhs:integer, input JurCari:string) {IS : terdefinisi TabMhs yang tidak kosong FS : Mencetak daftar nama mahasiswa (beserta cacah-nya) berdasar jurcari} |
Kamus |
Algoritma |
Procedure cari_ipk_tertinggi(input TabMhs:TabelMahasiswa, input nmhs:integer, output Imax:integer) {IS : terdefinisi TabMhs yang tidak kosong, ASUMSIKAN tidak ada IPK yang sama FS : Mencari mahasiswa dengan IPK tertinggi. Hasilnya adalah index yang menyatakan posisi record mahasiswa dengan IPK tertinggi } |
Kamus i:integer |
Algoritma |
INGAT, INI HANYA CONTOH, ANDA BISA MEMBUAT PROGRAM UNTUK MENGELOLA DATA YANG LAIN, DAN JUGA QUERY YANG LAIN.
KETENTUAN
1. Tugas yang dibuat untuk masing-masing kelompok harus berbeda, untuk itu, paling lambat tanggal 24 Nov masing-masing kelompok harus mengumpulkan draft tugas yang akan dikerjakan, dengan cara kirim email ke bayzal@gmail.com. Draft tugas ini berisi contoh data anda seperti apa, nanti query-nya apa saja, belum sampai program (intinya, baru berisi “ide” saja)
2. Jika draft tugas anda, saya pandang “sama” dengan kelompok lain yang lebih dahulu mengirim email ke saya, maka kelompok anda harus mencari ide yang lain, dan dikirim ulang, paling lambat sehari setelah saya kirim email balasan ke kelompok anda. Sementara itu kelompok yang lebih dahulu mengirim, tetap dapat melenggang dengan ide-nya.
3. Email draft tugas (ide) berisi : dua buah file yang dilampirkan (attachment files)
1. File yang berisi daftar seluruh anggota kelompok dan no HP ketua kelompok, berformat txt
2. File yang berisi draft tugas (ide) berformat docx
File ini diberi nama : Kelompok <nama kelompok>.txt dan IdeKelompok <nama kelompok>.docx.
Contoh :
Kelompok AyuTingTing.txt (untuk file 1)
IdeKelompok AyuTingTing.docx (untuk file 2)
Email ini diberi subject Ide Tugas Prokom Kelompok<nama kelompok>
contoh : Ide Tugas Prokom Kelompok AyuTingTing
Kirim paling lambat 24 Nov 2011
4. Tugas final dikumpulkan via email ke bayzal@gmail.com paling lambat tanggal 10 Desember 2011. Lampirkan 2 file :
1. File yang berisi daftar seluruh anggota kelompok dan no HP ketua kelompok, berformat txt
2. File yang berisi source code tugas berformat .pas
File ini diberi nama : Kelompok <nama kelompok>.txt dan <nama kelompok>.pas
Contoh :
Kelompok AyuTingTing.txt (untuk file 1)
AyuTing.pas (untuk file 2)
Email ini diberi subject Tugas Final Prokom Kelompok<nama kelompok>
contoh : Tugas Final Prokom Kelompok AyuTingTing
5. Jika ada kelompok yang dapat membuat programnya dengan memanfaatkan tipe file, maka akan mendapatkan nilai “bonus”.
6. Urutan presentasi ditentukan oleh urutan pengiriman file tugas final. Kelompok yang mengirim paling terakhir, maka kelompok tersebut presentasi paling pertama. Dalam ini mengikuti aturan LIFO (Last In First Out).
7. Presentasi dilakukan dari laptop saya, dengan menggunakan source code yang telah dikirimkan ke saya.
0 komentar:
Posting Komentar