Array 2 Dimensi

18
[M PANJI ISMAIL] 3105111156 LISTING PROGRAM [TUGAS 3: ARRAY 2 DIMENSI] 1

Transcript of Array 2 Dimensi

Page 1: Array 2 Dimensi

[ ] 3105111156

LISTING PROGRAM

[TUGAS 3: ARRAY 2 DIMENSI] 1

Page 2: Array 2 Dimensi

[ ] 3105111156

[TUGAS 3: ARRAY 2 DIMENSI] 2

Page 3: Array 2 Dimensi

[ ] 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. VariabelVariabel 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

Page 4: Array 2 Dimensi

[ ] 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 dowrite(‘=’);

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

Page 5: Array 2 Dimensi

[ ] 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

Page 6: Array 2 Dimensi

[ ] 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

Page 7: Array 2 Dimensi

[ ] 3105111156

Contoh output program:

[TUGAS 3: ARRAY 2 DIMENSI] 7

Page 8: Array 2 Dimensi

[ ] 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

Page 9: Array 2 Dimensi

[ ] 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

Page 10: Array 2 Dimensi

[ ] 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

Page 11: Array 2 Dimensi

[ ] 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

Page 12: Array 2 Dimensi

[ ] 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

Page 13: Array 2 Dimensi

[ ] 3105111156

Contoh untuk 3 tahun 8 prodi:

TERIMA KASIH

[TUGAS 3: ARRAY 2 DIMENSI] 13