Wednesday 12 February 2014

Laporan Resmi Algoritma Pemrograman modul 6

LAPORAN RESMI
PRAKTIKUM ALGORITMA PEMROGRAMAN (ALPRO)
MODUL VI
RECORD


Disusun Oleh :
TGL PRAKTIKUM      :  13 DESEMBER  2012
NAMA                          :  Azza Devi Manzilia
NRP                               :  120411100110
KELAS/KELOMPOK  :  D2
DOSEN PENGAMPU :  ARIK KURNIAWATI,S.Kom.,M.kom
ASISTEN                      :  ANDI HARTONO
 








Disetujui : ....../……./………../Bangkalan




(ANDI HARTONO)
10.04.111.00020


           








LABORATORIUM COMMON COMPUTING
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2012 / 2013



BAB I
PENDAHULUAN


1.1    Latar Belakang  
Bahasa pascal merupakan dasar dari bahasa pemrograman. Untuk membuat program biasanya dibutuhkan tipe data yang banyak dan bermacam-macam tipe. Seiring dengan berjalanya waktu ditemukanya record yang berfungsi untuk mengumpulkan beberapa tipe data yang berbeda (field) menjadi satu tipe yang disebut dengan record. Kehadiran record dalam dunia pascal dianggap sebagai berkah karena record dapat menyederhanakan beberapa tipe yang berbeda sehingga akan menjadi lebih efisien dalam beberapa hal.
1.2    Tujuan
1.         Praktikan mengerti tentang pengertian record dan fungsinya.
2.         Praktikan mampu membuat program menggunakan record.

















BAB II
DASAR TEORI

2.1    Teori Singkat
Record
Record adalah elemen larik yang bertipe terstruktur. Dengan menggunakan tipe data record, beberapa item data yang masing-masing dapat mempunyai tipe data berbeda-beda dapat dikumpulkan. Masing-masing item data disebut dengan field. Jadi record terdiri dari kumpulan field yang dapat berbeda tipe. Biasanya suatu record berisi beberapa field untuk sebuah subyek tertentu. Misalnya record TabelMhs dalam Gambar 6.1. adalah sebuah larik (sejumlah 100 elemen) yang elemennya menyatakan nilai ujian mata kuliah (MK) yang diambil seorang mahasiswa. Data (field) setiap mahasiswa adalah NIM (Nomor Induk Mahasiswa), nama mahasiswa, mata kuliah yang diambil, dan nilai mata kuliah tersebut.






BAB III
TUGAS PENDAHULUAN
3.1 prepraktikum
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1.        Sebutkan dan jelaskan keuntungan-keuntungan penggunaan record!
2.        Kapankan sebaiknya record digunakan? Jelaskan!
3.        Buatlah algoritma untuk mengurutkan data berdasarkan nomor mahasiswa (NPM) dengan urutan dari yang terkecil ke yang terbesar serta mempunyai kemampuan untuk menampilkan jumlah total mahasiswa sesuai dengan kriteria yang dimasukkan oleh user.
Misalnya: user ingin mengetahui jumlah mahasiswa yang mempunyai nilai A untuk mata kuliah X, maka algoritma akan menampilkan jumlah mahasiswa yang mempunyai nilai A untuk mata kuliah X .
Masukan         :  jumlah mahasiswa.
Selanjutnya memasukkan record data mahasiswa. Data (field) setiap mahasiswa adalah NPM (Nomor Pokok Mahasiswa), nama mahasiswa, mata kuliah yang diambil, dan nilai mata kuliah tersebut. Untuk  nilai  huruf  akan  terisi  secara  otomatis  sesuai  range  nilai  pada grade nilai berikut nilai rata-ratanya.
Keluaran         : hasil pengurutan data berdasarkan NPM
Hasil ditampilan dalam bentuk tabel seperti di bawah ini

NIM
NAMA
MAKUL
NILAI ANGKA
NILAI HURUF

RATA-RATA




JAWABAN
1.        Keuntungan record
·       Record dapat mengumpulkan beberapa tipe data yang berbeda menjadi      satu kesatuan.
·       Tipe data record juga dapat memiliki field berupa tipe data record yang      lainnya.
·      Biasanya suatu record berisi beberapa field untuk sebuah subyek tertentu.
2.        Record sebaiknya digunakan pada saat kita ingin menggabungkan beberapa tipe data (field)  menjadi satu kesatuan.
3.        Algoritma
DEKLARASI
program data;
uses wincrt;
type
     mahasiswa = record
                 nama : string[20];
                 NIM : string[10];
                 makul : string[30];
                 nilai : integer;
     end;
var
     mhs : array [1..10] of mahasiswa;
     bantuan : mahasiswa;
     n, x, y,jum : integer;
        ratarata : real;
        huruf : char;
DESKRIPSI
begin
write('masukkan jumlah siswa:');readln(n);
writeln;
for x := 1 to n do
begin
write ('nama mahasiswa ke-',x,':');readln(mhs[x].nama);
write ('NIM mahasiswa ke-',x,':');readln(mhs[x].NIM);
write ('mata kuliah mahasiswa ke-',x,':');readln(mhs[x].makul);
write ('nilai mahasiswa ke-',x,':');readln(mhs[x].nilai);
end;
for x := 1 to n-1 do
    for y := 1 to n-1 do
      if mhs[y].Nama > mhs[y+1].Nama then
      begin
        bantuan := mhs[y];
        mhs[y]:= mhs[y+1];
        mhs[y+1]:= bantuan;
      end;
for x := 1 to n-1 do
    for y := 1 to n-1 do
      if mhs[y].NIM > mhs[y+1].NIM then
      begin
        bantuan:=mhs[y];
        mhs[y]:=mhs[y+1];
        mhs[y+1]:= bantuan;
      end;
Begin
     If (mhs[x].nilai >= 80) Then huruf := 'A'
      Else
     If (mhs[x].nilai < 80) and (mhs[x].nilai>=70) Then huruf := 'B'
      Else
     If (mhs[x].nilai < 70) and (mhs[x].nilai>=60) Then huruf := 'C'
      Else
     If (mhs[x].nilai < 60) and (mhs[x].nilai>=50) Then huruf := 'D'
      Else
     huruf :='E';
End;
begin
jum:= 0;
Writeln('----------------------------------------------------------');
Writeln('  NIM         NAMA      MAKUL      NILAI     HURUF ');
Writeln('----------------------------------------------------------');
For x:= 1 To n Do
Begin
Writeln(mhs[x].NIM:5,mhs[x].Nama:13,mhs[x].makul:10,mhs[x].nilai:10,
     huruf:10);
jum := mhs[x].nilai+jum;
end;
ratarata := jum / n;
writeln;
writeln('  rata-rata                                              ');
writeln(                                  ratarata:40:2                );
end;
end.


















BAB IV
IMPLEMENTASI

4.1 Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1. Buat program untuk tugas prepraktikum 3!
2. Tugas tambahan (ditentukan oleh asisten praktikum)!
Jawab
1.         Jawaban tugas prepraktikum nomor 3
program data;
uses wincrt;
type
            mahasiswa = record
                        nama : string[20];
                        NIM : string[10];
                        makul : string[30];
                        nilai : integer;
            end;
var
            mhs : array [1..10] of mahasiswa;
            bantuan : mahasiswa;
            n, x, y,jum : integer;
        ratarata : real;
        huruf : char;
begin
write('masukkan jumlah siswa:');readln(n);
writeln;
for x := 1 to n do
begin
write ('nama mahasiswa ke-',x,':');readln(mhs[x].nama);
write ('NIM mahasiswa ke-',x,':');readln(mhs[x].NIM);
write ('mata kuliah mahasiswa ke-',x,':');readln(mhs[x].makul);
write ('nilai mahasiswa ke-',x,':');readln(mhs[x].nilai);
writeln;
end;
for x := 1 to n-1 do
    for y := 1 to n-1 do
      if mhs[y].Nama > mhs[y+1].Nama then
      begin
        bantuan := mhs[y];
        mhs[y]:= mhs[y+1];
        mhs[y+1]:= bantuan;
      end;
for x := 1 to n-1 do
    for y := 1 to n-1 do
      if mhs[y].NIM > mhs[y+1].NIM then
      begin
        bantuan:=mhs[y];
        mhs[y]:=mhs[y+1];
        mhs[y+1]:= bantuan;
      end;
Begin
            If (mhs[x].nilai >= 80) Then huruf := 'A'
             Else
            If (mhs[x].nilai < 80) and (mhs[x].nilai>=70) Then huruf := 'B'
             Else
            If (mhs[x].nilai < 70) and (mhs[x].nilai>=60) Then huruf := 'C'
             Else
            If (mhs[x].nilai < 60) and (mhs[x].nilai>=50) Then huruf := 'D'
             Else
            huruf :='E';
End;
begin
jum:= 0;
Writeln('----------------------------------------------------------');
Writeln('  NIM         NAMA      MAKUL      NILAI     HURUF ');
Writeln('----------------------------------------------------------');
For x:= 1 To n Do
Begin
Writeln(mhs[x].NIM:5,mhs[x].Nama:13,mhs[x].makul:10,mhs[x].nilai:10,
            huruf:10);
jum := mhs[x].nilai+jum;
end;
ratarata := jum / n;
writeln;
writeln('  rata-rata                                              ');
writeln(                                  ratarata:40:2                );
end;
end.













                BAB V
TUGAS AKHIR
5.1 Tugas Akhir
     Buatlah algoritma dan terjemahkan dalam bahasa pascal untuk memasukkan data belanja dan menampilkannya dalam bentuk nota Belanja. Total Harga, Total belanja, Total Bayar dan Total Kembali atau sisa didapat dengan melakukan proses perhitungan kemudian hasilnya ditampilkan dalam bentuk seperti contoh dibawah ini.
NOTA BELANJA Toko Makmur Jl. Raya Trunojoyo Telang Kamal Bangkalan
Tanggal Pembelian : 08-10-2012
Nama Pembeli : Ricky Nitinegoro
Alamat : Jl. Mawar No. 23 Bangkalan
                                                     JAWAB
Hasil Runing
program nota_harga;
uses wincrt;
type
   nota = record
   jumlah   : integer;
   total : string;
   end;
   id = record
   kode,nama  : string;
   Total,harga: longint;
   barang: nota;
   end;
var
notabarang: array [1..10] of id;
a,i,j,n,bayar,sisa: longint;   
b,c,d,bantuan: string;
     procedure jumlah (n: integer);
     begin
     for i:= 1 to n do
     begin
     write('Masukkan nama barang ke- ',i,' : '); readln(notabarang[i].nama);
     write('Masukkan kode barang ke- ',i,' : '); readln(notabarang[i].kode);
     write('Masukkan harga barang ke- ',i,'  : '); readln(notabarang[i].harga);
     write('Masukkan jumlah barang ke- ',i,' : '); readln(notabarang[i].barang.jumlah);
     writeln;
     end;
     writeln;
     write('uang yang anda bayarkan : '); readln(a);
     writeln;
     clrscr;
     for i:= 1 to n-1 do
      for j:= 1 to n-1 do
       begin
       if (notabarang[j].kode) > (notabarang[j+1].kode) then
        begin
        bantuan   := notabarang[j].kode;
        notabarang[j].kode:= notabarang[j+1].kode;
        notabarang[j+1].kode:=bantuan;
        end;
       end;
for i:=1 to n do
       begin
       notabarang[i].Total:=notabarang[i].barang.jumlah * notabarang[i].harga;
       end;
bayar:=0;
     writeln('     NOTA BELANJA     ');
     writeln(' TOKO REJEKI MAKMUR II');
     writeln('   Jl. pondok no.25   ');
     writeln;
     writeln('Tanggal Pembelian : ',b);
     writeln;
     writeln('Nama Pembeli      : ',c);
     writeln;
     writeln('Alamat            : ',d);
writeln('................................................................');
     writeln(':  No :   Kode  :  Nama Barang  : Harga : jumlah : Total Harga :');
     writeln('................................................................');
     for i:=1 to n do
      begin
writeln(':',i:3,':':3,notabarang[i].kode:6,':':4,notabarang[i].nama:10,':':6,notabarang[i].harga:6,':':2,
      notabarang[i].barang.jumlah:5,':':4,notabarang[i].Total:7,':':7);
      bayar:=notabarang[i].total+bayar;
      end;
      sisa:= a - bayar;
 writeln('................................................................');
     writeln(':','Total Pembelian (Rp)':30,':':19,bayar:7,':':7);
     writeln(':','Total Bayar (Rp)':30,':':19,a:7,':':7);
     writeln(':','Total Kembalian (Rp)':30,':':19,sisa:7,':':7);
writeln('................................................................');
end;
begin
Write('Masukkan Tanggal Pembelian : ');readln(b);
Write('Masukkan Nama Pembeli      : ');readln(c);
Write('Masukkan Alamat Pembeli    : ');readln(d);
writeln;
write('Masukkan jumlah barangnya  : '); readln(n);
writeln;
jumlah (n);
end.






























                                                                    BAB VI
PENUTUP

6.1  Kesimpulan
Dari kegiatan praktikum diatas dapat disimpulkan bahwa record dapat mengumpulkan beberapa tipe data yang berbeda menjadi satu kesatuan. Masing-masing item data disebut dengan field. Jadi record terdiri dari kumpulan field yang dapat berbeda tipe. Biasanya suatu record berisi beberapa field untuk sebuah subyek tertentu. Record sebaiknya digunakan pada saat kita ingin menggabungkan beberapa tipe data (field)  menjadi satu kesatuan.

6.2 Saran
1.        Kepada asisten praktikum sebaiknya konsisten terhadap kelonggaran waktu yang telah ditentukan dan disiapkan dulu semua atau bahan yang mendukung kegiatan praktikum.
2.        Untuk praktikan sebaiknya datang tepat waktu.


No comments:

Post a Comment