Post on 02-Aug-2015
LAPORAN RESMI AKHIR
PRAKTIKUM ALGORITMA PEMPROGRAMAN
LABORATORIUM PEMPROGRAMAN
Disusun oleh :
NAMA Shobihatul Mubarokah Ayu Aseptica
KELAS A3
JURUSAN TEKNIK INFORMATIKA
DOSEN PENGAMPUH NOOR IFADA, ST., MISD.
ASPRAK ANDI HARTONO
LABORATORIUM PEMROGRAMAN
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
2012
LEMBAR PENGESAHAN PRAKTIKUM
PRAKTIKUM ALGORITMA PEMPROGRAMAN
LABORATORIUM PEMROGRAMAN
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 110411100039
KELAS : A3
No Hari / Tanggal Modul Paraf Asisten
1. Selasa
08 Mei 2012
1
STRUKTUR PROGRAM
PASCAL, TIPE DATA,
VARIABEL, DAN
KONSTANTA
2. Selasa
15 Mei 2012
2
PENYELEKSIAN KONDISI
3. Selasa
22 Mei 2012
3
PENGULANGAN
(LOOPING)
4. Selasa
29 Mei 2012
4
PROSEDUR DAN FUNGSI
5. Selasa
05 Juni 2012
5
LARIK (ARRAY)
6. Selasa
05 Juni 2012
6
RECORD
Nilai Akhir Co.Assisten : _______________
Nilai Akhir : ________________
Bangkalan, Juni 2012
Mengetahui Dosen Pengampu, Koordinator Asisten Dosen
Noor Ifada, ST,. Misd. Andi Sholihin
KATA PENGANTAR
Puji syukur kehadirat Allah SWT karena atas rahmat dan karunia-Nya,
saya dapat menyelesaikan Laporan Praktikum Algoritma Pemrograman tepat pada
waktunya. Laporan ini merupakan tugas mata kuliah Algoritma Pemrograman.
Laporan ini merupakan inovasi pembelajaran untuk memahami Algoritma
Pemrograman Bahas Pascal secara mendalam, semoga laporan ini dapat berguna
untuk Mahasiswa pada umumnya.
Saya mengucapkan banyak terima kasih atas segala bantuan dan juga
jasa dari berbagai pihak dalam penyusunan laporan ini.
Selain itu, saya juga menyadari bahwa laporan ini masih jauh dari
sempurna, oleh karena itu saya sangat membutuhkan kritik dan saran yang
sifatnya membangun dan pada intinya untuk memperbaiki kekurangan-
kekurangan agar dimasa yang akan datang lebih baik lagi.
Penyusun
Shobihatul Mubarokah Ayu Aseptica
NRP 11.04.111.00039
DAFTAR ISI
LEMBAR PENGESAHAN.....................................................................................
KATA PENGANTAR..............................................................................................
DAFTAR ISI..............................................................................................................
Modul 1 Struktur Program Pascal, Tipe Data, Variabel, Dan Konstanta
BAB. I. Pendahuluan……........................................................................................
1.1. Latar Belakang........................................................... ........................................
1.2. Tujuan…………..………...................................................................................
BAB. II. Dasar Teori................................................................................................
2.1. Teori Singkat......................................................................................................
BAB. III. Tugas Pendahuluan.................................................................................
3.1. Tugas Prepraktikum............................................................................................
BAB. IV. Implementasi............................................................................................
4.1. Kegiatan Praktikum.............................................................................................
4.2. Tugas Akhir.........................................................................................................
4.3. Tugas Tambahan.................................................................................................
BAB. V. Penutup…..................................................................................................
5.1. Kesimpulan.........................................................................................................
5.2. Saran....................................................................................................................
Modul 2 Penyeleksian Kondisi
BAB. I. Pendahuluan……........................................................................................
1.1. Latar Belakang........................................................... ........................................
1.2. Tujuan…………..………...................................................................................
BAB. II. Dasar Teori................................................................................................
2.1. Teori Singkat......................................................................................................
BAB. III. Tugas Pendahuluan.................................................................................
3.1. Tugas Prepraktikum............................................................................................
BAB. IV. Implementasi............................................................................................
4.1. Kegiatan Praktikum.............................................................................................
4.2. Tugas Akhir.........................................................................................................
4.3. Tugas Tambahan.................................................................................................
BAB. V. Penutup…..................................................................................................
5.1. Kesimpulan.........................................................................................................
5.2. Saran....................................................................................................................
Modul 3 Pengulangan (Looping)
BAB. I. Pendahuluan……........................................................................................
1.1. Latar Belakang....................................................................................................
1.2. Tujuan…………..………...................................................................................
BAB. II. Dasar Teori................................................................................................
2.1. Teori Singkat......................................................................................................
BAB. III. Tugas Pendahuluan.................................................................................
3.1. Tugas Prepraktikum............................................................................................
BAB. IV. Implementasi............................................................................................
4.1. Kegiatan Praktikum............................................................................................
4.2. Tugas Akhir.........................................................................................................
4.3. Tugas Tambahan.................................................................................................
BAB. V. Penutup….................................................................................................
5.1. Kesimpulan.........................................................................................................
5.2. Saran....................................................................................................................
Modul 4 Prosedur dan Fungsi
BAB. I. Pendahuluan……........................................................................................
1.1. Latar Belakang....................................................................................................
1.2. Tujuan…………..………...................................................................................
BAB. II. Dasar Teori................................................................................................
2.1. Teori Singkat......................................................................................................
BAB. III. Tugas Pendahuluan.................................................................................
3.1. Tugas Prepraktikum............................................................................................
BAB. IV. Implementasi............................................................................................
4.1. Kegiatan Praktikum............................................................................................
4.2. Tugas Akhir.........................................................................................................
4.3. Tugas Tambahan.................................................................................................
BAB. V. Penutup…..................................................................................................
5.1. Kesimpulan.........................................................................................................
5.2. Saran....................................................................................................................
Modul 5 Larik (Array)
BAB. I. Pendahuluan……........................................................................................
1.1. Latar Belakang........................................................... ........................................
1.2. Tujuan…………..………...................................................................................
BAB. II. Dasar Teori................................................................................................
2.1. Teori Singkat......................................................................................................
BAB. III. Tugas Pendahuluan.................................................................................
3.1. Tugas Prepraktikum............................................................................................
BAB. IV. Implementasi............................................................................................
4.1. Kegiatan Praktikum............................................................................................
4.2. Tugas Akhir.........................................................................................................
4.3. Tugas Tambahan.................................................................................................
BAB. V. Penutup…..................................................................................................
5.1. Kesimpulan.........................................................................................................
5.2. Saran....................................................................................................................
Modul 6 Record
BAB. I. Pendahuluan……........................................................................................
1.1. Latar Belakang........................................................... ........................................
1.2. Tujuan…………..………...................................................................................
BAB. II. Dasar Teori................................................................................................
2.1. Teori Singkat......................................................................................................
BAB. III. Tugas Pendahuluan.................................................................................
3.1. Tugas Prepraktikum............................................................................................
BAB. IV. Implementasi............................................................................................
4.1. Kegiatan Praktikum.............................................................................................
4.2. Tugas Akhir.........................................................................................................
4.3. Tugas Tambahan.................................................................................................
BAB. V. Penutup…..................................................................................................
5.1. Kesimpulan.........................................................................................................
5.2. Saran....................................................................................................................
LAPORAN RESMI PRAKTIKUM ALGORITMA PEMROGRAMAN
Modul 1
STRUKTUR PROGRAM PASCAL,
TIPE DATA, VARIABEL, DAN KONSTANTA
Disusun Oleh :
LABORATORIUM PEMROGRAMAN JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO 2012
Disetujui : ....../……./………../Bangkalan
( Andy Hartono )
10.04.1.1.1.00020
TGL PRAKTIKUM : 07 Mei 2012
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 11.04.111.00039
KELAS : A
DOSEN PENGAMPU : NOOR IFADA, ST., MISD.
ASISTEN : Andy Hartono
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam membuat aplikasi, ada berbagai macam bahasa pemrograman yang
salah satunya adalah bahasa pemrograman Pascal. Pascal adalah bahasa
tingkat tinggi (High Level Languange) yaitu bahasa pemrograman yang
mudah dipahami oleh bahasa manusia. Pascal merupakan bahasa yang
terstruktur tersusun atas sejumlah blok. Blok-blok yang kecil selanjutnya
dapat dapat dipakai untuk membuat blok yang lebih besar. Blok ini lebih
dikenal dengan sebutan subprogram, yang dibedakan atas prosedur dan
fungsi. Bahasa pemrograman Pascal ini sangat dibutuhkan bagi mahasiswa
teknik informatika untuk menyelesaikan tugas-tugas aplikasi/program. Untuk
itu dalam modul 1 ini, akan dibahas tentang “struktur program Pascal, tipe
data, variabel, dan konstanta”. Sehingga kita dapat memahami pemakaian
bahasa pemrograman ini.
1.2 Tujuan
1. Mahasiswa mengerti dan memahami sruktur program Pascal
2. Mahasiswa mengerti dan memahami tipe data dalam program Pascal
3. Mahasiswa mengerti dan memahami variabel dalam program Pascal
4. Mahasiswa mengerti dan memahami konstanta dalam program Pascal
BAB II
DASAR TEORI
2.1 Teori Singkat
Struktur program Pascal terdiri dari tiga bagian (Gambar 1.1), yaitu :
Judul Program. Judul ini sifatnya adalah optional dan tidak signifikan.
Bagian Deklarasi. Bagian ini digunakan bila program akan
mendefinisikan berbagai macam identifier, seperti label, konstanta, tipe,
variable, prosedur, dan fungsi.
Bagian Deskripsi. bagian ini digunakan untuk meletakkan seluruh
instruksi program. Instruksi-instruksi yang akan diberikan untuk
dikerjakan ditulis di antara “Begin” dan “End". Penulisan “End“ diakhiri
dengan tanda baca titik (‘.’). Yang perlu diperhatikan bahwa setiap
instruksi diakhiri dengan tanda baca titik koma (‘;’).
program NAMA_PROGRAM;
{ Penjelasan mengenai program, yang berisi uraian singkat
mengenai apa yang dilakukan oleh program }
(* DEKLARASI *)
[const]
{ semua nama tetapan dan harga tetapannya didefinisikan di
sini}
[type]
{ semua nama tipe bentukan didefinisikan di sini }
[var]
{ semua nama variabel global didefinisikan di sini }
{ deklarasi prosedur dan fungsi didefinisikan di sini }
(* DESKRIPSI *)
begin
{ semua instruksi program dituliskan di sini }
end.
Gambar 1.1. Struktur Program Bahasa Pascal
Tabel 1.1. Notasi Bahasa Pascal
Kelompok Notasi Pascal Ket.
1. Tipe Dasar boolean
byte 1 byte
shortint 1 byte
word 2 byte
integer 2 byte
longint 4 byte
real
double
extended
char
string
string[N]
record
field1: type;
field2: type;
...
fieldN: type;
end;
2. Operator
a. Aritmatika + Penjumlahan
Pengurangan
* Perkalian
/ Pembagian
div Hasil bagi
mod Sisa bagi
b. Perbandingan < Lebih kecil dari
<= Lebih kecil atau sama
dengan
> Lebih besar dari
>= Lebih besar atau sama
dengan
= Sama dengan
<> Tidak sama dengan
c. Logika not
and
or
xor
3. Komentar { komentar }
(* komentar *)
4. Lain-lain const
type
true
false
BAB III
TUGAS PENDAHULUAN
3.1 Tugas Prepraktikum
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1. Buatlah contoh deklarasi masing-masing tipe dasar dalam Bahasa Pascal!
2. Isilah tabel berikut ini untuk melakukan penelusuran kebenaran penulisan nama
variabel-variabel ini.
Tabel 1.2. Penelusuran Kebenaran Nama Variabel
Nama Variabel Benar/Salah Alasan Pembetulan
_nilai1
Angka1
@umur
Tanggal lahir
4alasan
Alamat_rumah
Max
3. Jelaskan aturan-aturan yang digunakan dalam penulisan nama variable.
4. Buatlah sebuah Algoritma untuk menghitung luas sebuah lingkaran, gunakan
deklarasi konstanta untuk menyimpan nilai Phi.
Jawab :
1. a : integer;
b : real;
indeks : char;
nama : string;
2. Tabel 1.2. Penelusuran Kebenaran Nama Variabel
Nama Variabel Benar/Salah Alasan Pembetulan
_nilai1 Salah Karena tanda hubung ( _ )
digunakan untuk pemisah Nilai1
Angka1 benar
Variabel dapat dengan
huruf atau angka namun
tidak diawali oleh angka
@umur salah Variabel tidak boleh diawali
dengan simbol maupun angka umur
Tanggal lahir Salah
Pemisahan nama variabel
harus menggunakan tanda
hubung _ {strip bawah}
Tanggal_lahir
4alasan salah
Variabel dapat dengan
huruf atau angka namun
tidak diawali oleh angka
alasan
Alamat_rumah Betul
Pemisahan nama variabel
harus menggunakan tanda
hubung _ {strip bawah}
Max Betul Karena tidak diawali dengan
angka maupun simbol
3. Aturannya yaitu:
a. Untuk penulisan Variabel dapat dengan huruf atau angka namun tidak
diawali oleh angka. Contoh :
Nama1 : String; {betul}
1Nama : String; {salah tidak diizinkan/error}
Nama1MHS: String; {betul}
b. Pemisahan nama variabel harus menggunakan tanda hubung _ {strip
bawah}
Contoh :
Nama1_Mahasiswa : String; {betul}
Nama1 Mahasiswa : String {Salah tidak diizinkan/error}
Nama1Mahasiswa : String; {Betul}
c. Tanda kurung buka “{“ dan kurung tutup “}” merupakan keterangan
atau komentar.
d. Tidak diizinkan menggunakan nama variabel yang sudah ada/
duplikasi variabel.
Contoh :
Nama : String; Duplikasi nama maka Error
Nama : Integer; (Salah)
e. Tidak diizinkan menggunakan nama variabel pada Reserved Word
(kata pasti). Reserved Word adalah suatu kata yang secara mutlak tidak
boleh diartikan lain dan harus digunakan sebagaimana yang telah
didefinisikan atau ditentukan kegunaanya oleh bahasa Pascal. Reserved
word ini tidak boleh didefinisikan ulang oleh pemakai, sehingga tidak
dapat dipergunakan sebagai pengenal (identifier)
Contoh :
Var Begin : Integer; {Salah karena Reserved Word}
4. Algoritma Luas_Lingkaran
DEKLARASI:
const phi = 3.14
l, r = real
DESKRIPSI:
read(r)
l phi * r * r
write(‘Luas lingkaran = ‘,l)
BAB IV
IMPLEMENTASI
4.1 Kegiatan Praktikum
1. Buatlah sebuah program sederhana yang berisi deklarasi masing-masing tipe
dasar sesuai tugas prepraktikum no.1, kemudian pada bagian deskripsi buatlah
contoh instruksi masukan untuk mengisi data dan intruksi keluaran untuk
menampilkan data dari masing-masing tipe dasar tersebut!
Jawab :
1. Program Masukan_dan_Keluaran;
uses wincrt;
var
a : integer;
b : real;
indeks : char;
nama : string;
begin
write('Masukkan integer : ');readln(a);
writeln(a,' Merupakan Type integer');
writeln('');
write('Masukkan real : ');readln(b);
writeln(b:0:2,' Merupakan type real');
writeln('');
write('Masukkan char : ');readln(indeks);
writeln(indeks,' Merupakan type char');
writeln('');
write('Masukkan string : ');readln(nama);
writeln(nama,' Merupakan type string');
end.
Print Screen Running Program
2. Buat program untuk tugas prepratikum no.4!
Program Luas_Lingkaran;
uses wincrt;
const phi = 3.14;
var l, r : real;
begin
writeln('Masukkan jari-jari = ');read(r);
l := phi*r*r;
writeln('Luas Lingkaran adalah ',l:2:2);
end.
Print Screen Running Program
4.2 Tugas Akhir
Buatlah algoritma dan terjemahkan dalam Bahasa Pascal untuk menghitung
keliling lingkaran:
Masukan:
Masukkan nilai jari-jari : __
Keluaran
Keliling lingkaran adalah : __
Jawab :
Algoritma Keliling_Lingkaran
DEKLARASI:
const phi = 3.14
k, r = real
DESKRIPSI:
read(r)
Write(‘Masukkan Nilai jari-jari’)
k2*phi*r
write(‘Keliling lingkaran adalah ‘,k)
Program Menghitung_Keliling_Lingkaran;
uses wincrt;
const phi = 3.14;
var
k, r : real;
begin
writeln('Masukkan Nilai Jari-jari : ');read(r);
k := 2*phi*r;
writeln('Keliling Lingkaran adalah ',1:2:2);
end
Print Screen Running Program
4.3 Tugas tambahan
Buat program konverter suhu, dari Celcius ke Reamur, Fahrenheit, dan Kelvin.
• Inputan :
– Derajat Celcius :
• Keluaran :
– Derajat Reamur :
– Derajat Fahrenheit :
– Derajat Kelvin :
Jawab :
program Konverter_Suhu;
uses wincrt;
var
C, F, K, R : real;
begin
writeln(' Program Konversi Suhu ');
writeln('===========================================');
writeln('');
write('Masukkan Suhu dalam Celsius : ');read(C);
F := (C*1.8)+32;
R := C*0.8;
K := C+273;
writeln('Suhu dalam Fahrenheit adalah : ',F:3:1);
writeln('Suhu dalam Reamur adalah : ',R:3:1);
writeln('Suhu dalam Kelvin adalah : ',K:3:1);end.
Print Screen Running Program
BAB V
PENUTUP
5.1 Kesimpulan
Dari laporan praktikum modul 1 ini, dapat disimpulkan:
1. Bahasa Pascal adalah bahasa pemprograman yang memakai kata-kata dan
pernyataan yang mudah dimengerti manusia, meskipun masih jauh
berbeda dengan bahasa manusia sesungguhnya (high level).
2. Untuk memahami tentang bahasa pemrograman Pascal, maka kita harus
mengetahui terlebih dahulu struktur program Pascal, tipe data, variabel dan
konstanta.
3. Ada berbagai macam tipe data dalam bahasa Pascal.
5.2 Saran
Dalam menggunakan program Pascal diperlukan ketelitian. Walaupun huruf
besar dan kecil tidak diperhitungkan, titik koma (;) harus diperhatikan. Selain
itu variable pada pascal harus sesuai dengan aturan yang ditetapkan. Untuk
dapat dengan mudah menggunakan Pascal, harus lebih sering berlatih Pascal.
LAPORAN RESMI PRAKTIKUM ALGORITMA PEMROGRAMAN
Modul 2
PENYELEKSIAN KONDISI
Disusun Oleh :
LABORATORIUM PEMROGRAMAN JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2012
Disetujui : ....../……./………../Bangkalan
( Andy Hartono )
10.04.1.1.1.00020
TGL PRAKTIKUM : 15 Mei 2012
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 11.04.111.00039
KELAS : A
DOSEN PENGAMPU : NOOR IFADA, ST., MISD.
ASISTEN : Andy Hartono
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam suatu pemrograman, kita pasti akan dihadapkan pada satu
permasalahan yang komplek, dimana dalam pemecahannya terdiri dari
beberapa kondisi yang memerlukan penanganan yang berbeda. Untuk
menangani masalah tersebut diperlukan penyeleksi suatu kondisi, karena
selanjutnya dapat ditentukan tindakan apa yang harus dilakukan dan
tergantung pada hasil kondisi penyeleksian. Untuk itu dalam modul 2 ini,
akan dibahas tentang “penyeleksian kondisi”. Sehingga kita bisa memahami
lebih dalam lagi bagaimana cara penggunaannya dengan menggunakan
bahasa pemrograman Pascal.
1.2 Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 2
ini adalah :
1. Mahasiswa mengetahui bagaimana cara menggunakan penyeleksian
kondisi dalam bahasa pemrograman Pascal
2. Mahasiswa mengetahui apa saja statemen-statemen dalam peyeleksian
kondisi tersebut
3. Mahasiswa mengetahui apa perbedaan dari setiap statemen-statemen
dalam peyeleksian kondisi tersebut
4. Mahasiswa mengetahui apa kegunaan dari penyeleksian kondisi dalam
suatu pemrograman dan kegunaan setiap statemen-statemen dalam
peyeleksian kondisi tersebut
BAB II
DASAR TEORI
Pada umumnya satu permasalahan yang komplek memerlukan
suatu penyelesaian kondisi. Dengan menyeleksi suatu kondisi, maka
selanjutnya dapat ditentukan tindakan apa yang harus dilakukan, tergantung
pada hasil kondisi penyeleksian. Jadi suatu aksi hanya dikerjakan apabila
persyaratan atau kondisi tertentu terpenuhi.
a. Penyeleksian Satu Kasus, dengan menggunakan struktur IF-THEN:
Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen if. Bila
kondisi bernilai benar (true), maka aksi sesudah kata then (dapat berupa
satu atau lebih aksi) akan diproses. Bila kondisi bernilai salah (false), maka
tidak ada aksi yang akan dikerjakan. Statemen endif adalah untuk
mempertegas bagian awal dan bagian akhir struktur IF-THEN.
Gambar diagram alir penyelesaian satu kasus untuk struktur IF-THEN
ditunjukkan dalam Gambar 2.1 dan struktur penulisan dalam bahasa pascal
dapat dilihat dari Gambar 2.2.
Gambar 2.1. Diagram Alir Struktur Penyeleksian Satu Kasus (IF-THEN)
IF
kondisi?
Aksi
THEN
salah
benar
if kondisi then
aksi
Gambar 2.2. Struktur Bahasa Pascal Untuk Penyeleksian Satu Kasus (IF-
THEN)
b. Penyeleksian Dua Kasus, menggunakan struktur IF-THEN-ELSE:
Dalam struktur IF-THEN-ELSE, aksi1 akan dilaksanakan jika kondisi
bernilai benar (true), dan jika kondisi bernilai salah (false) maka aksi2
yang akan dilaksanakan. Statemen else menyatakan ingkaran (negation)
dari kondisi.
Gambar diagram alir penyelesaian dua kasus untuk struktur IF-THEN-
ELSE ditunjukkan dalam Gambar 2.3 dan struktur penulisan dalam bahasa
pascal dapat dilihat dari Gambar 2.4.
Gambar 2.3. Diagram Alir Struktur IF-THEN-ELSE
if kondisi then
aksi1
else
aksi2
IF
kondisi? THEN
salah
benar
ELSE
aksi2
aksi1
Gambar 2.4. Struktur Bahasa Pascal Untuk Penyeleksian Dua Kasus (IF-
THEN-ELSE)
c. Penyeleksian Tiga Kasus atau Lebih (Penyeleksian Tersarang)
Untuk penyeleksian tiga kasus atau lebih juga menggunakan struktur IF-
THEN-ELSE sebagaimana halnya permasalahan dua kasus.
Gambar diagram alir penyelesaian tiga kasus untuk struktur IF-THEN-
ELSE ditunjukkan dalam Gambar 2.5 dan struktur penulisan dalam bahasa
pascal dapat dilihat dari Gambar 2.6.
IF
kondisi1
IF
kondisi2
aksi1
aksi2
benar
salah
benar
aksi3
salah
Gambar 2.5. Diagram alir dari struktur tiga kasus IF-THEN-ELSE
(tersarang)
if kondisi1 then
aksi1
else
if kondisi2 then
aksi2
else
aksi3
Gambar 2.6. Struktur Bahasa Pascal untuk Penyeleksian Tiga Kasus IF-
THEN-ELSE (tersarang)
d. Struktur CASE. Struktur ini dapat digunakan untuk menganalisa
penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana
daripada struktur IF-THEN-ELSE yang memiliki bentuk bertingkat-
tingkat. Gambar 2.7 memperlihatkan Struktur CASE.
case (nama)
kondisi1 : aksi1
kondisi2 : aksi2
...
kondisiN : aksiN
[otherwise aksiX]
Gambar 2.7. Struktur Bahasa Pascal Untuk Seleksi CASE
Kondisi1, kondisi2, … kondisiN dapat bernilai benar atau salah. Tiap
kondisi diperiksa nilai kebenarannya mulai dari kondisi pertama sampai
ditemukan kondisi yang benar. Jika kondisi ke-k benar, maka aksi ke-k
dilaksanakan, selanjutnya keluar dari struktur CASE. Aksi yang
dipasangkan dengan kondisi ke-k dapat lebih dari satu, karena itu ia berupa
runtunan. Jika tidak ada satupun kondisi yang benar, maka aksi sesudah
otherwise (optional) dikerjakan.
BAB III
TUGAS PENDAHULUAN
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1. Jelaskan pada kondisi apa sebaiknya struktur seleksi if dan case digunakan!
Apa perbedaan dari kedua struktur tersebut?
2. Buatlah algoritma untuk menentukan bilangan terbesar dari tiga buah
bilangan bulat yang dimasukkan melalui piranti masukan. (Asumsi: ketiga
bilangan adalah bilangan yang berbeda)
Contoh keluaran yang diinginkan;
Masukkan bilangan pertama : 4
Masukkan bilangan kedua : 2
Masukkan bilangan ketiga : 7
Bilangan yang terbesar adalah : 7
Program Bilangan_Terbesar;
3. Buatlah algoritma konversi dari nilai angka menjadi nama hari. (Asumsi:
1=Senin, 2=Selasa, 3=Rabu, 4=Kamis, 5=Jumat, 6=Sabtu, 7=Minggu)
Contoh keluaran yang diinginkan:
Masukkan Angka yang menunjukkan hari : 1
Hari yang anda pilih : Senin
Jawab :
1. Struktur IF-ELSE digunakan untuk menganalisa penyeleksian dua kasus atau
lebih yang memiliki bentuk bertingkat-tingkat. Sedangkan struktur CASE
digunakan untuk menganalisa penyeleksian dua kasus atau lebih dan
bentuknya adalah lebih sederhana
2. Algoritma Angka Maksimum
Deklarasi
a, b, c, max : integer
Deskripsi
read (a, b, c)
max = a
if a > b then
max = a
else
max = b
if max > c then
max = max
else
max = c
write (max)
endif.
3. Algoritma Nama_Hari
Deklarasi
AngkaHari : integer { 1..7 }
Deskripsi :
read(AngkaHari)
case(AngkaHari)
AngkaHari=1 : write(‘Senin’)
AngkaHari=2 : write(‘Selasa’)
AngkaHari=3 : write(‘Rabu’)
AngkaHari=4 : write(‘Kamis’)
AngkaHari=5 : write(‘Jumat’)
AngkaHari=6 : write(‘Sabtu’)
AngkaHari=7 : write(‘Minggu’)
otherwise write(‘Bukan nomor hari yang benar’)
endcase
BAB IV
IMPLEMENTASI
4.1. Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1. Buat program untuk prepraktikum 2!
2. Buat program untuk prepraktikum 3!
3. Buat program kode Negara!
4. Buat Program indeks nilai!
Jawab :
1. program angka_maksimal;
uses wincrt;
var
a, b, c, Max : integer;
begin
writeln(' Program Angka Maksimum ');
writeln('=================================');
writeln('');
writeln('Masukkan Angka Pertama : ');readln(a);
writeln('Masukkan Angka Kedua : ');readln(b);
writeln('Masukkan Angka Ketiga : ');readln(c);
max:= a;
if (a>b) then
max := a
else
max:=b;
if(max>c) then
max:=max
else
max:=c;
writeln('Nilai Maksimum adalah : ',max);
end.
Print Screen Program
2. Program Nama_Hari;
uses wincrt;
var
AngkaHari : integer;
begin
write('Masukkan Angka yang Menunjukkan hari : ');
readln(AngkaHari);
case AngkaHari of
1 : writeln('Hari yang anda pilih : Senin');
2 : writeln('Hari yang anda pilih : Selasa');
3 : writeln('Hari yang anda pilih : Rabu');
4 : writeln('Hari yang anda pilih : Kamis');
5 : writeln('Hari yang anda pilih : Jumat');
6 : writeln('Hari yang anda pilih : Sabtu');
7 : writeln('Hari yang anda pilih : Minggu');
else writeln ('Bukan nomor hari yang benar');
end;
end.
Print Screen Program
3. program kode_negara;
uses wincrt;
var
kode : integer;
begin
writeln(' Program Kode Negara ');
writeln('==========================');
writeln('');
writeln('Masukkan kode negara : ');
readln(kode);
case kode of
61 : writeln('Kode Negara Malaysia');
62 : writeln('Kode Negara Indonesia');
63 : writeln('Kode Negara Brunei Darussalam');
else
writeln('Di luar jangkauan');
end;
end.
Print Screen Program
4. program indeks_nilai;
uses wincrt;
var
nilai : real;
indeks : char;
begin
writeln(' Program Indeks Nilai ');
writeln('=============================');
writeln('');
writeln('Masukkan nilai: ');readln(nilai);
if nilai >= 80 then
indeks := 'A'
else
if (nilai>=75) and (nilai<80) then
indeks := 'B'
else
if (nilai>=60) and (nilai<75) then
indeks := 'C'
else
if (nilai>=45) and (nilai<60) then
indeks := 'D'
else
indeks := 'E';
writeln('Indeks nilai : ',indeks);
end.
Print Screen Program
4.2. Tugas Akhir
Buatlah algoritma dan terjemahkan dalam Bahasa Pascal untuk mengurutkan
tiga buah bilangan bulat (dari yang terkecil ke yang terbesar) yang
dimasukkan melalui piranti masukan! (Asumsi: ketiga bilangan yang
dimasukkan adalah bilangan yang berbeda)
Contoh:
Masukkan bilangan pertama : 9
Masukkan bilangan kedua : 1
Masukkan bilangan ketiga : -7
Urutan bilangan: -7 1 9
Jawab :
program Mengurutkan_angka;
uses wincrt;
var
a, b, c : integer;
begin
writeln(' Program Mengurutkan Angka dari Terkecil ke Terbesar ');
writeln('==============================================');
writeln('');
writeln('Masukkan Angka Pertama : ');readln(a);
writeln('Masukkan Angka Kedua : ');readln(b);
writeln('Masukkan Angka Ketiga : ');readln(c);
if (a<b) and (b<c) then
write('Urutan bilangan : ',a, b, c)
else
if (b<c) and (c<a) then
write('Urutan bilangan : ',b, c, a)
else
if (c<a) and (a<b) then
write('Urutan bilangan : ',c, a, b)
else
if (c<b) and (b<a) then
write('Urutan bilangan : ',c, b, a)
else
if (a<c) and (c<b) then
write('Urutan bilangan : ',a, c, b)
else
write('Urutan bilangan : ',b, a, c);
end.
Print Screen Program
4.3. Tugas Tambahan
Buat program menentukan bilangan ganjil atau genap!
Contoh
Inputan
Masukkan bilangan : 20
Output
20 adalah bilangan genap
Jawab :
program Menentukan_bilangan_ganjil_genap;
uses wincrt;
var
a, bil : integer;
begin
writeln(' Program Menentukan Bilangan Ganjil atau Genap ');
write('================================================');
writeln('');
write('Masukkan bilangan : ');
read(bil);
if bil mod 2 = 0 then
writeln(bil,' adalah bilangan genap')
else
writeln(bil,' adalah bilangan ganjil');
end.
Print Screen Program
BAB V
PENUTUP
5.1 Kesimpulan
Dari laporan praktikum modul 2 ini, kita dapat menarik kesimpulan:
1. Penyeleksian kondisi pada bahasa Pascal ada 4 yaitu: If, If-Else, If-Else-If-
Else, dan case
2. Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen if ,
dengan pengkondisian dimasukkan kedalam "( kondisi )" setelah deklarasi
if.
3. Penyeleksian Dua Kasus, menggunakan struktur IF-ELSE
4. Untuk penyeleksian tiga kasus atau lebih juga menggunakan struktur IF-
ELSE IF-ELSE sebagaimana halnya permasalahan dua kasus.
5. Struktur CASE. Struktur ini dapat digunakan untuk menganalisa
penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana
daripada struktur IF -ELSE yang memiliki bentuk bertingkat-tingkat.
5.2 Saran
Pada praktikum modul 2 ini, mahasiswa mulai menggunakan penyeleksian
kondisi. Yang perlu diperhatikan adalah mahasiswa dari awal harus
memahami program apa yang akan dibuat, sehingga dalam membuat program
tidak bingung. Dalam menggunakan penyeleksian kondisi harus diperhatikan,
yaitu struktur IF-ELSE digunakan untuk menganalisa penyeleksian dua kasus
atau lebih yang memiliki bentuk bertingkat-tingkat. Sedangkan struktur
CASE digunakan untuk menganalisa penyeleksian dua kasus atau lebih dan
bentuknya adalah lebih sederhana.
LAPORAN RESMI PRAKTIKUM ALGORITMA PEMROGRAMAN
Modul 3
PENGULANGAN (LOOPING)
Disusun Oleh :
LABORATORIUM PEMROGRAMAN JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2012
Disetujui : ....../……./………../Bangkalan
( Andy Hartono )
10.04.1.1.1.00020
TGL PRAKTIKUM : 22 Mei 2012
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 11.04.111.00039
KELAS : A
DOSEN PENGAMPU : NOOR IFADA, ST., MISD.
ASISTEN : Andy Hartono
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam pemrograman kita akan mengenal dengan system pengulangan,
dalam bahasa pemrograman Pascal sendiri terdapat dua model struktur
pengulangan, yaitu : Struktur Pengulangan Tanpa Kondisi (unconditional looping)
dan Struktur Pengulangan Dengan Kondisi (conditional looping).
Untuk itu dalam modul 3 ini, akan dibahas tentang “pengulangan
(looping)”. Sehingga kita bisa memahami lebih dalam lagi bagaimana cara
penggunaannya dengan menggunakan bahasa pemrograman Pascal.
1.2 Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 3
ini adalah :
1. Mahasiswa mengetahui bagaimana cara menggunakan struktur
pengulangan (looping) dalam bahasa pemrograman Pascal.
2. Mahasiswa mengetahui apa saja model-model dalam pengulangan
(looping) tersebut.
3. Mahasiswa mengetahui apa perbedaan dari setiap model-model
dalam pengulangan (looping) tersebut.
4. Mahasiswa mengetahui apa kegunaan dari pengulangan (looping)
dalam suatu pemrograman dan kegunaan setiap model-model dalam
pengulangan (looping) tersebut.
BAB II
DASAR TEORI
Terdapat dua model struktur pengulangan, yaitu:
1. Struktur Pengulangan Tanpa Kondisi (unconditional looping). Di dalam
struktur ini, instruksi-instruksi di dalam badan pengulangan diulangi
sejumlah kali yang dispesifikasikan (jumlah pengulangan sudah diketahui
sebelum eksekusi). Contoh: Struktur FOR.
2. Struktur Pengulangan Dengan Kondisi (conditional looping). Di dalam
struktur ini, jumlah pengulangan tidak diketahui sebelum eksekusi
program. Yang dapat ditentukan hanya kondisi berhenti pengulangan,
artinya instruksi-instruksi di dalam badan pengulangan diulangi sampai
kondisi berhenti terpenuhi. Contoh: Struktur WHILE dan Struktur
REPEAT.
Macam-macam struktur pengulangan:
a. Struktur FOR
Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu
blok statemen berulang kali. Jumlah pengulangan diketahui atau dapat
ditentukan sebelum eksekusi. Untuk mencacah sudah jumlah pengulangan
diperlukan sebuah variabel pencacah (counter). Variabel ini nilainya selalu
bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan
sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan
berhenti. Pada struktur FOR, pencacah haruslah dari tipe data yang
memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil
tidak dapat digunakan sebagai pencacah. Aksi adalah satu atau lebih
instruksi yang diulang.
Bentuk struktur FOR ada dua macam:
Menaik (ascending)
Pada struktur FOR menaik, nilai_awal harus lebih kecil atau sama
dengan nilai_akhir. Jika nilai_awal lebih besar dari nilai_akhir, maka
badan pengulangan tidak dimasuki. Pada awalnya, pencacah
diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis
bertambah satu setiap kali aksi pengulangan dimasuki, sampai
akhirnya nilai pencacah sama dengan nilai_akhir. Jumlah pengulangan
yang terjadi = nilai_akhir – nilai_awal + 1. Struktur Bahasa Pascal
untuk pengulangan FOR menaik ditunjukkan pada Gambar 3.1.
for pencacah:=nilai_awal to nilai_akhir do
aksi
Gambar 3.1. Struktur Bahasa Pascal Untuk Pengulangan FOR
Menaik
Menurun (descending)
Pada struktur FOR menurun, nilai_akhir harus lebih besar atau sama
dengan nilai_awal. Jika nilai_akhir lebih kecil dari nilai_awal, maka
badan pengulangan tidak dimasuki. Pada awalnya, pencacah
diinisialisasikan dengan nilai_akhir. Nilai pencacah secara otomatis
berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai
pencacah sama dengan nilai_awal. Jumlah pengulangan yang terjadi =
nilai_akhir – nilai_awal + 1. Struktur Bahasa Pascal untuk
pengulangan FOR menurun ditunjukkan pada Gambar 3.2.
for pencacah:=nilai_akhir downto nilai_awal do
aksi
Gambar 3.2. Struktur Bahasa Pascal Untuk Pengulangan FOR
Menurun
b. Struktur WHILE
Pada struktur WHILE, aksi (atau runtunan aksi) akan dilaksanakan
berulang kali selama kondisi bernilai true. Jika kondisi bernilai false,
badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan
selesai. Yang harus diperhatikan adalah pengulangan harus berhenti.
Pengulangan yang tidak pernah berhenti menandakan bahwa logika
pemrograman tersebut salah. Pengulangan berhenti apabila kondisi bernilai
false. Agar kondisi suatu saat bernilai false, maka di dalam badan
pengulangan harus ada instruksi yang mengubah nilai variabel kondisi.
while kondisi do
aksi
Gambar 3.3. Struktur Bahasa Pascal Untuk Pengulangan WHILE
c. Struktur REPEAT
Struktur ini mendasarkan pengulangan pada kondisi boolean. Aksi di
dalam badan pengulangan diulang sampai kondisi boolean bernilai true.
Dengan kata lain, jika kondisi boolean masih false, pengulangan masih
terus dilakukan. Karena proses pengulangan suatu saat harus berhenti,
maka di dalam badan pengulangan harus ada aksi yang mengubah nilai
variabel kondisi. Struktur REPEAT mempunyai makna yang sama dengan
WHILE, dan dalam beberapa masalah kedua struktur tersebut komplemen
satu sama lain.
Repeat
aksi
until kondisi
Gambar 3.4. Struktur Bahasa Pascal Untuk Pengulangan
REPEAT
BAB III
TUGAS PENDAHULUAN
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1. Jelaskan perbedaan antara struktur pengulangan FOR, WHILE dan
REPEAT!
2. Buatlah algoritma untuk menampilkan deret bilangan ganjil antara 0 s/d 100!
3. Buatlah algoritma untuk menampilkan deret bilangan 1, 5, 9, 13, ... (berhenti
jika melebihi 300)!
4. Buatlah algoritma untuk menampilkan deret bilangan 1, 1, 2, 1, 2, 3, ...
(berhenti jika sama dengan batas nilai tertentu yang dimasukkan melalui
piranti masukan)!
Contoh:
Masukan batas nilai: 4
Deret Keluaran: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4
Jawab :
1. Perbedaan antara struktur pengulangan FOR, WHILE dan DO-WHILE :
o for(inisialisasi; kondisi; penaikan_penurunan) bagian inisialisasi
digunakan untuk memberikan nilai kepada variabel yang digunakan untuk
mengontrol pengulangan. Bagian kondisi digunakan untuk mengontrol
pengulangan dilanjutkan atau diakhiri. Bagian penaikan_penurunan
digunakan untuk menaikkan atau menurunkan nilai variabel pengontrol
pengulangan.
o while(kondisi), pernyataan/aksi akan dijalankan secara terus-menerus
selama kondisi bernilai true (benar).
o Do-while(kondisi), hampir sama dengan while namun pernyataan/aksi di
sini akan dilakukan sekali kemudian dimasukkan dalam kondisi. Artinya
aksi pertama kali tidak melihat kondisi, baru kemudian aksi kedua
dimasukkan dalam kondisi.
2. Algortima deret_bilangan_ganjil
Deklarasi
b : integer
Deskripsi :
b ← 1
repeat
write(b)
b ← b+2;
until b>100
3. Algortima deret_bilangan
Deklarasi
x : integer
Deskripsi :
x ← 1
repeat
write(x)
x ← x+4;
until b>300
4. Algoritma deret_bilangan
Deklarasi
a,b,n:integer
Deskripsi :
Read(n)
a ← 1
for a ← 1 to n do
b ← 1 to a do
endfor
write(b,',')
BAB IV
IMPLEMENTASI
4.1. Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1. Buat program untuk tugas prepraktikum 2!
2. Buat program untuk tugas prepraktikum 3!
Jawab :
1.
program deret_bilangan_ganjil;
uses wincrt;
var
b : integer;
begin
writeln(' Program Deret bilangan ganjil ');
writeln('===========================================');
writeln('');
b:=1;
repeat
write(' ',b);
b:=b+2;
until(b>100);
readln;
end.
Print Screen Program
2.
program deret_bilangan_empat;
uses wincrt;
var
b : integer;
begin
writeln(' Program Deret Bilangan ');
writeln('===========================================');
writeln('');
b:=1;
repeat
write(' ',b);
b:=b+4;
until(b>300);
readln;
end.
Print Screen Program
4.2. Tugas Akhir
Buatlah algoritma dan terjemahkan dalam Bahasa Pascal untuk membuat bentuk
belah ketupat dari deretan angka berdasarkan batas nilai yang dimasukkan
melalui piranti masukan!
Contoh:
Masukkan batas nilai: 5
Hasil belah ketupat deretan angka:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
Jawab :
Algoritma Belah_Ketupat;
Deklarasi
s, N, i, j, k : integer;
Deskrispi
for i ← 1 to N do
writeln(‘’)
for k ← (N-1) downto i do
write(' ')
endfor
for j ← 1 to i do
write(j,' ')
endfor
for j ← (i-1) downto 1 do
write(j,' ')
endfor
writeln(' ')
endfor
for i ← (N-1) downto 1 do
writeln(‘’)
for k ← (N-1) downto i do
write(' ')
endfor
for j ←1 to i do
write(j,' ')
endfor
for j ← (i-1) downto 1 do
write(j,' ')
endfor
writeln(' ')
endfor
end.
program belah_ketupat;
uses wincrt;
var
s, N, i, j, k : integer;
begin
writeln(' Program Angka Belah Ketupat ');
writeln('==========================================');
writeln('');
write('Masukkan Batas : ');read(N);
writeln('Hasil belah ketupat deretan angka: ');
begin
for i := 1 to N do
begin
for k:= (N-1) downto i do
begin
write(' ');
end;
for j := 1 to i do
begin
write(j,' ');
end;
begin
for j := (i-1) downto 1 do
write(j,' ');
end;
writeln(' ');
end;
end;
begin
for i := (N-1) downto 1 do
begin
for k := (N-1) downto i do
begin
write(' ');
end;
for j := 1 to i do
begin
write(j,' ');
end;
begin
for j := (i-1) downto 1 do
write(j,' ');
end;
writeln(' ');
end;
end;
end.
Print Screen Program
4.3. Tugas Tambahan
Buatlah program bebas tentang perulangan meliputi for, while, dan repeat
yang mana didalamnya berisikan menu pilihan sehingga user bisa memilih
program yang mana yang akan di jalankan. untuk lebih jelasnya berikut
ketentuannya:
• Program bebas tentang perulangan meliputi for, while, dan repeat
• Ada Menu pilihan
• Program perulangan harus beda antara for, while, dan repeat
• Program tidak boleh sama dengan praktikan yang lainnya
Contoh
Program Perulangan
Menu pilihan:
1. Program For
2. Program While
3. Program Repeat
4. Keluar
Masukkan pilihan:
• Jika yang dipilih no. 1 maka jalankan program For
• Jika yang dipilih no. 2 maka jalankan program Whie
• Jika yang dipilih no. 3 maka jalankan program Repeat
• Jika yang dipilih no. 4 maka keluar dari Program Perulangan
• Jika yang program sudah selesai di jalankan, ada sebuah statment "
Apakah anda ingin mencoba lagi ? [y/n]"
• Jika yang dipilih "y" maka program kembali ke Menu pilihan
• Jika yang dipilih "n" maka program berhenti.
Jawab :
program menu;
uses wincrt;
var
a, b, c, n : integer;
YN, x : char;
begin
YN:= 'Y';
begin
repeat
ClrScr;
writeln('-----------Program Perulangan------------');
writeln('=========================================');
writeln('');
writeln('');
writeln('Menu pilihan: ');
writeln('1. Program For');
writeln('2. Program While');
writeln('3. Program Repeat');
writeln('4. Keluar');
write('Masukkan Pilihan Anda : ');
readln(x);
clrscr;
if (x = '1') then
begin
writeln(' Program Menampilkan Deret ');
writeln('================================================
====');
writeln('');
write('Masukkan Batas : ');readln(n);
for a := 1 to n do
begin
write(a,' ');
end;
writeln('');
end
else
if (x = '2') then
begin
writeln(' Program Deret bilangan ganjil ');
writeln('================================================
====');
writeln('');
write('Masukkan Batas : ');readln(n);
b := 1;
while b <= N do
begin
writeln(b);
b := b + 2;
end;
writeln('');
end
else
if (x = '3') then
begin
writeln(' Program Deret bilangan genap ');
writeln('================================================
====');
writeln('');
write('Masukkan Batas : ');readln(n);
b := 2;
repeat
begin
writeln(b);
b := b+2;
end;
until b > n;
end
else
if (x = '4') then
begin
donewincrt;
end;
write('Apakah anda ingin mencoba lagi ? [y/n]');
readln(YN);
until
UpCase(YN)= 'N';
end;
end.
Print Screen Program
BAB V
PENUTUP
5.1 Kesimpulan
Dari laporan praktikum modul 3 ini, kita dapat menarik kesimpulan:
1. Struktur Pengulangan Tanpa Kondisi (unconditional looping). Di dalam
struktur ini, instruksi-instruksi di dalam badan pengulangan diulangi
sejumlah kali yang dispesifikasikan (jumlah pengulangan sudah diketahui
sebelum eksekusi).
2. Struktur Pengulangan Dengan Kondisi (conditional looping). Di dalam
struktur ini, jumlah pengulangan tidak diketahui sebelum eksekusi
program. Yang dapat ditentukan hanya kondisi berhenti pengulangan,
artinya instruksi-instruksi di dalam badan pengulangan diulangi sampai
kondisi berhenti terpenuhi.
5.2 Saran
Diharapkan asisten praktikum dalam memberikan tugas tambahan tidak
mendadak, sehingga praktikan dalam mengerjakan tugas tambahan tidak dalam
kondisi terburu-buru.
LAPORAN RESMI PRAKTIKUM ALGORITMA PEMROGRAMAN
Modul 4
PROSEDUR DAN FUNGSI
Disusun Oleh :
LABORATORIUM PEMROGRAMAN JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2012
Disetujui : ....../……./………../Bangkalan
( Andy Hartono )
10.04.1.1.1.00020
TGL PRAKTIKUM : 29 Mei 2012
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 11.04.111.00039
KELAS : A
DOSEN PENGAMPU : NOOR IFADA, ST., MISD.
ASISTEN : Andy Hartono
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam pemrograman kita akan mengenal dengan prosedur dan fungsi. Prosedur
adalah modul program yang mengerjakan aktivitas yang spesifik dan hasilnya
diperoleh dengan membandingkan keadaan awal dan keadaan akhir pada
pelaksanaan sebuah prosedur. Fungsi adalah suatu bagian dari program yang
dirancang untuk melaksanakan tugas tertentu dan letaknya dipisahkan dari
program yang menggunakannya. Elemen utama dari program bahasa Pascal
berupa fungsi-fungsi, dalam hal ini program dari bahasa Pascal dibentuk dari
kumpulan fungsi pustaka (standar) dan fungsi yang dibuat sendiri oleh
pemrograman. Untuk itu dalam modul 4 ini, akan dibahas tentang Prosedur
dan Fungsi. Sehingga kita bisa memahami lebih dalam lagi bagaimana cara
penggunaannya dengan menggunakan bahasa pemrograman Pascal.
1.2 Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 4
ini adalah :
1. Mahasiswa mengetahui bagaimana cara menggunakan prosedur dan
fungsi dalam bahasa pemrograman Pascal.
2. Mahasiswa mengetahui apa kegunaan dari prosedur dan fungsi dalam
suatu pemrograman.
BAB II
DASAR TEORI
2.1 Teori Singkat
Seringkali dalam pembuatan program yang berukuran besar, program
tersebut dapat dipecah menjadi beberapa subprogram/modul yang lebih kecil.
Tiap modul dapat dipasangkan ke program lain yang membutuhkannya. Jenis
modul program ada dua macam, yaitu Prosedur dan Fungsi.
a. Prosedur
Prosedur adalah modul program yang mengerjakan aktivitas yang spesifik
dan hasilnya diperoleh dengan membandingkan keadaan awal dan keadaan akhir
pada pelaksanaan sebuah prosedur. Sehingga pada setiap prosedur keadaan awal
harus didefinisikan sebelum rangkaian instruksi di dalam prosedur dilaksanakan
dan keadaan akhir yang diharapkan setelah rangkaian instruksi dilaksanakan.
Struktur prosedur terdiri dari tiga bagian, yaitu:
o Judul
o Deklarasi
o Deskripsi/Badan Prosedur
procedure Nama_Prosedur;
{ Spesifikasi prosedur, berisi penjelasan mengenai apayang dilakukan oleh
prosedur ini. }
{ K.awal : keadaan sebelum prosedur dilaksanakan. }
{ K.akhir: keadaan setelah prosedur dilaksanakan. }
(*DEKLARASI*)
{ semua nama yang dipakai dalam prosedur dan hanyaberlaku lokal di dalam
prosedur didefinisikan disini }
(*DESKRIPSI*)
begin
{ badan prosedur, berisi kumpulan instruksi }
End
Cara memanggil prosedur: NAMA_PROSEDUR;
Ketika NAMA_PROSEDUR dipanggil, kendali program berpindah secara
otomatis ke prosedur tersebut. Instruksi di dalam badan prosedur dilaksanakan.
Setelah semua instruksi selesai dilaksanakan, kendali program berpindah secara
otomatis ke instruksi sesudah pemanggilan prosedur.
Kebanyakan program memerlukan pertukaran informasi antara prosedur
(atau fungsi) dan titik dimana ia dipanggil. Penggunaan parameter menawarkan
mekanisme penukaran informasi tersebut. Tiap item data ditransfer antara
parameter aktual dan parameter formal yang bersesuaian. Parameter aktual
adalah parameter yang disertakan ketika pemanggilan, sedangkan paramater
formal adalah parameter yang dideklarasikan di bagian header prosedur itu
sendiri. Ketika prosedur dipanggil, parameter aktual menggantikan parameter
formal.
Berdasarkan maksud penggunaannya, terdapat tiga jenis parameter formal
yang disertakan di dalam prosedur, yaitu:
Prosedur dengan Parameter Masukan
Parameter masukan adalah parameter yang nilainya berlaku sebagai masukan
untuk prosedur. Pada parameter masukan, nilai parameter aktual diisikan ke dalam
parameter formal yang bersesuaian. Nilai ini digunakan di dalam badan prosedur
yang bersangkutan. Nilai yang dinyatakan oleh parameter masukan tidak dapat
dikirim dalam arah sebaliknya. Itulah alasan mengapa parameter jenis ini diacu
sebagai parameter masukan. Perubahan nilai parameter di dalam badan prosedur
tidak mengubah nilai parameter aktual. Karena yang dipentingkan adalah nilainya,
maka nama parameter aktual boleh berbeda dengan nama parameter formal yang
bersesuaian.
Prosedur Nama_Prosedur(parameter : tipe_param);
{ Spesifikasi prosedur, berisi penjelasan tenang apa
yang dilakukan oleh prosedur ini. }
{ K.awal : keadaan sebelum prosedur dilaksanakan. }
{ K.akhir: keadaan setelah prosedur dilaksanakan. }
(*DEKLARASI*)
{ semua nama yang dipakai dalam prosedur dan hanya
berlaku lokal di dalam prosedur didefinisikan di
sini }
(*DESKRIPSI*)
begin
{badan prosedur, berisi kumpulan instruksi }
End;
Cara memanggil prosedur: NAMA_PROSEDUR(parameter_aktual);
Prosedur dengan Parameter Masukan/Keluaran
Parameter masukan/keluaran adalah parameter yang berfungsi sebagai masukan
sekaligus keluaran bagi prosedur tersebut. Bila prosedur yang mengandung
parameter keluaran dipanggil, nama parameter aktual di dalam program
pemanggil menggantikan nama parameter formal yang bersesuaian di dalam
prosedur. Jadi, nama parameter aktual akan digunakan selama pelaksanaan
prosedur. Akibat penggunaan parameter masukan/keluaran, bila parameter actual
diubah nilainya di dalam badan prosedur, maka sesudah pemanggilan prosedur
nilai parameter aktual di titik pemanggilan juga berubah. Ini berbeda dengan
parameter masukan, yang dalam hal ini meskipun nilai parameter aktual di dalam
badan prosedur diubah, nilai parameter aktual tersebut tidak berubah di titik
pemanggilan.
procedure NAMA_PROSEDUR(var parameter : tipe_param);
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi akhir
dan proses }
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
(* DEKLARASI *)
{ Semua nama yang dipakai prosedur didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)
begin
{ badan prosedur, berisi semua langkah atau aksi }
end;
Cara memanggil prosedur: NAMA_PROSEDUR(parameter_aktual);
b. Fungsi
Fungsi juga merupakan modul program yang mempunyai tujuan spesifik.
Fungsi memberikan/mengembalikan (return) sebuah nilai dan tipe tertentu (tipe
dasar atau tipe bentukan). Fungsi diakses dengan memanggil namanya. Selain itu,
fungsi juga dapat mengandung daftar parameter formal. Parameter pada fungsi
selalu merupakan parameter masukan. Jenis parameter masukan pada fungsi
disebabkan oleh kenyataan bahwa parameter pada fungsi merupakan masukan
yang digunakan oleh fungsi tersebut untuk menghasilkan nilai.
function NAMA_FUNGSI(daftar parameter formal) : tipe_hasil;
{ Spesifikasi Fungsi, menjelaskan apa yang dilakukan dan dikembalikan oleh fungsi
}
(* DEKLARASI *)
{ Semua nama yang dipakai fungsi didefinisikan di sini dan hanya berlaku lokal }
(* DESKRIPSI *)
begin
{ badan fungsi, berisi semua langkah atau aksi algoritma untuk menghasilkan nilai
yang akan dikembalikan }
NAMA_FUNGSI:=hasil; { pengembalian nilai yang dihasilkan fungsi }
end;
c. Variabel Global dan Lokal
Variabel-variabel yang dideklarasikan di dalam bagian Deklarasi Prosedur
ataupun Fungsi bersifat “lokal” dan hanya dapat digunakan di dalam
Prosedur/Fungsi yang melingkupinya saja. Sedangkan variabel-variabel yang
dideklarasikan di dalam program utama bersifat “global” dan dapat digunakan di
bagian manapun di dalam program, baik di dalam program utama maupun di
dalam Prosedur/Fungsi.
BAB III
TUGAS PENDAHULUAN
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1. Prosedur dan Fungsi merupakan pemrograman modular. Apakah perbedaan
antara keduanya? Kapankah suatu fungsi dibuat dan digunakan?
2. Buatlah algoritma untuk membuat bentuk belah ketupat dari deretan angka
berdasarkan batas nilai yang dimasukkan melalui piranti masukan dengan
menggunakan Prosedur!
Contoh:
Masukkan batas nilai: 4
Hasil belah ketupat deretan angka:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
Jawab :
1. perbedaan antara Prosedur dan Fungsi :
a. Prosedur diawali dengan dengan kata procedure untuk
mendeklarasikannya. Kalau fungsi diawali dengan kata function.
contoh : procedure hitung_angka;
function hitung_bilangan: integer;
b. Procedure tidak mengembalikan nilai ke program utama, sedangkan fungsi
akan mengembalikan nilai ke program utama, itu sebabnya fungsi harus
ada tipe datanya (integer, char atau string).
c. Procedure outputnya diletakkan di dalam procedure, kalau fungsi
outputnya di letakkan di program utama.
d. Prosedur di panggil diprogram utama dengan menuliskan nama procedure
tersebut di program utama. contoh :hitung_bilangan;
Fungsi di panggil dengan memasukkan ke suatu variabel. atau bisa juga
dengan langsung menuliskannya di program utama.
2. Algoritma belah_ketupat
Deklarasi
N : integer
procedure bagian_awal
Deklarasi
s, i, j, k : integer
Deskripsi
for i ← 1 to N do
write(‘’)
for k ← (N-1) downto i do
write(' ')
endfor
for j ← 1 to i do
write(j,' ')
endfor
for j ← (i-1) downto 1 do
write(j,' ')
endfor
writeln(' ')
endfor
procedure bagian_akhir
Deklarasi
s, i, j, k: integer
Deskripsi
for i ← (N-1) downto 1 do
write(‘’)
for k ← (N-1) downto i do
write(' ')
endfor
for j ←1 to i do
write(j,' ')
endfor
for j ← (i-1) downto 1 do
write(j,' ')
endfor
writeln(' ')
endfor
Deskripsi
writeln(' Program Angka Belah Ketupat ')
writeln('==========================================')
writeln('')
write('Masukkan Batas : ')
read(N)
writeln('Hasil belah ketupat deretan angka: ')
bagian_awal
bagian_akhir
end.
3. Algoritma Deskriminan
Deklarasi
a,b,c: integer
n ,z :Char
Function D (Var p,q,r:integer) :real
Deskripsi :
D:=sqrt(sqr(q)-4*p*r)
end
Function X1(Var i,j,k:integer):real
Deskripsi
X1:=(-b+(D(i,j,k)))/ (2*a)
End
Function X2(Var i,j,k:Integer):real
Deklarasi
X2:=(-b-(D(i,j,k)))/(2*a)
End
Deklarasi
repeat
writeln('***************************************************')
writeln(' PROGRAM DESKRIMINAN ')
writeln('***************************************************')
writeln(' Menghitung Nilai Deskriminan:')
writeln(' D=sqrt(sqr(b)-4*a*c)')
writeln('Menghitung Nilai X1:')
writeln(' X1=(-b+(D))/ (2*a)')
writeln('Menghitung Nilai X2:')
writeln(' X2=(-b-(D))/ (2*a)')
write(' => Input Nilai a = ')
readln(a)
write(' => Input Nilai b = ')
readln(b)
write(' => Input Nilai c = ')
readln(c)
writeln
writeln(' Hasil diskriminan (D) : ', D(a, b, c):0:2)
writeln(' Nilai X1 : ', X1(a, b, c):0:2)
writeln(' Nilai X2 : ', X2(a, b, c):0:2)
Writeln
write('** Hitung Ulang [Y/T]? ')
read(n)
Until n='T'
read(z)
end.
BAB IV
IMPLEMENTASI
4.1. Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1. Buat program untuk tugas prepraktikum 2!
2. Buat program untuk tugas prepraktikum 3!
Jawab :
2.
program belah_ketupat;
uses wincrt;
var
N : integer;
procedure bagian_awal;
var
s, i, j, k : integer;
begin
for i := 1 to N do
begin
for k:= (N-1) downto i do
begin
write(' ');
end;
for j := 1 to i do
begin
write(j,' ');
end;
begin
for j := (i-1) downto 1 do
write(j,' ');
end;
writeln(' ');
end;
end;
procedure bagian_akhir;
var
s, i, j, k: integer;
begin
for i := (N-1) downto 1 do
begin
for k := (N-1) downto i do
begin
write(' ');
end;
for j := 1 to i do
begin
write(j,' ');
end;
begin
for j := (i-1) downto 1 do
write(j,' ');
end;
writeln(' ');
end;
end;
begin
writeln(' Program Angka Belah Ketupat ');
writeln('==========================================');
writeln('');
write('Masukkan Batas : ');read(N);
writeln('Hasil belah ketupat deretan angka: ');
begin
bagian_awal;
bagian_akhir;
end;
end.
Print Screen Program
2. program Diskriminan;
uses wincrt;
var
a,b,c : integer;
n, z : char;
Function D( var p, q, r : integer) : real;
begin
D := sqrt(b*b-4*a*c);
end;
Function X1(var i, j, k : integer) : real;
begin
X1 := (-b+(D(i,j,k)))/(2*a);
end;
Function X2(var i, j, k : integer) : real;
begin
X2 := (-b+(D(i,j,k)))/(2*a);
end;
begin
repeat
clrscr;
writeln('==================================================
==============');
writeln(' PROGRAM DESKRIMINAN ');
writeln('==================================================
==============');
writeln(' Menghitung Nilai Deskriminan:');
writeln(' D=sqrt(sqr(b)-4*a*c)');
writeln('Menghitung Nilai X1:');
writeln(' X1=(-b+(D))/ (2*a)');
writeln('Menghitung Nilai X2:');
writeln(' X2=(-b-(D))/ (2*a)');
write(' => Input Nilai a = ');
readln(a);
write(' => Input Nilai b = ');
readln(b);
write(' => Input Nilai c = ');
readln(c);
writeln;
writeln(' Hasil diskriminan (D) : ', D(a, b, c):0:2);
writeln(' Nilai X1 : ', X1(a, b, c):0:2);
writeln(' Nilai X2 : ', X2(a, b, c):0:2);
Writeln;
write('Hitung Ulang [Y/T]? ');
read(n);
Until n='T';
read(z);
end.
Print Screen Program
4.2. Tugas Akhir
Buatlah algoritma dan terjemahkan dalam Bahasa Pascal untuk menghitung
bilangan faktorial dengan menggunakan teknik rekursif dan non-rekursif!
Contoh:
Masukkan faktorial yang akan dihitung: 5
Hasil faktorial : 120
Jawab :
Algoritma factorial
Procedure factorial
Deklarasi
faktor :real
i,n :integer
Deskripsi
readln(n);
factor ← 1;
for I ← 2 to n do{Menghitung n faktorial}
factor ← faktor*i
writeln('Hasil Faktorial : ‘)
end
Deskripsi
factorial
end.
program faktorial;
uses wincrt;
procedure factorial;
var
faktor :real;
i,n :integer;
begin
write('Masukkan factorial yang dihitung : ');readln(n);
faktor:=1;
for i:= 2 to n do{Menghitung n faktorial}
faktor:=faktor*i;
writeln('Hasil Faktorial : ',faktor:0:0);
end;
begin
factorial;
end.
Print Screen Program
4.3. Tugas Tambahan
1. Buatlah program Bilangan Prima, jika prima tampilkan hasil 1 jika tidak
tampilkan 0 dengan menggunakan fungsi
2. Buatlah program untuk menghitung Diameter Lingkaran menggunakan
prosedur
Jawab :
1. Program Bilangan_Prima;
uses wincrt;
var
bil: longint;
function prima(bil: longint): longint;
begin
writeln('PROGRAM MENENTUKAN BILANGAN PRIMA');
writeln('====================================');
write('Masukkan angka: ');readln(bil);
if ((bil mod 2 <> 0)and (bil mod 3 <> 0) and (bil mod 5 <> 0) and (bil mod 7
<> 0)) then
write('>> 1')
else write('>> 0');
end;
begin
prima(bil);
end.
Print Screen Program
3. program Menentukan_Diameter;
uses wincrt;
procedure Diameter;
var
d, r : integer;
begin
writeln('Masukkan Jari-jari : ');readln(r);
d := r + r;
writeln('Diameternya adalah ',d);
end;
begin
writeln(' Program Menentukan Diameter Lingkaran ');
writeln('=========================================');
diameter;
end.
Print Screen Program
BAB V
PENUTUP
5.1 Kesimpulan
Dari laporan praktikum modul 4 ini, kita dapat menarik kesimpulan:
1. Prosedur adalah modul program yang mengerjakan aktivitas yang
spesifik dan hasilnya diperoleh dengan membandingkan keadaan awal
dan keadaan akhir pada pelaksanaan sebuah prosedur. Fungsi adalah
suatu bagian dari program yang dirancang untuk melaksanakan tugas
tertentu dan letaknya dipisahkan dari program yang menggunakannya.
2. Procedure tidak mengembalikan nilai ke program utama, sedangkan
fungsi akan mengembalikan nilai ke program utama, itu sebabnya
fungsi harus ada tipe datanya (integer, char atau string). Selain itu,
Procedure outputnya diletakkan di dalam procedure, kalau fungsi
outputnya di letakkan di program utama.
5.2 Saran
Diharapkan asisten praktikum dalam memberikan tugas tambahan tidak
mendadak, sehingga praktikan dalam mengerjakan tugas tambahan tidak dalam
kondisi terburu-buru.
LAPORAN RESMI PRAKTIKUM ALGORITMA PEMROGRAMAN
Modul 5
LARIK (ARRAY)
Disusun Oleh :
LABORATORIUM PEMROGRAMAN JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2012
Disetujui : ....../……./………../Bangkalan
( Andy Hartono )
10.04.1.1.1.00020
TGL PRAKTIKUM : 05 Juni 2012
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 11.04.111.00039
KELAS : A
DOSEN PENGAMPU : NOOR IFADA, ST., MISD.
ASISTEN : Andy Hartono
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam pemrograman kita akan mengenal dengan larik (array). Larik
adalah tipe terstruktur yang terdiri dari sejumlah elemen-elemen yang bertipe
sama. Suatu larik memiliki jumlah elemen yang jumlahnya tetap, sehingga
jumlah elemen larik tidak dapat diubah selama pelaksanaan program. Larik
dapat berupa larik satu dimensi ataupun lebih dari satu dimensi. Untuk itu
dalam modul 5 ini, akan dibahas tentang “Larik (Array)”. Sehingga kita bisa
memahami lebih dalam lagi bagaimana cara penggunaannya dengan
menggunakan bahasa pemrograman Pascal.
1.2 Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 5
ini adalah :
1. Mahasiswa mengetahui apa kegunaan dari fungsi dan matriks
dalam suatu pemrograman.
2. Mahasiswa mengetahui perbedaan larik dan matriks.
3. Mahasiswa mengetahui bagaimana cara menggunakan fungsi dan
matriks dalam bahasa pemrograman Pascal.
BAB II
DASAR TEORI
I. Teori
Larik adalah tipe terstruktur yang terdiri dari sejumlah elemen-elemen yang
bertipe sama. Banyaknya elemen dalam suatu larik ditunjukkan oleh suatu
indeks yang harus merupakan tipe data yang menyatakan keterurutan,
misalnya integer atau karakter (karena ia menyatakan posisi data). Tiap-tiap
elemen di larik dapat diakses langsung melalui indeksnya. Suatu larik
memiliki jumlah elemen yang jumlahnya tetap, sehingga jumlah elemen larik
tidak dapat diubah selama pelaksanaan program. Gambar 5.1. memperlihatkan
struktur deklarasi Larik di dalam Bahasa Pascal.
(* DEKLARASI *)
var
NamaLarik : array[1..JumlahELemen] of TipeElemen;
Gambar 5.1. Struktur Deklarasi Bahasa Pascal Untuk Larik
Cara mengacu elemen larik : NamaLarik[indeks]
Larik dapat berupa larik satu dimensi ataupun lebih dari satu dimensi. Matriks
merupakan contoh larik yang memiliki dimensi lebih dari satu. Struktur
penyimpanan matriks di dalam memori utama yang setiap individu elemennya
diakses dengan menggunakan dua buah indeks (yang biasanya dikonotasikan
dengan baris dan kolom). Karena matriks sebenarnya adalah larik, konsep
umum dari larik juga berlaku untuk matriks, yaitu:
Kumpulan elemen yang bertipe sama, dapat dapat berupa tipe dasar
(integer, real, boolean, char, dan string), atau tipe terstruktur seperti
record.
Setiap elemen data dapat diakses secara langsung jika indeksnya (baris dan
kolom) diketahui.
Merupakan struktur data yang statik, artinya jumlah elemennya sudah
dideklarasikan terlebih dahulu di dalam bagian DEKLARASI dan tidak
bisa diubah selama pelaksanaan program.
Elemen matriks diakses melalui indeks baris dan indeks kolomnya. Jika indeks
baris dinyatakan dengan i dan indeks kolom dinyatakan dengan j, maka notasi
algoritmik untuk mengakses elemen pada baris i dan kolom j adalah
nama_matriks[i,j]
BAB III
TUGAS PENDAHULUAN
Kerjakan tugas-tugas di bawah ini sebelum praktikum dimulai.
1. Sebutkan dan jelaskan keuntungan-keuntungan penggunaan larik dan matriks!
2. Kapankan sebaiknya larik dan matriks digunakan? Jelaskan!
3. Buat algoritma untuk menentukan bilangan tertinggi dan terendah dari sejumlah
bilangan bulat yang dimasukkan melalui piranti masukan.
Contoh:
Jumlah bilangan yang dimasukkan: 4
Bilangan ke-1: 4
Bilangan ke-2: 11
Bilangan ke-3: 45
Bilangan ke-4: 0
Bilangan tertinggi : 45
Bilangan terendah : 0
4. Buat algoritma untuk menghitung hasil perkalian antara dua buah matriks
Masukan : nilai-nilai dalam dua buah matriks
Keluaran : hasil perkalian dua buah matriks
Jawab :
1. Struktur data yang statik, artinya jumlah elemennya sudah dideklarasikan
terlebih dahulu di dalam bagian DEKLARASI dan tiap-tiap elemen di
larik dapat diakses langsung melalui indeksnya. Suatu larik memiliki
jumlah elemen yang jumlahnya tetap, sehingga jumlah elemen larik tidak
dapat diubah selama pelaksanaan program.
2. Larik digunakan apabila pada program diperlukan suatu penyimpanan
sementara data yang bertipe sama di dalam memori, dan untuk selanjutnya
data tersebut dimanipulasi atau diterapkan oleh proses lainnya.
3. Algoritma max_min
Deklarasi
bil : array[1..100] of integer
terbesar :integer
terkecil :integer
i,n :integer
Deskripsi
writeln(' Program Menentukan Bilangan Tertinggi dan Terendah ')
writeln(' ======================================== ')
writeln
write('Jumlah bilangan yang dimasukkan : ')
readln(n)
for i← 1 to n do
Deskripsi
write(' Bilangan ke- ',i,' = ')
readln(bil[i])
end
Deskripsi
terbesar←bil[1]
terkecil←bil[1]
for ← 2 to n do
if bil[i] > terbesar then
terbesar←bil[i]
else
if bil[i] < terkecil then
terkecil←bil[i]
writeln(' -----------------')
writeln(' Bilangan tertinggi =',terbesar)
writeln(' Bilangan terendah =',terkecil)
readln
end.
4. Algoritma perkalian_matriks
Deklarasi
M1 : array[1..20, 1..20] of longint
M2 : array[1..20, 1..20] of longint
M3 : array[1..20, 1..20] of longint
n : array[1..2] of integer
m : array[1..2] of integer
i, j, x, y, k, l : integer
Deskripsi
for k ← 1 to 2 do
Deskripsi
write('Banyak baris matriks ke-', k, ' : ')
readln(m[k])
write('Banyak kolom matriks ke-', k, ' : ')
readln(n[k])
end
if (n[1] ≠ m[2]) then
writeln('Tidak bisa dikalikan!')
else
writeln('Matriks pertama : ')
y ← 6
for i ← 1 to m[1] do begin
x ← 8
for j ← 1 to n[1] do
Deskripsi
readln(M1[i,j])
x ← x + 8
end
y←y + 1
end
writeln('Matriks kedua : ')
y ← y + 1
for i ← 1 to m[2] do
x ← 8
for j ← 1 to n[2] do
Deskripsi
readln(M2[i,j])
x ← x + 8
end
y ← y + 1
end
writeln('Proses perkalian')
y ← y + 1
for i ← 1 to m[1] do
Deskripsi
x ← 2
for j ← 1 to n[2] do
Deskripsi
M3[i,j] ← 0
for l ← 1 to n[1] do
Deskripsi
M3[i,j] ← M3[i,j] + (M1[i,l] * M2[l,j])
write(M1[i,l], ' . ', M2[l,j])
if l < n[1] then
write(' + ')
end
x ← x + 12
end
x ← x + 15
end
y ← y + 1
end
y ← y + 1
for i ← 1 to m[1] do
Deskripsi
x ← 2
for j ← 1 to n[2] do
Deskripsi
for l ← 1 to n[1] do
Deskripsi
write(M1[i,l] * M2[l,j])
if l < n[1] then begin
write(' + ')
end
x ← x + 12
end
x ← x + 15
end
y ← y + 1
end
writeln
writeln('Perkalian Matriks : ')
for i ← 1 to m[1] do
Deskripsi
for j ← 1 to n[2] do
write(M3[i,j]:8);]
writeln
end
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. Buat program untuk tugas prepraktikum 4!
Jawab :
1. program max_min;
uses wincrt;
var
bil:array[1..100] of integer;
terbesar :integer;
terkecil :integer;
i,n :integer;
begin
writeln(' Program Menentukan Bilangan Tertinggi dan Terendah ');
writeln(' ============================================ ');
writeln;
write('Jumlah bilangan yang dimasukkan : ');readln(n);
for i:= 1 to n do
begin
write(' Bilangan ke- ',i,' = ');readln(bil[i]);
end;
terbesar:=bil[1];
terkecil:=bil[1];
for i:= 2 to n do
if bil[i] > terbesar then
terbesar:=bil[i]
else
if bil[i] < terkecil then
terkecil:=bil[i];
writeln(' -----------------');
writeln(' Bilangan tertinggi =',terbesar);
writeln(' Bilangan terendah =',terkecil);
readln;
end.
Print Screen Program
2. program perkalian_matriks;
uses wincrt;
var
M1 : array[1..20, 1..20] of longint;
M2 : array[1..20, 1..20] of longint;
M3 : array[1..20, 1..20] of longint;
n : array[1..2] of integer;
m : array[1..2] of integer;
i, j, x, y, k, l : integer;
begin
clrscr;
for k := 1 to 2 do begin
write('Banyak baris matriks ke-', k, ' : ');
readln(m[k]);
write('Banyak kolom matriks ke-', k, ' : ');
readln(n[k]);
end;
if (n[1] <> m[2]) then
writeln('Tidak bisa dikalikan!')
else begin
writeln('Matriks pertama : ');
y := 6;
for i := 1 to m[1] do begin
x := 8;
for j := 1 to n[1] do begin
gotoxy(x,y);
readln(M1[i,j]);
x := x + 8;
end;
y := y + 1;
end;
writeln('Matriks kedua : ');
y := y + 1;
for i := 1 to m[2] do begin
x := 8;
for j := 1 to n[2] do begin
gotoxy(x,y);
readln(M2[i,j]);
x := x + 8;
end;
y := y + 1;
end;
writeln('Proses perkalian');
y := y + 1;
for i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
M3[i,j] := 0;
for l := 1 to n[1] do begin;
M3[i,j] := M3[i,j] + (M1[i,l] * M2[l,j]);
gotoxy(x,y);
write(M1[i,l], ' . ', M2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;
end;
x := x + 15;
end;
y := y + 1;
end;
y := y + 1;
for i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
for l := 1 to n[1] do begin;
gotoxy(x,y);
write(M1[i,l] * M2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;
end;
x := x + 15;
end;
y := y + 1;
end;
writeln;
writeln('Perkalian Matriks : ');
for i := 1 to m[1] do begin
for j := 1 to n[2] do
write(M3[i,j]:8);
writeln;
end;
end;
end.
Print Screen Program
4.2. Tugas Akhir
Buatlah algoritma dan terjemahkan dalam Bahasa Pascal untuk operasi invers
matriks sampai ordo 3!
Jawab :
Algoritma Invers_Matriks
Type
R = array[1..50,1..50] of real
Deklarasi
x, y, z : integer
n : integer
M : R
Procedure Invers
Deklarasi
P, a : real
Deskripsi
For x ← 1 to n do
Deskripsi
P ← M[x,x]
M[x,x] ← 1
For y ← 1 to n do
M[x,y] ← M[x,y] / P
For z ← 1 to n do
Deskripsi
if z ≠ x then
Deskripsi
a ← M[z,x]
M[z,x] ← 0
For y ← 1 to n do
M[z,y] ←M[z,y] - a * M[x,y]
end
end
end
end
Procedure Tampil
Deskripsi
For x ← 1 to n do
Deskripsi
For y ← 1 to n do
write( M[x,y]:15:1)
writeln
end
end
Deskripsi
writeln('===================================================
========')
writeln('PROGRAM INVERS MATRIKS')
writeln('===================================================
========')
writeln
write(' >> Input banyaknya Orde : ')
readln(n)
writeln
For x ← 1 to n do
Deskripsi
For y ← 1 to n do
Deskripsi
write(' - Nilai [',x,',',y,'] : ')
readln(M[x,y])
end
end
writeln(' >> Hasil dari invers matriks :')
writeln
writeln(' --> Matriksnya :')
writeln
Tampil
Invers
writeln;]
writeln(' --> Invers Matrik :')
writeln
Tampil
end.
Program Invers_Matriks;
Uses Wincrt;
Type
R = array[1..50,1..50] of real;
Var
x, y, z : integer;
n : integer;
M : R;
Procedure Invers;
Var
P, a : real;
Begin
For x := 1 to n do;
Begin
P := M[x,x];
M[x,x] := 1;
For y := 1 to n do
M[x,y] := M[x,y] / P;
For z := 1 to n do
Begin
if z <> x then
Begin
a := M[z,x];
M[z,x] := 0;
For y := 1 to n do
M[z,y] := M[z,y] - a * M[x,y];
end;
end;
end;
end;
Procedure Tampil;
Begin
For x := 1 to n do
Begin
For y := 1 to n do
write( M[x,y]:15:1);
writeln;
end;
end;
begin
clrscr;
writeln('===================================================
========');
gotoxy(20,2);
writeln('PROGRAM INVERS MATRIKS');
writeln('===================================================
========');
writeln;
write(' >> Input banyaknya Orde : ');
readln(n);
writeln;
For x := 1 to n do
Begin
For y := 1 to n do
Begin
write(' - Nilai [',x,',',y,'] : ');
readln(M[x,y]);
end;
end;
clrscr;
writeln(' >> Hasil dari invers matriks :');
writeln;
writeln(' --> Matriks asal :');
writeln;
Tampil;
Invers;
writeln;
writeln(' --> Invers Matrik :');
writeln;
Tampil;
end.
Print Screen Program
4.3. Tugas Tambahan
1. Buatlah program transpose matriks 3x3
2. Buatlah program determinan matriks 3x3
Jawab :
1. Program transpose;
uses wincrt;
type t = object
m1 : array [1..3,1..3] of integer;
lok : array [1..4] of integer;
procedure input;
procedure tampil;
procedure transpos;
end;
var m :t;
i, j, k, pil, det1, det2 : integer;
procedure t.input;
begin
clrscr;
writeln(' Program Transpos Matriks Ordo 3x3 ');
writeln('===============================================');
writeln;
writeln (' Inputkan Matrik! ');
writeln;
for i:= 1 to 3 do
begin
for j := 1 to 3 do
begin
write ('Elemen Matrik [',i,',',j,']:');
readln (m1[i,j]);
end;
end;
end;
procedure t.tampil;
begin
writeln;
writeln(' *Matrik I*');
writeln (m1[1,1]:5,m1[1,2]:5,m1[1,3]:5);
writeln (m1[2,1]:5,m1[2,2]:5,m1[2,3]:5);
end;
Procedure t.transpos;
begin
writeln;writeln ('* Transpose Matrik I *');
writeln(m1[1,1]:5,m1[2,1]:5,m1[1,3]:5);
writeln(m1[1,2]:5,m1[2,2]:5,m1[2,3]:5);
readln;
end;
begin
m.input;
m.tampil;
m.transpos;
end.
Print Screen Program
2. program determinan;
uses wincrt;
type t = object
m1,m2 : array [1..3,1..3] of integer;
lok : array [1..4] of integer;
procedure input;
procedure deter;
procedure tampil;
end;
var m :t;
i, j, k, pil, det1: integer;
procedure t.input;
begin
clrscr;
writeln(' Program Determinan Matriks Ordo 3x3 ');
writeln('==============================================='
);
writeln;
writeln (' Inputkan Matrik! ');
writeln;
for i:= 1 to 3 do
begin
for j := 1 to 3 do
begin
write ('Elemen Matrik [',i,',',j,']:');
readln (m1[i,j]);
end;
end;
end;
procedure t.tampil;
begin
writeln;
writeln (m1[1,1]:5,m1[1,2]:5,m1[1,3]:5);
writeln (m1[2,1]:5,m1[2,2]:5,m1[2,3]:5);
end;
procedure t.deter;
var a, b : integer;
begin
a:= (m1[1,1]*m1[2,2]*m1[3,3]) +(m1[2,1]*m1[3,2]*m1[1,3])
+(m1[3,1]*m1[1,2]*m1[2,3]);
b:=(m1[3,1]*m1[2,2]*m1[1,3])-(m1[1,1]*m1[3,2]*m1[2,3])-
(m1[2,1]*m1[1,2]*m1[3,3]);
det1:= a-b;
writeln;
writeln ('Determinan Matrik = ',det1);
readln;
end;
begin
m.input;
m.tampil;
m.deter;
end.
Print Screen Program
BAB V
PENUTUP
5.1 Kesimpulan
Dari laporan praktikum modul 5 ini, kita dapat menarik kesimpulan:
1. Larik adalah tipe terstruktur yang terdiri dari sejumlah elemen-elemen
yang bertipe sama. Larik dapat berupa larik satu dimensi ataupun lebih
dari satu dimensi.
2. Matriks merupakan contoh larik yang memiliki dimensi lebih dari satu.
Struktur penyimpanan matriks di dalam memori utama yang setiap
individu elemennya diakses dengan menggunakan dua buah indeks (yang
biasanya dikonotasikan dengan baris dan kolom).
3. Larik dan matriks merupakan struktur data yang statik, artinya jumlah
elemennya sudah dideklarasikan terlebih dahulu di dalam bagian
DEKLARASI dan tidak bisa diubah selama pelaksanaan program.
5.2 Saran
Dalam menjelaskan materi diharapkan lebih jelas. Sehingga praktikan dapat
mengerjakan laporan dengan baik tanpa kebingungan.
LAPORAN RESMI PRAKTIKUM ALGORITMA PEMROGRAMAN
Modul 6
RECORD
Disusun Oleh :
LABORATORIUM PEMROGRAMAN JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO
2012
Disetujui : ....../……./………../Bangkalan
( Andy Hartono )
10.04.1.1.1.00020
TGL PRAKTIKUM : 05 Juni 2012
NAMA : Shobihatul Mubarokah Ayu Aseptica
NRP : 11.04.111.00039
KELAS : A
DOSEN PENGAMPU : NOOR IFADA, ST., MISD.
ASISTEN : Andy Hartono
BAB I
PENDAHULUAN
1.3 Latar Belakang
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. Sehingga untuk
mengaplikasikan sebuah program yang terdiri dari beberapa field, kita
memerlukan larik yang dibahas pada paktikum sebelumnya karena sangat
membantu programmer dalam menyelesaikan programnya.
Untuk itu dalam modul 6 ini, akan dibahas tentang “record”.
Sehingga kita bisa memahami lebih dalam lagi bagaimana cara
penggunaannya dengan menggunakan bahasa pemrograman Pascal.
1.3 Tujuan
Tujuan mahasiswa mengikuti praktikum Algortima Pemrograman Modul 6
ini adalah :
5. Mahasiswa mengetahui apa kegunaan dari record dalam suatu
pemrograman.
6. Mahasiswa mengetahui bagaimana cara menggunakan record dalam
bahasa pemrograman Pascal.
BAB II
DASAR TEORI
2.1 Teori Singkat
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.
Tabel Mhs
NIM NamaMhs KodeMK Nilai
1 0604100001 M. Khairuddin FTC155 A
2 0604100002 Agastya FTC165 B
3 0604100003 Budi Kusuma FTC177 D
4 0604100004 Marina FTC178 B
5 0604100005 Eliawati FTC180 A
.
.
100 0604100100 Prasetyo FTC185 C
Gambar 6.1. Struktur Record TabelMhs
BAB III
TUGAS PENDAHULUAN
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
Keluaran : hasil pengurutan data berdasarkan NPM
Hasil ditampilan dalam bentuk tabel seperti di bawah ini :
NPM Nama Kode Nilai
Jawab :
4. Record merupakan item data yang masing-masing dapat mempunyai tipe
data berbeda-beda yang dapat dikumpulkan. Masing-masing item data
disebut dengan field. Jadi record terdiri dari kumpulan field yang dapat
berbeda tipe.
5. Saat memiliki beberapa data dengan tipe data yang berbeda dan ingin
mengumpulkan serta menyimpan data tersebut menjadi satu kumpulan.
6. Algoritma nilai_mahasiswa
Const
Nmax=50
Type Data=Record
NPM:integer
Nama : string[20]
MK: string[20]
Nilai:char
End
Deklarasi
R:Array[1..Nmax] of Data
Simpan:Data
i,j,n:integer
Procedure satu(Var Simpan:data)
Deklarasi
i:integer
Deskripsi
For i:= 1 to n do
Deskripsi
writeln(' * Pengisian Data : ')
writeln(' >> Data ke- ',i)
write(' - NPM = ')
readln(R[i].NPM)
write(' - Nama Mahasiswa = ')
readln(R[i].Nama)
write(' - Mata Kuliah = ')
readln(R[i].MK)
write(' - Nilai Mahasiswa = ')
readln(R[i].Nilai)
writeln
End
End
Procedure dua(Var Simpan:Data;nilai:integer)
Deskripsi
For i := 1 to n-1 do
For j := 1 to n-1 do
if R[j].NPM > R[J+1].NPM then
Deskripsi
Simpan ← R[J]
R[J] ← R[J+1]
R[J+1] ← Simpan
End
End
Procedure Tiga(n:integer;simpan:data)
Deskripsi
writeln
writeln('Tabel Nilai Mahasiswa')
writeln
writeln('===============================================
========================')
writeln('| NPM | Nama Mahasiswa | Mata Kuliah | Nilai |');
writeln('===============================================
========================')
For i ← 1 to n do
Deskripsi
write('|')
writeln(R[i].NPM:10,' | ',R[i].Nama:20,' |',R[I].MK:20,' |',R[I].Nilai:7,'
|')
end
writeln('===============================================
========================')
End
Deskripsi
writeln('*****************************************************
*******************')
writeln('Program Tampil Nilai Mahasiswa')
writeln('*****************************************************
****** *************')
write(' * Input banyaknya data : ')
read(n)
writeln
satu(Simpan)
dua(Simpan,n)
Tiga(n,simpan)
end.
BAB IV
IMPLEMENTASI
4.1. Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini:
1. Buat program untuk tugas prepraktikum 3!
Jawab :
program nilai_mahasiswa;
uses wincrt;
Const
Nmax=50;
Type Data=Record
NPM:integer;
Nama : string[20];
MK: string[20];
Nilai:char;
End;
Var
R:Array[1..Nmax] of Data;
Simpan:Data;
i,j,n:integer;
Procedure satu(Var Simpan:data);
Var
i:integer;
Begin
For i:= 1 to n do
Begin
writeln(' * Pengisian Data : ');
writeln(' >> Data ke- ',i);
write(' - NPM = ');
readln(R[i].NPM);
write(' - Nama Mahasiswa = ');
readln(R[i].Nama);
write(' - Mata Kuliah = ');
readln(R[i].MK);
write(' - Nilai Mahasiswa = ');
readln(R[i].Nilai);
writeln;
End;
End;
Procedure dua(Var Simpan:Data;nilai:integer);
Begin
For i := 1 to n-1 do
For j := 1 to n-1 do
if R[j].NPM > R[J+1].NPM then
Begin
Simpan := R[J];
R[J] := R[J+1];
R[J+1]:= Simpan;
End;
End;
Procedure Tiga(n:integer;simpan:data);
Begin
writeln;
writeln('Tabel Nilai Mahasiswa');
writeln;
writeln('================================================
=======================');
writeln('| NPM | Nama Mahasiswa | Mata Kuliah | Nilai |');
writeln('================================================
=======================');
For i := 1 to n do
Begin
write('|');
writeln(R[i].NPM:10,' | ',R[i].Nama:20,' |',R[I].MK:20,' |',R[I].Nilai:7,'
|');
end;
writeln('================================================
=======================');
End;
Begin
writeln('******************************************************
******************');
gotoxy(20,2);
writeln('Program Tampil Nilai Mahasiswa');
writeln('******************************************************
***** *************');
write(' * Input banyaknya data : ');
read(n);
writeln;
satu(Simpan);
clrscr;
dua(Simpan,n);
Tiga(n,simpan);
end.
Print Screen Program
4.2. Tugas Akhir
Buatlah algoritma dan terjemahkan dalam bahasa pascal untuk
memasukkan data belanja dan menampilkannya dalam bentuk nota Belanja. Total
Harga dan Total belanja didapat dengan melakukan proses perhitungan kemudian
hasil nya ditampilkan dalam bentuk seperti contoh dibawah ini.
Nota Belanja Barang
Toko ABADI
Jl. Riwa-riwi No. 123 Surabaya
Tanggal Pembelian : 04-11-2009
Nama Pembeli : Yoremi Sido
Alamat : Jl. Suka-suka No. 321 Surabaya
No Kode Barang Nama Barang Harga Satuan
(Rp)
Jumlah Harga x
Jumlah
(Rp)
1 AB123 Barang A 15000
2 30000
2 BC234 Barang B 20000
1 20000
3 CD345 Barang C 25000
2 50000
4 DE456 Barang D 30000
3 90000
5 EF567 Barang E 35000 4 140000
T O T A L B E L A N J A (Rp) 330000
Jawab :
Algoritma Nota
Deklarasi
kode : array[1..20] of string
nama_barang : array[1..20] of string
harga : array[1..20] of real
banyak : array[1..20] of byte
kata,grs :string
x,y,i,j :byte
Jum_Harga,Total_Harga,disc,Total_Bayar,uang :real
Deskripsi
writeln('
=============================================================
============')
grs:='=========================================================
================'
kata:='Nota Belanja Barang Toko ABADI Jl. Riwa-riwi No. 123 Surabaya'
x:=round((78-length(kata))/2)
writeln(kata)
x:=round((78-length(grs))/2)
]write(grs)
{-----------------------------}
write(' >> Tanggal Pembelian: ');readln
write(' >> Nama Pembeli : ');readln
write(' >> Alamat : ');readln
write(grs)
writeln('| No | Kode | Nama Barang | Harga Satuan | Jumlah | Jumlah Harga |')
write(grs)
{--------------------------------------------------------------------}
i ← 0
Total_Harga ← 0
repeat
i ← i+1
write('| ',i)
write('|')
readln(kode[i])
if kode[i] ≠ '' then begin
write('|')
readln(nama_barang[i])
write('|')
readln(Harga[i])
writeln(Harga[i]:10:2)
write('|')
readln(Banyak[i])
write('|')
Jum_Harga ← Harga[i]*Banyak[i]
writeln(Jum_Harga:10:2)
writeln('|')
Total_Harga←Total_Harga+Jum_Harga
end
until nama_barang[i]=''
j←i-1
write(grs)
write('Total Belanja (Rp) --------------------------------------:')
write(Total_Harga:10:2)
write('|')
write(grs)
end.
Program Nota;
uses wincrt;
var
kode : array[1..20] of string;
nama_barang : array[1..20] of string;
harga : array[1..20] of real;
banyak : array[1..20] of byte;
kata,grs :string;
x,y,i,j :byte;
Jum_Harga,Total_Harga,disc,Total_Bayar,uang :real;
begin
clrscr;
writeln('
=============================================================
============');
grs:='=========================================================
================';
kata:='Nota Belanja Barang Toko ABADI Jl. Riwa-riwi No. 123 Surabaya';
x:=round((78-length(kata))/2);
gotoxy(x,2);writeln(kata);
x:=round((78-length(grs))/2);
gotoxy(x,3);write(grs);
{-----------------------------}
gotoxy(x,4);write(' >> Tanggal Pembelian: ');readln;
gotoxy(x,5);write(' >> Nama Pembeli : ');readln;
gotoxy(x,6);write(' >> Alamat : ');readln;
gotoxy(x,7);write(grs);
gotoxy(x,8);writeln('| No | Kode | Nama Barang | Harga Satuan | Jumlah | Jumlah
Harga |');
gotoxy(x,9);write(grs);
{--------------------------------------------------------------------}
i:=0;
Total_Harga:=0;
repeat
i:=i+1;
gotoxy(x,9+i);write('| ',i);
gotoxy(x+5,9+i);write('|');
gotoxy(x+9,9+i);readln(kode[i]);
if kode[i] <>'' then begin
gotoxy(x+13,9+i);write('|');
gotoxy(x+15,9+i);readln(nama_barang[i]);
gotoxy(x+32,9+i);write('|');
gotoxy(x+33,9+i);readln(Harga[i]);
gotoxy(x+33,9+i);writeln(Harga[i]:10:2);
gotoxy(x+48,9+i);write('|');
gotoxy(x+50,9+i);readln(Banyak[i]);
gotoxy(x+57,9+i);write('|');
Jum_Harga:=Harga[i]*Banyak[i];
gotoxy(x+58,9+i);writeln(Jum_Harga:10:2);
gotoxy(x+72,9+i);writeln('|');
Total_Harga:=Total_Harga+Jum_Harga ;
end;
until nama_barang[i]='';
j:=i-1;
gotoxy(x,10+j);write(grs);
gotoxy(x,10+j+1);write('Total Belanja (Rp) --------------------------------------:');
gotoxy(x+58,10+j+1);write(Total_Harga:10:2);
gotoxy(x+72,10+j+1);write('|');
gotoxy(x,12+j);write(grs);
end.
Print Screen Program
4.3. Tugas Tambahan
Buatlah program data mahasiswa praktikum alro kelas A3. Isi data antara lain:
1. NRP
2. Nama
3. Jurusan
4. Nilai
Jawab :
program mahasiwa;
uses wincrt;
type tabel_mhs= record
nrp :string [12];
nama :string [20];
jurusan :string[18];
nilai:integer;
end;
var
mhs : array[1..100] of tabel_mhs;
temp:tabel_mhs;
j,k,n: integer;
ul,ul2 : char;
procedure input_data;
begin
writeln('=================================================');
writeln(' Data Nilai Mahasiswa Praktikum Alro Kelas A3 ');
writeln('=================================================');
write('Banyaknya mahasiswa : '); readln(n);
for j:= 1 to n do
with mhs [j] do
begin
writeln ('Data Mahasiswa ',j);
write ('NRP :'); readln (nrp);
write ('Nama :'); readln (nama);
write ('Jurusan :'); readln (Jurusan);
write ('Nilai :'); readln (nilai);
writeln;
end;
end;
procedure urut_nilai;
begin
for j:=1 to n do
for k:=j to n do
if mhs[j].nilai > mhs[k].nilai then
begin
temp:=mhs[j] ;
mhs[j]:=mhs[k] ;
mhs[k]:=temp ;
end;
end;
procedure tampilan;
begin
urut_nilai;
clrscr;
writeln('=================================================');
writeln(' Data Nilai Mahasiswa Praktikum Alro Kelas A3 ');
writeln('==================================================');
writeln;
writeln('
=======================================================');
writeln('|NRP |Nama |Jurusan |Nilai |');
writeln('
======================================================');
for j:=1 to n do
begin
writeln('|',mhs[j].nrp:15,'|',mhs[j].nama:23,'|',mhs[j].jurusan:21,'|',mhs[j].nilai:14,'|'
);
end;
writeln('
=======================================================');
end;
begin
input_data;
urut_nilai;
tampilan;
end.
Print Screen Program
BAB V
PENUTUP
5.1 Kesimpulan
Dari laporan praktikum modul 6 ini, kita dapat menarik kesimpulan:
4. 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
5. 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.
5.2 Saran
Diharapkan asisten praktikum dalam menjelaskan materi dapat lebih jelas
lagi.
DAFTAR RIWAYAT HIDUP
Data Pribadi
Nama : Shobihatul Mubarokah Ayu Aseptica
Tempat Tanggal Lahir : Lamongan, 01 Mei 1993
Alamat : Bojonegoro
Agama : Islam
Jenis Kelamin : Perempuan
Warga Negara : Indonesia
Tinggi / Berat Badan : 150 / 48
Status : Mahasiswa
E-mail : shobi.tachi@gmail.com
Web-blog : -
Riwayat Pendidikan
TK ABA II : 1997 – 1999
MIN KEPATIHAN BOJONEGORO : 1999 – 2005
MTsN 1 BOJONEGORO : 2005 – 2008
MAN 1 BOJONEGORO : 2008 – 2011
UNIVERSITAS TRUNOJOYO : 2011 – Sekarang
PENUTUP
Kesimpulan
Dalam membuat suatu program terlebih dahulu penting untuk mengetahui
dasar-dasar pemrograman. Dalam mengenal dan memahami tentang apa dan
bagaimana program berjalan pengenalan yang paling utama meliputi:
1. Stuktur Program Pascal, Tipe data, variabel, dan Konstanta
Stuktur Program Pascal terdiri dari :Judul Program, bagian Deklarasi dan
bagian Deskripsi. Tipe data terdiri dari tipe dasar, operator dan lain-lain.
2. Penyeleksian Kondisi,
Penyeleksian Kondisi merupakan suatu aksi yang hanya dikerjakan apabila
persyaratan atau kondisi tertentu terpenuhi. Stuktur yang digunakan if-then.
Penyeleksian Kondisi diklasifikasikan menjadi 2, yaitu; satu kondisi (if-then)
dan dua kondisi atau lebih(if-then-else)
3. Pengulangan (Looping)
Struktur Pengulangan dibagi menjadi dua, yaitu struktur pengulangan
tanpa kondisi (For) dan struktur pengulangan dengan kondisi (While). Untuk
Stuktur FOR, Jumlah pengulangan diketahui atau dapat ditentukan sebelum
eksekusi. Sedangkan untuk struktur While, Jika kondisi bernilai false, badan
pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai.
4. Procedure dan Fungsi
Prosedur adalah modul program yang mengerjakan aktivitas yang spesifik
dan hasilnya diperoleh dengan membandingkan keadaan awal dan keadaan
akhir pada pelaksanaan sebuah prosedur. Fungsi juga merupakan modul
program yang mempunyai tujuan spesifik. Fungsi
memberikan/mengembalikan (return) sebuah nilai dan tipe tertentu (tipe dasar
atau tipe bentukan). Fungsi diakses dengan memanggil namanya.
5. Larik(Array)
Larik adalah tipe terstruktur yang terdiri dari sejumlah elemen-elemen
yang bertipe sama. Banyaknya elemen dalam suatu larik ditunjukkan oleh
suatu indeks yang harus merupakan tipe data yang menyatakan keterurutan,
misalnya integer atau karakter (karena ia menyatakan posisi data). Tiap-tiap
elemen di larik dapat diakses langsung melalui indeksnya.
6. 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.
Saran
- Kegiatan Praktikum dapat dilaksanakan dan diakhiri tepat waktu.
- Demo Program tiap modul tetap dilaksanakan untuk mengukur
pemahaman masing-masing praktikan terhadap apa yang diajarkan.
- Demo Program dilaksanakan di tempat yang sama seperti Laboratorium
Pemrograman dan lainnya.
- Jadwal Demo Program untuk tiap modul ditetapkan dan disepakati
bersama (semua anggota kelas praktikum).