Anda di halaman 1dari 13

[M PANJI ISMAIL] 3105111156

LISTING PROGRAM

[TUGAS 3: ARRAY 2 DIMENSI] 1


[M PANJI ISMAIL] 3105111156

[TUGAS 3: ARRAY 2 DIMENSI] 2


[M PANJI ISMAIL] 3105111156

PEMBAHASAN
Uses wincrt : digunakan untuk memulai suatu program.

Tipe data yang saya gunakan dalam program tersebut antara lain:

1. Tipe data Array


Array adalah Tipe data composite yang digunakan untuk menyimpan sejumlah data
dengan tipe yang sama (homogen) dalam sebuah variable. Dalam program pencarian
jumlah mahasiswa tersebut saya menggunakan array untuk:
a. input=array[1..10,1...10]of integer;
digunakan untuk menyimpan data dengan nama ‘input’ yang mempunyai tipe
data integer dan menyimpan jarak/batas 1 sampai 10 sebanyak dua kali.
b. hasil=array[1..10]of integer;
digunakan untuk menyimpan data dengan nama ‘hasil’ yang mempunyai tipe
data integer dan menyimpan jarak/batas 1 sampai 10 sebanyak satu kali.
c. nama_prodi=array[1..20]of string;
digunakan untuk menyimpan data dengan nama ‘nama_prodi’ yang mempunyai
tipe data integer dan menyimpan jarak/batas 1 sampai 20 sebanyak satu kali
2. Variabel
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan nilainya dan
memanggil kembali apabila dibutuhkan. Dari program tersebut contoh yang
digunakkan antara lain:
a. jum_thn, jum_prodi, baris, spasi, b, i, j, banyak_thn, total, max, min:
integer;
integer: tipe data yang disimpan berupa angka.
b. angka: input;
input: tipe data yang telah diidentifikasikan oleh array berupa integer yang akan
digunakan untuk menyimpan data dalam jumlah yang banyak. Karena dalam
program ini saya menggunakan data yang berupa “tahun” maka data yang
disimpan berupa tahun.
c. hsl, hsl2: hasil;
hasil: tipe data yang telah diidentifikasikan oleh array berupa integer yang akan
digunakan untuk menyimpan data dalam jumlah yang banyak. Karena dalam
program ini saya menggunakan data yang berupa “penjumlahan secara vertical
dan horisontal” maka data yang disimpan berupa penjumlahan angka.
d. prodi: nama_prodi;
nama_prodi: tipe data yang telah diidentifikasikan oleh array berupa string yang
akan digunakan untuk menyimpan data dalam jumlah yang banyak. Karena dalam
program ini saya menggunakan data yang berupa “nama-nama prodi” maka data
yang disimpan berupa prodi.

[TUGAS 3: ARRAY 2 DIMENSI] 3


[M PANJI ISMAIL] 3105111156

3. Function

Seperti halnya prosedur, fungsi adalah modul program, yaitu blok program
yang ditulis menurut aturan tertentu, dan digunakan untuk membantu bagian utama
program. Fungsi diletakkan sesudah bagian deklarasi (konstanta, type variable)
tetapi sebelum blok program utama. Anda dapat mendeklarasikan fungsi pada daerah
yang sama dengan deklarasi prosedur. Fungsi buatan yang sudah diciptakan dapat
dipanggil pada saat anda berada di blok program utama, dengan cara menuliskan
nama fungsi tersebut, diikuti dengan argument-argumen yang akan dimasukkan. Pada
saat fungsi buatan dipanggil, perjalanan program akan meloncat ke awal fungsi yang
dimaksud. Data-data yang ada di dalam parameter akan diolah sehingga diperoleh
sebuah hasil. Hasil tersebut akan dibawa kembali ke tempat dimana fungsi tersebut
dipanggil.
Dalam program ini saya menggunakan fungsi untuk mencetak garis-garis pada
tabel dan panjang garis tersebut akan mengikuti panjang tabel secara
horizontal(banyak tahun yang kita masukkan) .dan garis-garis tersebut akan saya
panggil untuk membuat garis-garis berikutnya dalam tabel, contoh :

function garis(a,b:integer):integer;
begin
for a:=1 to b do
write(‘=’);

end;

a dan b harus di definisikan tipe datanya di variable dengan tipe integer, sistem cara
kerjanya adalah dari 1 sampai b akan mencetak ‘=’, sedangkan b itu sendiri nilainya
harus sudah diketahui dalam program utama. Dalam program ini b itu sendiri
mempunyai rumus:

b:=jum_thn*7+33

keterangan:

 jum_thn = banyaknya tahun yang kita masukkan


 7 = panjang kaarakter (lebar) setiap tahun
 33 = penjumlahan panjang karakter (lebar) nama prodi dan total yaitu 26+7
Contoh penempatan nilai b dalam program utama:

[TUGAS 3: ARRAY 2 DIMENSI] 4


[M PANJI ISMAIL] 3105111156

Untuk lebih jelasnya lihat contoh listing program dibawah ini:

Untuk memulai suatu program(awal blok) maka digunakan pungtuasi berupa “begin”.

Dan untuk membaca inputan yang akan kita masukkan atau tulis maka digunakan “write dan
‘’readln” .

Keterangan

 Jum_thn: digunakan untuk memasukkan banyaknya tahun yang akan kita inputkan,
karena dalam kotak hasil keluaran program panjangnya terbatas maka agar tabel
tersusun secara rapi maksimal banyak tahun yang kita masukkan adalah 6
 Jum_prodi: fungsinya sama seperti jum_thn yaitu untuk memasukkan jumlah prodi,
anda bebas memasukkan jumlah prodi tapi jika anda ingin melihat hasil tabeh secara
utuh maka maksimal anda memasukkan sebanyak 7 ataun 8
 Tipe data untuk memasukkan banyaknya mahasiswa adalah integer jadi hanya dapat
menampung angka maksimal sebanyak 32767 dan karena pada setiap kolom saya
hanya memberi lebar jarak 7 karakter maka anda hanya bisa memasukkan angka
yang sekiranya jika ditotal nilainya dibawah 10000.

Untuk mencetak jumlah prodi dan nama prodi ,banyak tahun ,hasil penjumlahan pertahun
dan perprodi serta total keseluruhan yang akan kita masukkan saya gunakan rumus
percaabangan ganda IF…THEN (percabangan dalam percabangan). Adapun rumus untuk
memasukkan prodi dan tahun sebagai berikut:

[TUGAS 3: ARRAY 2 DIMENSI] 5


[M PANJI ISMAIL] 3105111156

Keterangan :

 Karena saya ingin menhitung jumlah mahasiswa tahun sekarang dan tahun-tahun
sebelumnya maka “banyak tahun :=2012 –(jumlah tahun-1)”
 i = berfungsi untuk mencetak banyak prodi dan nama prodi
 j = berfungsi untuk mencetak banyak tahun dan nama tahun
 “ i “ akan mencetak jika “ j ” sudah selesai mencetak
Contoh i:= 1 j:=1 i:= 5 j:=1
j:=2 j:=2
j:=3 j:=3
j:=4 j:=4
j:=5 j:=5
j:=6 j:=6
i:= 2 j:=1 i:= 6 j:=1
j:=2 j:=2
j:=3 j:=3
j:=4 j:=4
j:=5 j:=5
j:=6 j:=6
i:= 3 j:=1 i:= 7 j:=1
j:=2 j:=2
j:=3 j:=3
j:=4 j:=4
j:=5 j:=5
j:=6 j:=6
i:= 4 j:=1
j:=2
j:=3
j:=4
j:=5
j:=6

[TUGAS 3: ARRAY 2 DIMENSI] 6


[M PANJI ISMAIL] 3105111156

Contoh output program:

[TUGAS 3: ARRAY 2 DIMENSI] 7


[M PANJI ISMAIL] 3105111156

Setelah prodi dan tahun sudah tercetak selanjutnya adalah mencetak hasil data dalam
bentuk tabel, sebelum mencetak tabel kita harus menghilangkan data diatas supaya
program kelihatan lebih simple. Untuk menghilangkanya saya gunakan “clrscr”. Sedangkan
untuk mencetak tabel serta hasil penjumlahan menggunakan rumus sebagai berikut:

Keterangan:

 Garis(a,b) adalah panjang garis yang sudah dituliskan rumusnya dalam sub program
function dan pada beris ini fungsi tersebut di panggil kembali
 Judul menggunakan jarak spasi 15 karakter dari kiri dan 25 karakter kekanan
 Untuk membuat garis tabel berupa “=” menggunakan rumus percabangan yang
sudah dibahas diatas
 NAMA PRODI dicetak dengan panjang maksimal 21 karakter serta 2 spasi karakter
dari kiri dan kanan , dan panjang serta jarak sepasi ini akan berlaku sama untuk
nama-nama prodi yang akan kita masukkan secara vertikal
 Setelah itu akan mencetak banyak tahun dengan menggunakan rumus perulangan
yaitu dari banyak tahun sampai 2012 dengan panjang 5 karakter dan 2 spasi kekanan
,dan panjang dan spasi ini akan berlaku untuk tahun-tahun berikutnya baik secara
horizontal maupun vertical
 Setelah tahun tercetak kemudian akan mencetak judul “TOTAL”.
 Garis(a,b) adalah panjang garis yang sudah dituliskan rumusnya dalam sub program
function dan pada beris ini fungsi tersebut di panggil kembali untuk menutup tabel
berupa garis

[TUGAS 3: ARRAY 2 DIMENSI] 8


[M PANJI ISMAIL] 3105111156

Setelah nama-nama pada prodi dan tahun sudah dibuat maka selanjutnya adalah megisi
tabel dengan angka-angka yang sudah kita inputkan sebelumnya, untuk rumus pengisian
angka serta hasilnya sebagai berikut:

Keterangan:

 Agar bisa mencetak hasil, harus menggunakan rumus perulangan dalam perulangan
yaitu perulangan 1 dan perulangan 2.
 Untuk mencetak nama-nama prodi saya menggunaka rumus perulangan 1 yaitu dari
i:=1 sampai jumlah prodi
 Untuk mencetak angka saya menggunaka rumus perulangan 2 yaitu dari j:=banyak
tahun sampai 2012
 Agar hasil penjumlahan bisa terletak secara vertical maka penjumlahanya harus
secara horizontal yaitu i akan tercetak setelah j habis tercetak dan akan terus
berulang sampai i sama dengan jumlah prodi. Setelah i selesai tercetak sampai
batasnya maka akan dijumlahkan oleh “hasil pertama” dengan rumus :
hsl[i]:=hsl[i]+angka[i,j];
 Setelah habis tertotal sampai batas nama prodi maka akan ditutup dengan
memanggil garis “=” yang sudah tercetak rumusnya dalam function

Setelah penjumlahan secara horizontal (jumlah setiap prodi) selesai selanjutnya adalah
menjumlahkan secara vertical (hasil kedua). Untuk lebih jelasnya lihat rumus program
dibawah ini:

[TUGAS 3: ARRAY 2 DIMENSI] 9


[M PANJI ISMAIL] 3105111156

Keterangan:

 Yang pertama adalah menulis judul total di bawah batas nama prodi, sedangkan
panjang karakter dan jarak spasi sama seperti pada panjang dan spasi pada nama
prodi
 Setelah itu mencari hasil kedua yaitu menggunakan perulangan dalam perulangan ,
sama seperti pada rumus perulangan pada hasil pertama, bedanya hanya saat
mencetak hasilnya saja yaitu i akan mencetak setelah j selesai mencetak setelah itu
akan dijumlahkan tapi penjumlahanya dengan angka[j,i] bukan angka[i,j] .
perbedaanya terletak pada vertical dan horizontal………… Hsl2[j]:=hsl2[j]+angka[j,i];
 Agar penempatan hasil keduanya tersusun secara rapi maka spasi dan jaraknya
harus diatur menggunakan rumus gotoxy yaitu jarak karakter pada nama prodi
ditambah dengan jarak karakter pada nama tahun, sedangkan jarak dari atas
kebawah adalah jumlah prodi+6.
Gotoxy(27+spasi,jum_prodi+6); (X: untuk jarak dari kiri dan Y: untukjarak dari atas)
 Karena kita akan mentotal dari tahun ketahun maka spasi juga harus ditotal dengan
jarak karakter tahun yaitu menggunakan rumus spasi:=spasi+7;
 Setelah penotalan selesai selanjutnya adalah mencetak hasil total secara
keseluruhan
 Penempatanya pun tidak boleh sembarangan harus segaris yaitu menggunakan
rumus gotoxy juga , gotoxy(b-6,jum_prodi+6);
 Setelah selesai tertotal semuanya selanjutnya adalah menutup tabel dengan garis
“=”.

[TUGAS 3: ARRAY 2 DIMENSI] 10


[M PANJI ISMAIL] 3105111156

Langkah yang terakhir adalah menentukan jumlah mahasiswa tertinggi dan terendah

Rumusnya masih sama pada rumus-rimus sebelumnya yaitu menggunakan perulangan


dalam perulangan serta menggunakan rumus percabangan. Untuk listing programnya anda
bisa lihat dibawah ini:

Keterangan :

 Max:=0 adalah batas terendah untuk perbandingan maksimal


 Min:=10000 adalah batas tertinggi untuk perbandingan minimal
 Fungsi i adalah mencari letak angka pada prodi secara horisontal
 Fungsi j adalah mencari letak angka pada pada tahun secara vertical
 System pencetakan i sama seperti rumus perulangan-perulangan sebelumya saitu
perulangan dalam perulangan yaitu i akan mencetak jika j sudah sekesai mencetak
dan akan diulang terus menerus sampai batas jumlah prodi
 Setelah i selesai di baca sampai batasnya oleh program maka akan dicari maksimal
dan minimalnya dengan menggunakan rumus percabangan IF….ELSE
 Jika angka lebih besar dari maksimal (maksimal=0) maka angka akan dicetak. Cara
pencetakkan angka dilakukan dengan perbandingan angka-angka yang lain sampai
ketemu mana hasil angka yang paling tinggi

[TUGAS 3: ARRAY 2 DIMENSI] 11


[M PANJI ISMAIL] 3105111156

 Kemudian kasih spasi antara tabel dan nilai pencarian maksimal minimal dengan
menambahkan “writeln” sebanyak dua kali.
 Jika angka lebih kecil dari minimal (minimal=10000) maka angka akan dicetak. Cara
pencetakkan angka dilakukan dengan perbandingan angka-angka yang lain sampai
ketemu mana hasil angka yang paling rendah
 Lagkah selanjutnya adalah mencari nilai angka maksimal yang sama prodi lain
maupun tahun lain yaitu apabila angka maksimal lebih dari satu maka maka akan
dicetak semua. Begitupun juga dengan angka minimal apabila nilai minimalnya lebih
dari satu maka nilai minimalnya akan ditampilkan semua
 Rumus untuk maksimal:
Rumus yang dugunakan adalah rumus perulangan dalam perulangan (FOR...TO…DO)
dan juga rumus percabangan (IF…THEN), yaitu i akan mengulang dari 1 sampai akhir
jumlah prodi dengan syarat j harus selesai mengulang terlebih dahulu sampai batas
tahun yang kita masukkan. Setelah itu fungsi pecabangan IF akan bekerja yaitu jika
angka-angka yang kita masukkan sama dengan maksimal maka angka tersebut akan
dicetak dengan menyertakan nama prodi dan tahun, karena prodi diulang atau dicari
menggunakan i maka prodi ditambahkan i dibelakangnya(Prodi[i]), dan tahun
dengan mencetak j
 Kasih spasi/jarak antara hasil maksimal dengan minimal menggunakan “writeln”
 Rumus untuk minimal:
Rumus yang dugunakan adalah rumus perulangan dalam perulangan (FOR...TO…DO)
dan juga rumus percabangan (IF…THEN), yaitu i akan mengulang dari 1 sampai akhir
jumlah prodi dengan syarat j harus selesai mengulang terlebih dahulu sampai batas
tahun yang kita masukkan. Setelah itu fungsi pecabangan IF akan bekerja yaitu jika
angka-angka yang kita masukkan sama dengan minimal maka angka tersebut akan
dicetak dengan menyertakan nama prodi dan tahun, karena prodi diulang atau dicari
menggunakan i maka prodi ditambahkan i dibelakangnya(Prodi[i]), dan tahun
dengan mencetak j
 Setelah semua progam selesai maka langkah yang terakhir adalah menutup semua
program yang sudah kita mulai dengan “begin” menggunakan “end.”
 Untuk mengecek hasuilnya compile dulu programnya agar anda tahu letak kesalahan
program apabila ada yang salah
 Setelah compile muncul tanda OK maka selanjutnya adalah “RUN” program
 Setelah di RUN maka akan muncul kotak pengisian jumlah tahun dan jumlah prodi,
setelah anda isi anda akan di minta untuk mengisi lagi sesuai jumlah data prodi dan
tahun yang anda masukan.
 Pengisian akan berhenti pada batas jumlah prodi dan tahun yang anda masukan
 Kemudian akan tampil tabel seperti pada gambar dibawah ini:

[TUGAS 3: ARRAY 2 DIMENSI] 12


[M PANJI ISMAIL] 3105111156

Contoh untuk 3 tahun 8 prodi:

TERIMA KASIH

[TUGAS 3: ARRAY 2 DIMENSI] 13