kalimat bejalan

SELAMAT DATANG DI BLOGGER SAYA JANU AROHMANJANUAROHMAN

Senin, 17 November 2014

Program Data Mahasiswa dengan Pascal (Struktur Data)



a. Latar belakang
Perkembangan teknologi saat ini sangat berkembang dengan pesat. Setiap jam, menit, detik selalu berkembang dan terus berkembang. Hal ini dapat kita lihat di kehidupan kita sehari-hari dimana kita tidak bisa lepas dari namanya handphone, komputer, pc tablet, iphone dan lain-lain.
Dengan kemajuan jaman maka saat ini pendataan mahasiswa dengan menggunakan penulisan manual dapat membuang banyak waktu, tenaga, dan juga biaya yang dikeluarkan. Dengan menggunakan teknologi saat ini maka kita dapat menggunakan komputer sebagai alat atau media untuk menginput dan menyimpan data-data mahasiswa. Sehingga dapat menghemat waktu, tenaga, dan juga biaya yang dikeluarkan.
Dengan menggunakan bahasa pemrograman pascal kita dapat melakukan pendataan mahasiswa secara komputerisasi. Sehingga dapat membantu para staff dalam melakukan pendataan mahasiswa.Pascal sendiri Pascal sebagai salah satu bahasa tingkat tinggi (high-level language) untuk dapat dapat dikenali oleh computer harus diterjemahkan menjadi bahasa mesin. Untuk itu dikembangkan sebuah program penerjemah yang disebut dengan kompilator (compiler). Kompilator Pascal adalah sebuah software, bukan perangkat keras (hardware). Kompilator adalah progam yang disimpan pada file dalam disk.
b. Rumusan masalah
Berdasarkan latar belakang yang telah dipaparkan di atas, maka penulis telah menentukan beberapa rumusan masalah dalam pembuatan program perhitungan nilai akhir dan data mahasiswa STMIK TASIKMALAYA.
yaitu:
1. Gambaran umum program;
2. Flow Chart program;
3. Koding program;
4. Lay out program.
c. Tujuan
Sejalan dengan rumusan masalah di atas, makalah ini disusun dengan tujuan untuk mengetahui dan mendeskripsikan:
1. Pembaca  dapat mengerti fungsi prosedur pada pascal;
2. dapat / bisa menjalankan program aplikasi data mahsiswa;
3. Implementasi sebuah program.
BAB II
PEMBAHASAN
a.  Dasar Teori
1.      Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-huwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”.
 Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah,
pastilah algoritma tersebut bukanlah algoritma yang baik.
2.       Struktur Data
Dalam istilah ilmu komputer, sebuah Struktur adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien. Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan teknik tertentu yang memanfaatkan struktur data.
3.      Pemrograman Prosedural
Pada pemrograman dikenal beberapa paradigma yang dipakai dalam memecahkan suatu masalah. Penggunaan suatu paradigm ditujukan sebagai cara pemrogram dalam memandang setiap entitas dalam dunia nyata dan relasi antara entitas tersebut, sehingga memudahkannya dalam menerjemahkannya menjadi suatuprogram. Di sisi lain, penggunaan suatu paradigma akan membatasi/mempersempit cara pandang pemrogram. Dalam tulisan ini akan digunakan pemrograman dengan paradigma prosedural.
Pemrograman prosedural didasari oleh konsep mesin Von Neumann yang disebut stored program concept. Suatu program terdiri atas dua bagian yaitu algoritma dan struktur data. Bagaimana cara kerja dari suatu program ditentukan oleh sekumpulan perintah yang akan dilaksanakan secara sekuensial oleh suatu pemroses tunggal. Inilah yang disebut algoritma. Dalam proses pelaksanaan sampai mengeluarkan suatu hasil, program membutuhkan data yang akan diolahnya. Data tersebut akan disimpan dalam memory komputer. Dalam program data tersebut akan distrukturisasikan sehingga akan memudahkan dalam pengolahannya. Inilah yang disebut struktur data. Paradigma prosedural membatasi cara penyusunan algoritma dan strukturisasi data sehingga dekat dengan konsep mesin Von Neumann. Meskipun pemrograman ini sangat tidak manusiawi, namun sangat efisien karena kedekatannya dengan mesin.
4.      Prosedur
adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian).  Diawali dengan kata PROCEDURE  didalam bagian deklarasi prosedur .  Prosedur banyak digunakan pada program  yang terstruktur karena :
Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumit menjadi program-program  bagian yang lebih sederhana dalam bentukm prosedur-prosedur .
Untuk hal-hal yang sering dilakukan berulang-ulang,  cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
5.      Pengulangan while do
Struktur pengulangan WHILE-DO digunakan untuk mengulang statement atau suatu blok statement berulang kali selama kodisi pada while terpenuhi / bernilai benar .
6.      Array / Larik
adalah tipe terstruktur yang terdiri dari sejumlah komponen komponen yang mempunyai tipe data yang sama. Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string  dan tipe scalar atau subrange. Suatu array mempunyai jumlah komponen yang banyaknya tetap dan ditunjukkan oleh suatu indeks yang disebut index type (tipe indeks) Setiap komponene dalam array dapat diakses dengan menunjukkan nilai indeksnya atau disebut juga dengan istilah subscrip.
7.      IF
Penyeleksian “ IF “ berguna untuk
menguji sebuah kondisi, dimana
bila kondisi tersebut terpenuhi (
bernilai true ) maka akan
dijalankan suatu pernyataan
tertentu.
Bnetuk Umum :
IF  kondisi.. THEN pernyataan..
IF  kondisi.. THEN pernyataan..
ELSE  pernyataan..
3. IF  kondisi1.. THEN
pernyataan..
ELSE IF  kondisi2  THEN
pernyataan..
ELSE
pernyataan
Program Database  mahasiswa ini dibuat untuk memudahkan dalam pendataan , dimana seorang guru atau dosen dengan mudah dan cepat memasukan atau mencari data mahasiswa, Program ini dibuat dengan menggunakan bahasa pemrograman Pascal dan ditulis dengan aplikasi Turbo Pascal For Window dengan lay out program yang sederhana sehingga user dapat dengan mudah mengoperasikannya.
c. Flow chart program
Diagram alur (flowchart) merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Bagan ini dinyatakan dengan simbol. Dengan emikian setiap simbol menggambarkan proses tertentu sedangkan hubungan antar proses digambarkan dengan garis penghubung. Simbol-simbol diagram alur.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9gOUGB0OPjTlokeQdX669CYu8QXTy-um9qGgoK9lYLJig7gFogFhvEwhq0eJ0QK9h5WO3aOyVF0KxREjqxF6nAL3crZLtJJkT85at9SC-O00AvQB3Wpflr20CeTIQHuzDHxmPIy0g49I/s1600/flow.jpg



d. Koding program



program lth;
uses wincrt;
var 
pilih: byte; 
procedure Input_data; 
type 
mhs=record 
npm: string[7]; 
nama: string[25]; 
nilai: real; 
end; 
 var 
fmhs: file of mhs; 
rmhs: mhs; 
lagi: char; 
 begin 
assign(fmhs,'mhs.dat'); 
rewrite(fmhs); 
lagi:='y'; 
while upcase(lagi)='Y' do 
begin 
clrscr; 
with rmhs do 
begin 
gotoxy(5,6)  ;write('Nomor Pokok Mahasiswa : '); 
gotoxy(5,8)  ;write('Nama Mahasiswa        : '); 
gotoxy(5,10) ;write('Nilai Mahasiswa       : '); 
gotoxy(30,6) ;readln(npm); 
gotoxy(30,8) ;readln(nama);
gotoxy(30,10);readln(nilai); 
end; 
write(fmhs,rmhs); 
gotoxy(5,15) ;write('Masukan data lagi [Y/T] ? '); 
readln(lagi); 
end; 
close(fmhs); 
end; 
procedure Tambah_data; 
type 
mhs=record 
npm: string[7]; 
nama: string[25]; 
nilai: real; 
end; 
 var 
fmhs: file of mhs; 
rmhs: mhs; 
lagi: char; 
begin 
assign(fmhs,'mhs.dat'); 
{$I-} 
reset(fmhs); 
{$I+}; 
if ioresult<>0 then rewrite(fmhs); 
seek(fmhs,filesize(fmhs)); 
lagi:='y'; 
while upcase(lagi)='Y' do 
begin 
clrscr; 
with rmhs do 
begin 
gotoxy(5,6)  ;write('Nomor Pokok Mahasiswa : '); 
gotoxy(5,8)  ;write('Nama Mahasiswa        : '); 
gotoxy(5,10) ;write('Nilai Mahasiswa       : '); 
gotoxy(30,6) ;readln(npm); 
gotoxy(30,8) ;readln(nama); 
gotoxy(30,10);readln(nilai); 
end; 
write(fmhs,rmhs); 
gotoxy(5,15) ;write('Masukan data lagi [Y/T] ? '); 
readln(lagi); 
end; 
close(fmhs); 
end; 
 procedure Lihat_data; 
type 
mhs=record 
npm: string[7]; 
nama: string[25]; 
nilai: real; 
end; 
var 
fmhs: file of mhs; 
rmhs: mhs; 
begin 
assign(fmhs,'mhs.dat'); 
reset(fmhs); 
clrscr; 
writeln('-------------------------------------------------------------'); 
writeln('NPM                    nama mahasiswa                   nilai'); 
writeln('-------------------------------------------------------------'); 
while not eof (fmhs) do 
begin 
read(fmhs,rmhs);
with rmhs do 
writeln(npm:7,nama:25,nilai:29:0); 
end; 
writeln('-------------------------------------------------------------'); 
close(fmhs); 
readln; 
end; 
procedure Cari_data; 
type 
mhs=record 
npm: string[7]; 
nama: string[25]; 
nilai: real; 
end; 
 var 
fmhs: file of mhs; 
rmhs: mhs; 
i,jml: integer; 
nocari: string[7]; 
lagi: char; 
ketemu: boolean; 
begin 
assign(fmhs,'mhs.dat'); 
reset(fmhs); 
jml:= filesize(fmhs); 
lagi:='y'; 
while upcase(lagi)='Y' do 
begin 
clrscr; 
ketemu:= false; 
write('Masukan npm yang dicari : '); 
readln(nocari); 
writeln; 
for i:= 1 to jml do 
begin 
seek(fmhs,i-1); 
read(fmhs,rmhs); 
if rmhs.npm=nocari then 
begin 
ketemu:= true; 
writeln('Nama Mahasiswa  : ',rmhs.nama); 
writeln('Nilai Mahasiswa : ',rmhs.nilai:2:0); 
end; 
end; 
if not ketemu then 
writeln('Tidak nomor tersebut!!!'); 
writeln; 
write('cari data lagi [Y/T] ? '); 
readln(lagi); 
end; 
close(fmhs); 
end; 
procedure Koreksi_data; 
type 
mhs=record 
npm: string[7]; 
nama: string[25]; 
nilai: real; 
end; 
 var 
fmhs: file of mhs; 
rmhs: mhs; 
i,jml: integer; 
nocari: string[7]; 
ketemu: boolean; 
lagi: char; 
begin 
assign(fmhs,'mhs.dat'); 
reset(fmhs); 
jml:= filesize(fmhs); 
lagi:='Y'; 
while upcase(lagi)='Y' do 
begin 
ketemu:= false; 
clrscr; 
write('Nomor pokok mahasiswa yang dicari : '); readln(nocari); 
writeln; 
for i:= 1 to jml do 
begin 
seek(fmhs,i-1); 
read(fmhs,rmhs); 
if rmhs.npm=nocari then 
begin 
with rmhs do 
begin 
ketemu:= true; 
writeln('Nomor Pokok Mahasiswa  : ',npm:7); 
write('Koreksinya                 : '); readln(npm); 
writeln('Nama Mahasiswa         : ',nama); 
write('Koreksinya                 : '); readln(nama); 
writeln('Nilai Mahasiswa        : ',nilai:2:0); 
write('Koreksinya                 : '); readln(nilai); 
end; 
end; 
seek(fmhs,i-1); 
write(fmhs,rmhs); 
end; 
if not ketemu then 
writeln('Tidak nomor tersebut!!!'); 
writeln; 
write('ada lagi yang akan dikoreksi [Y/T] ? '); 
readln(lagi); 
end; 
close(fmhs); 
end; 
procedure Hapus_data; 
type 
mhs = record 
npm: string[7]; 
nama: string[25]; 
nilai: real; 
end; 
 var 
fmhs: file of mhs; 
rmhs: mhs; 
nourut,i,jml: integer; 
nocari: string[7]; 
ketemu: boolean; 
lagi,ya: char; 
begin 
assign(fmhs,'mhs.dat'); 
reset(fmhs); 
lagi:= 'Y'; 
while upcase(lagi)='Y' do 
begin 
clrscr; 
jml:= filesize(fmhs); 
write('Nomor record yang dihapus (1  -',jml:3,') ? ');  
readln(nourut); 
writeln; 
if (nourut < 1) or (nourut > jml) then 
writeln('Tidak ada no record ini !!!') 
else 
begin 
for i:= nourut to jml do 
begin 
seek(fmhs,i-1); 
read(fmhs,rmhs); 
with rmhs do 
begin 
writeln('Nama Mahasiswa   : ',rmhs.nama); 
writeln('Nilai Mahasiswa  : ',rmhs.nilai:6:2); 
end; 
end; 
writeln; 
write('Yakin data ini akan dihapus [Y/T] ? '); readln(ya); 
if upcase(ya) = 'Y' then 
begin 
seek(fmhs,nourut-1); 
truncate(fmhs); 
end; 
end; 
writeln; 
write('ada lagi yang akan dicari [Y/T] ? '); readln(lagi); 
end; 
close(fmhs); 
end; 
begin 
while true do 
begin 
clrscr; 
gotoxy(20,2); write('**MENU UTAMA**'); 
gotoxy(5,5); write('1. Input data awal'); 
gotoxy(5,7); write('2. Tambah data'); 
gotoxy(5,9); write('3. Lihat semua data'); 
gotoxy(5,11); write('4. Lihat data tertentu'); 
gotoxy(5,13); write('5. Edit data'); 
gotoxy(5,15); write('6. Hapus data'); 
gotoxy(5,17); write('7. Selesai'); 
pilih := 0; 
while (pilih < 1) or (pilih > 7 ) do 
begin 
gotoxy(5,20); write('Masukan pilihan : '); 
readln(pilih); 
if (pilih < 1) or (pilih > 7) then 
write (^G); 
case pilih of 
1: Input_data; 
2: Tambah_data; 
3: begin 
lihat_data; 
writeln; 
write('Tekan enter untuk kembali ke MENU'); 
readln; 
end; 
4: Cari_data; 
5: Koreksi_data; 
6: Hapus_data; 
7: Exit; 
end; 
end; 
end; 
end.
BAB III
PENUTUP
a. Kesimpulan
Program hitung nilai akhir dan data mahasiswa ini dibuat untuk memudahkan dalam pekerjaan dimana seorang user dengan mudah dan cepat dalam menghitung nilai akhir dan menginputkan data mahasiswa. Program ini dibuat dengan menggunakan bahasa pemrograman Pascal. Diagram alur (flowchart) merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Koding program adalah perintah program dengan struktur pemrograman bahasa Pascal dan Lay out program adalah hasil akhir dari pemrograman yang akan diimplementasikan.
b. Saran
sesuai dengan pepatah “tiada gading yang tak retak” dengan demikian kami kelompok 3 menyadari sepenuhnya bahwa makalah ini masih sangat jauh dari kesempurnaan, hal ini dikarenakan keterbatasan wawasan maupun sumber-sumber data yang dimiliki penulis, dengan demikian kritik dan saran dari berbagai pihak sangat dinanti guna penyempurnaan malah ini.