Dipersiapkan oleh:
16509023\Ivan Renaldo
16509035\Arie Pratama
1. Ringkasan....................................................................................................................................3
2. Penjelasan Tambahan Fungsi, Prosedur, atau Kamus Global.....................................................3
2.1 <Spesifikasi Fitur Tambahan 1>.......................................................................................3
2.2 <Spesifikasi Fitur Tambahan 2>.......................................................................................3
3. Program Utama............................................................................................................................3
4. Algoritma-Algoritma Menarik.....................................................................................................3
4.1 <Algoritma 1>...................................................................................................................3
4.2 <Algoritma 2>...................................................................................................................3
5. Data Test......................................................................................................................................4
5.1 <Data Test 1>....................................................................................................................4
5.2 <Data Test 2>....................................................................................................................4
6. Test Script....................................................................................................................................4
7. Pembagian Kerja dalam Kelompok.............................................................................................4
8. Notulen Responsi.........................................................................................................................4
1 Ringkasan
Tugas Besar Pengenalan Teknologi Informasi A secara umum adalah membuat sebuah
program yang mengelola data mahasiswa, yaitu berupa tabel mahasiswa yang berisi data-data
mahasiswa yang terdiri dari NIM (string, dengan panjang 8 yang seluruhnya harus berupa
bilangan), Nama (string, dengan panjang 30), Tanggal Lahir (tipe bentukan Date –
<DD,MM,YYYY>), Indeks Prestasi (real), dan SKS Total yang sudah ditempuh (integer). Lalu
Mengelola data pengambilan kuliah mahasiswa berikut nilainya, yang terdiri dari NIM, Kode
Kuliah (string, dengan panjang 6), SKS (integer), Nilai (character). Penyimpanan data pada tabel
selalu terurut membesar berdasarkan NIM.
Laporan ini berisi tentang proses pengerjaan tugas besar PTI A tersebut hingga hasil yang
diperoleh secara umum.
Isi dengan executive summary dari laporan, antara lain mengenai:
- Deskripsi umum persoalan (hati-hati: tidak menyalin dokumen Deskripsi Tugas Besar I,
dokumen deskripsi Tugas Besar I diletakkan sebagai lampiran).
- Isi umum laporan secara singkat.
- Kesimpulan tentang hasil Tugas Besar I secara umum.
case (nNilai) of
'A' : KonvertNilai 4
'a' : KonvertNilai 4
'B' : KonvertNilai 3
'b' : KonvertNilai 3
'C' : KonvertNilai 2
'c' : KonvertNilai 2
'D' : KonvertNilai 1
'd' : KonvertNilai 1
'E' : KonvertNilai 0
'e' : KonvertNilai 0
temp TblM.Tab[i]
TblM.Tab[i] TblM.Tab[imax]
TblM.Tab[imax] temp
nDir '<ARS>'
inc(JmlDir)
else
nDir ''
inc (JmlFile)
ValidasiFile true
findnext (info)
output (berkas+'>')
input (masukan)
sss masukan[1]+masukan[2]+masukan[3]
if (masukan='ars') or (masukan='ARS') then {perintah ARS untuk menampilkan seluruh
arsip direktori}
TampilArsip
masukan ''
else
if (sss='bf ') then {perintah bf untuk membuka folder}
pindahArsip (masukan)
masukan ''
else
if (masukan='bf..') then {perintah bf.. untuk keluar dari folder}
keluarArsip;
masukan ''
else
if (masukan='bantuan') then {perintah bantuan untuk menampilkan cara penggunaan}
bantuan;
masukan ''
else
if (copy(masukan,1,5)='buka ') then
masukan copy(masukan, 6, length(masukan)-5);
else
if (copy(masukan,1,7)='simpan ') then
masukan copy(masukan, 8, length(masukan)-7);
else
if (masukan = 'keluar') then
masukan 'keluar'
else
masukan ''
getdir (0, berkas)
3 Program Utama
Algoritma
isFilCur false
NamaFileKuliah 'TabelKuliah.txt' {Nama File Kuliah secara default}
NamaFileMhs 'TabelMahasiswa.txt' {Nama File Nilai secara default}
BacaFileNilai (NamaFileKuliah, TabKul) {Membuka File Nilai}
BacaFileMhs (NamaFileMhs, TabMhs) {Membuka File Mahasiswa}
repeat
pilihanAwal HalamanAwal; {Menampilkan Halaman Awal}
case (pilihanAwal) of
1:
{tidak ada proses, langsung menuju Halaman Utama}
clrscr
2:
{Menambahkan data Mahasiswa dengan TambahMhs}
clrscr
tambah TabMhs.NMhs
TambahMhs (TabMhs, TabKul)
if not (tambah=TabMhs.NMhs) then
isFilCur true
else
repeat
clrscr
pilihan TampilMenu
case (pilihan) of
'a':
{Menambahkan data mahasiswa}
clrscr;
tambah TabMhs.NMhs;
TambahMhs (TabMhs, TabKul);
if not (tambah=TabMhs.NMhs) then
isFilCur true
'b':
{Menghapus data Mahasiswa beserta Kuliah yang diambilnya}
clrscr
output ('NIM : ')
input (nNIM)
indeks CariMhs (nNIM, TabMhs)
if not (indeks=0) then
'c':
{Mengubah data Mahasiswa}
output ('Masukan NIM Mahasiswa yang akan diubah datanya : ')
input (nNIM)
indeks CariMhs (nNIM, TabMhs)
if not (indeks = 0) then
'd':
{Menambah Data Kuliah Mahasiswa}
clrscr
output ('Masukan NIM Mahasiswa yang akan ditambah datanya : ')
input (nNIM)
indeks CariMhs (nNIM, TabMhs)
if not (indeks = 0) then
'e':
{Menghapus Kode Kuliah dengan NIM yang dimasukan}
clrscr
output ('Masukan NIM dan Kode Kuliah Mahasiswa yang akan dihapus datanya :')
output ('Masukan NIM : ')
input (nNIM)
output ('Masukan Kode Kuliah : ')
input (nKdKul)
indeks CariKuliah (nNIM, nKdKul, TabKul)
if not (indeks = 0) then
output ('NIM dengan Kode Kuliat yang anda masukan tidak ada dalam database')
output ('Tekan ENTER untuk kembali ke menu')
'f':
{Mengubah Kode Kuliah dengan NIM yang dimasukan}
clrscr
output ('Masukan NIM dan Kode Kuliah Mahasiswa yang akan diubah datanya :')
output ('Masukan NIM : ')
input (nNIM)
output ('Masukan Kode Kuliah : ')
input (nKdKul)
indeks CariKuliah (nNIM, nKdKul, TabKul)
if not (indeks = 0) then
repeat
output ('Masukkan Nilai : ')
input (nNilai)
until (nNilai='A')or(nNilai='a')or(nNilai='b')or(nNilai='b')or
(nNilai='C')or(nNilai='c')or(nNilai='D')or(nNilai='d')or
(nNilai='E')or(nNilai='e')
'g':
{Menampilkan Tabel Mahasiswa dan Tabel Kuliah secara terurut}
clrscr
TampilDataMhs (TabMhs, TabKul)
'h':
{Menyimpan Tabel Mahasiswa dan Tabel Kuliah secara default}
SimpanData (NamaFileMhs, NamaFileKuliah, TabMhs, TabKul)
output ('Tabel Mahasiswa berhasil disimpan di ', NamaFileMhs )
output ('Tabel Kuliah berhasil disimpan di ', NamaFileKuliah)
isFilCur false
'i':
{Keluar dari program, mengingatkan bila data belum tersimpan dan menampilkan pesan
selesai}
clrscr
if (isFilCur) then
output ('Data yang anda masukan belum disimpan. Apakah anda ingin menyimpan?')
output ('Tekan (Y/T) : ')
input (simpan);
if (simpan='Y') or (simpan='y') then
'j':
{Menampilkan Menu Bonus}
repeat
clrscr
pilihanBonus MenuBonus
case (pilihanBonus) of
'a' :
{Menampilkan Tabel Mahasiswa sesuai urut IP}
clrscr
TampilUrutIP (TabMhs)
'b' :
{Membuka File Tabel Mahasiswa dan File Tabel Kuliah pada file yang lain
(bukan file default)}
clrscr
output ('*************************')
output ('BUKA FILE TABEL MAHASISWA')
output ('*************************')
repeat
TampilDos (nBerkas, oDOS)
until (ValidasiFile (oDOS)) or (oDOS = 'keluar')
NamaFileMhs nBerkas+'\'+oDOS
BacaFileMhs (NamaFileMhs, TabMhs)
output ('Tabel Mahasiswa Berhasil Dibuka')
output ('**********************')
output ('BUKA FILE TABEL KULIAH')
output ('**********************')
repeat
TampilDos (nBerkas, oDOS)
until (ValidasiFile (oDOS)) or (oDOS = 'keluar')
NamaFileKuliah nBerkas+'\'+oDOS
BacaFileNilai (NamaFileKuliah, TabKul)
output ('Tabel Kuliah Berhasil Dibuka')
output ('Tekan Enter untuk kembali')
'c' : begin
{Menyimpan File Tabel Mahasiswa dan File Tabel Kuliah pada file yang lain
(bukan file default)}
clrscr
output ('***************************')
output ('SIMPAN FILE TABEL MAHASISWA')
output ('***************************')
repeat
TampilDos (nBerkas, oDOS)
repeat
if (oDOS='') then
ValSimpan 't'
else
if not(ValidasiFile (oDOS)) and not(oDOS='keluar') then
ValSimpan 'y'
NamaFileMhs nBerkas+'\'+oDOS
SimpanFileMhs (NamaFileMhs, TabMhs)
ouput ('Tabel Mahasiswa Berhasil Disimpan')
output ('************************')
output ('SIMPAN FILE TABEL KULIAH')
output ('************************')
repeat
TampilDos (nBerkas, oDOS)
repeat
if (oDOS='') then
ValSimpan 't'
else
if not(ValidasiFile (oDOS)) and not(oDOS='keluar') then
ValSimpan 'y'
until (ValSimpan = 'y') or (ValSimpan = 't')
until (oDOS = 'keluar') or (ValSimpan = 'y')
if not (oDOS ='keluar') then
NamaFileKuliah nBerkas+'\'+oDOS
SimpanFileNilai (NamaFileKuliah, TabKul)
output ('Tabel Kuliah Berhasil Disimpan')
'd' :
{Menampilkan Bantuan}
clrscr
bantuan
'e' :
clrscr
4 Algoritma-Algoritma Menarik
A. Algoritma I
getdir (0, ss)
output (ss+'\')
JmlDir 0
JmlFile 0
findfirst (ss+'\*.*', anyFile, info)
while DosError=0 do
nDir '<ARS>'
inc(JmlDir)
else
nDir ''
inc (JmlFile)
Algoritma di atas terdapat pada procedure TampilArsip. Algoritma di atas sangat menarik karena
membuka arsip dari file lain yang kemudian di gubah. Cukup sulit untuk membuatnya dan
banyak perintah-perintah yang sebelumnya belum dipelajari.
B. Algoritma II
ValidasiFile false;
getdir (0, n)
findfirst (n+'\*.*', anyFile, info)
while (doserror = 0) do
ValidasiFile true
findnext (info)
Algoritma di atas terdapat pada fungsi validasifile. Algoritma di atas sangat menarik karena
memvalidasi file apakah ada atau tidak. Sebenarnya gampang, hanya saja untuk membuatnya
diperlukan ketelitian yang lebih. Makanya sangat menarik.
C. Algoritma III
getdir (0,n)
i length (ss)
x i+1
repeat
x x-1;
until (ss[x]='/') or (x=4)
if (x=4) then
ss1 copy (ss,x,i-x+1)
else
ss1 copy (ss,x+1,i-x+1)
D. Algoritma IV
getdir (0,n)
i length (n)
x i+1
repeat
x x-1
until (n[x]='\')
ss1 copy (n, 1, x-1)+'\'
chdir (ss1)
getdir (0,n)
Algoritma ini ada pada procedure KeluarArsip. Digunakan untuk keluar arsip yang di buat.
Sangat menarik karena menggunakan perintah-perintah yang baru saja di ajarkan pada akhir
pertemuan KU 1071.
E. Algoritma V
getdir (0, berkas)
output (berkas+'>')
input (masukan)
sss masukan[1]+masukan[2]+masukan[3]
if (masukan='ars') or (masukan='ARS') then {perintah ARS untuk menampilkan seluruh
arsip direktori}
TampilArsip
masukan ''
else
if (sss='bf ') then {perintah bf untuk membuka folder}
pindahArsip (masukan)
masukan ''
else
if (masukan='bf..') then {perintah bf.. untuk keluar dari folder}
keluarArsip;
masukan ''
else
if (masukan='bantuan') then {perintah bantuan untuk menampilkan cara penggunaan}
bantuan;
masukan ''
else
if (copy(masukan,1,5)='buka ') then
masukan copy(masukan, 6, length(masukan)-5);
else
if (copy(masukan,1,7)='simpan ') then
masukan copy(masukan, 8, length(masukan)-7);
else
if (masukan = 'keluar') then
masukan 'keluar'
else
masukan ''
getdir (0, berkas)
Algoritma di atas digunakan pada procedure TampilDOS. Algoritma ini sangat rumit dan cukup
sulit untuk di buat. Karena itu algoritma ini sangat menarik dan sulit untuk dipecahkan dengan
sempurna.
5 Data Test
Isi dengan data test dan penjelasan yang diperlukan. Hal-hal yang harus dijelaskan untuk tiap
data test:
- Fitur apa (saja) yang dites dengan data test ini
- Hasil apa yang seharusnya diberikan
- Penjelasan lain (jika ada)
- Data test-nya sendiri.
6 Test Script
Isi dengan skenario test yang dimungkinkan untuk semua fitur yang ada. Bisa dibuat dalam
bentuk tabel sebagai berikut:
No. Fitur yang Tujuan Langkah-Langkah Testing Input Data Hasil yang
Dites Testing Test Diharapkan
1 <Fitur 1> … … <tinggal refer …
ke data test di
atas>
2 <Fitur 1> … … … …
3
…
5 <Fitur 2> … … … …
6 <Fitur 2> … … … …
Catatan: Kolom “Hasil yang Diharapkan” diisi sesuai dengan hasil akhir program ketika
didemokan. Jika memang fitur belum dapat berjalan dengan benar/error, harus dituliskan hasil
yang tidak benar/error tersebut dan tambahkan catatan bahwa hasil tersebut belum benar.
7 Pembagian Kerja dalam Kelompok
Isi dengan ringkasan pembagian kerja dalam kelompok.
8 Notulen Responsi
Isi dengan semua notulen responsi atau kerja kelompok yang dilakukan.