• Tidak ada hasil yang ditemukan

Nama : Suseno Rudiansyah Kelas : X2T Fakultas : Teknik Informatika Tugas : Algoritma 2 1. STRUKTUR DATA KOMPOSIT

N/A
N/A
Protected

Academic year: 2021

Membagikan "Nama : Suseno Rudiansyah Kelas : X2T Fakultas : Teknik Informatika Tugas : Algoritma 2 1. STRUKTUR DATA KOMPOSIT"

Copied!
9
0
0

Teks penuh

(1)

Nama : Suseno Rudiansyah Kelas : X2T

Fakultas : Teknik Informatika Tugas : Algoritma 2

1. STRUKTUR DATA KOMPOSIT

Data komposit merupakan tipe data yang disusun dari tipe data sederhana atau tipe komposit lain yang telah ada. Tipe ini antara lain string, array, class dan interface. Tipe data komposit ada 2, yaitu :

 Record

Record merupakan struktur data komposit atau gabungan dari beberapa field, baik yang bertipe sama maupun berbeda. Kita dapat menggunakan record untuk menyimpan variabel-variabel yang berhubungan, Misalnya record Alamat dimana di dalamnya terdapat field Nama Jalan, No Jalan, No Rumah, Kota, kode Pos dan lain-lain.

 Collection

Collection merupakan sebuah grup dari elemen-elemen yang memiliki tipe data sama dan tiap tipe data yang sama tersebut disebut dengan element. Tiap element pada Collection memiliki sebuah subscipt yang unik yang digunakan untuk menentukan posisi element tersebut di dalam Collection.

Terdapat 3 Tipe Collection di PL/SQL: 1. Index_By Table (Associative arrays )

Associative arrays atau biasa disebut dengan tabel PL/SQL merupakan kumpulan key-value berpasang-pasangan, yang mana setiap key adalah unik dan digunakan untuk mencari nilai yang terkait di dalam array. Key dapat berupa integer atau string.

2. Nested Table Di dalam oracle

Nested Table bisa dianggap dengan tabel yang hanya memiliki satu kolom, Nested Table dalam PL/SQL juga mirip dengan array satu dimensi. Nested Table memiliki size yang dinamis yaitu dimana size nested table telah mencapai batas yang telah ditentukan pada saat dibuat, size tersebut secara dinamis dapat bertambah ketika ada data baru yang dimasukkan.

3. VARRAY

Varray bisa mengijinkan untuk menghubungkan identifier tunggal dengan seluruh collection. Hubungan ini mengijinkan kita untuk memanipulasi collection sebagai sebuah kesatuan dan mereferensi elemen-elemen tunggal secara mudah. Untuk mengakses sebuah element pada Varray, kita menggunakan syntaxnama_variabel (index). Dalam computer sains, tipe data komposit adalah beberapa tipe data yangbisa dibuat dalam sebuah program menggunakan bahasa pemograman tipe data primitive dan tipe komposit yang lain, kegiatan membuat tipe komposit dikenal sebagai komposis.

A. Pengertian Array

Array atau larik adalah koleksi data dimana setiap elemen memakai nama yang sama dan bertipe sama dan setiap elemen diakses dengan membedakan indeks arraynya. Array adalah variabel berindeks. Indeks harus bertipe yang memiliki keturutan (ada succesor dan predesor), misal integer, byte, character dan boolean.

(2)

Jadi array dipakai untuk menyajikan sekumpulan data yang bertipe sama dan disimpan dengan urutan sesuai dengan indeks secara kontinyu.

B. Array 1 Dimensi

Array satu dimensi adalah struktur data yang statis mempunyai satu nama tetapi memiliki banyak tempat. Array satu dimensi atau dalam variabel beberapa literatur disebut sebagai larik, adalah suatu tipe variabel yang berisi kumpulan data dengan setiap element datanya bertipe sama. Array satu dimensi merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang diakses hanya melalui 1 indeks atau subskrip.

2. STRUKTUR DATA KOMPOSIT ( Lanjutan Array ) A. Praktek Pembuatan Program Array

Deklarasi Array satu Dimensi

Bentuk umum deklarasi array satu dimensi: tipe_data nama_var_array;

Dimana:

tipe_data : menyatakan jenis tipe data elemen larik (int, char, float, dll) nama_var_array : menyatakan nama variabel yang dipakai.

ukuran : menunjukkan jumlah maksimal elemen larik. Contoh:

char huruf[9]; int umur[10]; int kondisi[2] = {0,1}; int arr_dinamis[] = {1,2,3};

Contoh program hitung nilai akhir mata kuliah

#include<constream.h> #include<stdio.h> void main() { clrscr(); char nama[30][25]; float a,na,tugas[30],quis[30],uts[30],uas[30];

cout<<"PROGRAM HITUNG NILAI AKHIR MATA KULIAH P. STRUKTUR DATA\n\n"; cout<<"NRP : 6312177\n";

cout<<"Nama : Mugi Rachmat\n";

cout<<"Blog : www.infomugi.blogspot.com\n\n"; cout<<"masukan jumlah mahasiswa : ";

cin>>a;

for(int b=0;b<a;b++) {

cout<<"mahasiswa ke - "<<b+1<<endl; cout<<"nama mahasiswa : ";gets(nama[b]); cout<<"nilai tugas : ";cin>>tugas[b]; cout<<"nilai quis : ";cin>>quis[b]; cout<<"nilai uts : ";cin>>uts[b]; cout<<"nilai uas : ";cin>>uas[b]; }

clrscr();

cout<<"DAFTAR NILAI\n";

cout<<"Mata Kuliah : P. Struktur Data\n"; cout<<"Kelas : TI\n";

cout<<"---\n"; cout<<"No. Nama Mahasiswa \t\t nilai\n";

cout<<"\t\t\t tugas\tquis\tuts\tuas\tN.A.\t\tGrade\n";

(3)

for(int c=0;c<a;c++) { na=(tugas[c]*0.1)+(quis[c]*0.1)+(uts[c]*0.3)+(uas[c]*0.5); cout<<c+1<<" "<<nama[c]<<"\t\t"<<tugas[c]; cout<<"\t"<<quis[c]<<"\t"<<uts[c]<<"\t"<<uas[c]<<"\t"<<na<<"\t\t"; if(na>=81) {cout<<"A";} else if(na>=71&&na<=80) {cout<<"B";} else if(na>=60&&na<=70) {cout<<"C";} else if(na>=50&&na<=59) {cout<<"D";} else if(na<=49) {cout<<"E";} cout<<endl; } getch(); }

Contoh program perhitungan karyawan kontrak

#include<constream.h> #include<stdio.h> void main() { clrscr(); struct karyawan{ char nama[50]; long t_jabatan; long t_pendidikan; long pajak; long g_bersih; long total; long t_lembur; long h_lembur; int gol,pendidikan,jam_lembur; }data[10]; int x,y; cout<<"NRP \t: 6312177"<<endl; cout<<"Nama \t: Mugi Rachmat"<<endl; cout<<"Kelas \t: 1TI-5"<<endl<<endl;

cout<<"PT. SUKSES"<<endl;

cout<<"APLIKASI PERHITUNGAN HONOR KARYAWAN KONTRAK"<<endl;

cout<<"Masukan Jumlah Karyawan : "; cin>>y;

clrscr(); for(x=0;x<y;x++) {

cout<<"Karyawan Ke-["<<x+1<<"]"<<endl;

cout<<"Nama Karyawan \t\t: ";gets(data[x].nama); cout<<"Golongan (1/2/3) \t: ";cin>>data[x].gol;

cout<<"Pendidikan (SMA/D3/S1) \t: ";cin>>data[x].pendidikan; cout<<"Jumlah Jam Lembur \t: ";cin>>data[x].jam_lembur; cout<<endl<<endl; } for(x=0;x<y;x++) { //Seleksi Golongan if(data[x].gol==1) {data[x].t_jabatan = 700000*0.05;} else if(data[x].gol==2) {data[x].t_jabatan = 700000*0.10;} else if(data[x].gol==3) {data[x].t_jabatan = 700000*0.15;} //Seleksi Pendidikan if(data[x].pendidikan==1) {data[x].t_pendidikan = 700000*0.025;}

(4)

else if(data[x].gol==2)

{data[x].t_pendidikan = 700000*0.05;} else if(data[x].gol==3)

{data[x].t_pendidikan = 700000*0.075;}

//Seleksi Jam Lembur if(data[x].jam_lembur<240) { data[x].h_lembur = 0; } else { data[x].t_lembur = (data[x].jam_lembur-240); data[x].h_lembur = 2500 * data[x].t_lembur; } //Perhitungan Pajak data[x].pajak = 0;

data[x].pajak = 0.10 * (data[x].t_jabatan + data[x].pendidikan + data[x].h_lembur + 700000);

//Perhitungan Gaji Bersih data[x].g_bersih = 0;

data[x].g_bersih = (data[x].t_jabatan + data[x].pendidikan + data[x].h_lembur + 700000) - data[x].pajak;

//Perhitungan Gaji Total

data[x].total=data[x].g_bersih*y; }

cout<<"PT. SUKSES"<<endl;

cout<<"No.\t"<<"Nama\t"<<"T. Jab\t"<<"T. Pend\t"<<"H. Lmbr\t"<<"Pajak\t"<<"Gaji Bersih"<<endl;

//Penampilan Data Tabel for(x=0;x<y;x++)

{

cout<<x+1<<"\t"<<data[x].nama<<"\t"<<data[x].t_jabatan<<"\t"<<data[x].t_pendidikan<<"\t"< <data[x].h_lembur<<"\t"<<data[x].pajak<<"\t"<<data[x].g_bersih<<endl;

}

//Penampilah Gaji Total for(x=0;x<1;x++)

{

cout<<"Total Gaji yang Dikeluarkan : Rp. "<<data[x].total; }

getch(); }

pembuatan program array dengan pascal turbo :

uses wincrt;

var x : array[1..3] of string; a : integer; begin for a := 1 to 3 do begin write('input ', a, ' : '); readln(x[a]); end; writeln; write('output : '); for a := 1 to 3 do write(x[a],' '); end.

(5)

B. Array satu dimensi

Buat tampilan sebagai berikut : Masukan Jumlah Data : (input) Nilai Praktek ke- (output) : (input) Nilai Praktek ke- (output) : (input) Nilai Praktek ke- (output) : (input)

Program array_satu_dimensi; uses crt;

var nilai : array[1..3] of real ; i, jumlahdata : byte ;

begin

write(‘Masukan Jumlah data : ‘);readln(jumlahdata); for i:=1 to jumlahdata do

begin

write(‘Nilai ke- ‘, i ,’ : ‘);readln(nilai*i+); end;

readln; end.

3. STRUKTUR DATA KOMPOSIT ( Lanjutan Array ) A. Matriks ( array dua dimensi )

Definisi Matriks

Matriks atau array dua dimensi adalah struktur data yang mengacu pada sebuah/sekumpulan elemen yang di akses. Berbeda dengan larik, maka pada matriks index terdiri dari dua bagian yaitu index baris dan index kolom. Setiap elemen matriks dapat di akses melalui indeknya, misalnya mengisi elemen matriks yang baris ke 2 dan kolom ke 1 dengan nilai 100, maka cara mengisinya adalah A(2,1)100. Contoh matriks bernama A dengan ukuran 2 x 3 (yang memiliki indeks baris 2 dan indeks kolom 3) :

Elemen Matriks : A[1,1], A[1,2], A[1,3], A[2,1], A[2,2], A[2,3] Indeks baris dari Matriks A : 1, 2

Indeks kolom dari Matriks : 1, 2, 3 Mengisi elemen Matriks : A[2,1] 100

Keuntungan struktur data matriks : 1. Paling mudah di operasikan

2. Ekonomis dalam pemakaian memory,bila semua elemen terisi 3. Akses ke setiap elemen memerlukan waktu yang sama

Kerugiannya :

(6)

B. Praktek Pembuatan Matriks ( array dua dimensi )

Bentuk umum pendeklarasian array dua dimensi: type_array nama_array[rowsize][colsize]

Dimana:

- type_array adalah tipe data dari array - nama_array adalah nama array. - rowsize adalah ukuran baris dari array. - colsize adalah ukuran kolom dari array. Contoh:

int matrix[3][3];

float coordinat[10][10];

Contoh Pendeklarasian Array Dimensi 2 int a2[5][7]; /* Correct */ float B[5][5]; /* Correct */ char letter[5][3]; /* Correct */ char letter[0][0] = 'a'; /* Correct */

int a2[5, 7]; /* WRONG */

int a2[0, 4] = '6'; /* WRONG */

Contoh array 2 dimensi dalam pascal

program array_dua_dimensi;

uses crt;

var matrik : array[1..3,1..2] of shortint;

i, j : byte;

begin

writeln('Contoh Matrik : ');

matrik[1,1] := 2;

matrik[1,2] := 3;

matrik[2,1] := 3;

matrik[2,2] := 4;

matrik[3,1] := 8;

matrik[3,2] := 10;

for i:= 1 to 3 do

begin

for j:=1 to 2 do

write (matrik[i,j]:5);

writeln;

end;

readln;

end.

4. SUB ALGORITMA A. Pengertian Procedure

Pada dasarnya struktur prosedur sama dengan struktur algoritma yang sudah kita kenal, yaitu ada judul(header), deklarasi (keterangan) dan deskripsi (uraian).

(7)

B. Deklarasi procedure Deklarasi : Procedure NamaProcedure(DaftarParameter) ; {Deklarasi} Begin …………. …………. End ; C. Pemanggilan procedure

Prosedur bukan program yang berdiri sendiri, ia tidak dapat dieksekusi secara langsung. Isi prosedur hanya dapat diakses dengan cara memanggil namanya dari program pemanggilanya (program utama atau modul lain). Bentuk umum cara pemanggilan prosedur adalah sbb : NAMA_PROSEDUR; Ketika nama prosedur dipanggil maka kendali program berpindah secara otomatis ke prosedur yang dipanggil tersebut. Setelah isi prosedur selesai dieksekusi, kendali program kembali ke instruksi sesudah pemanggil prosedur.

D. Praktek pembuatan program procedure

Program procedure dalam pascal adalah pemprograman dengan menggunakan bahasa pascal dengan menggunakan bantuan struktur procedure. Jadi procedure itu sendiri adalah sebuah salah satu struktur penulisan yang ada dalam penulisan program dengan menggunakan bahasa pascal. Penggunaan procedure ini sebenarnya sama dengan penggunaan function pada pascal. Tujuan dari penggunaan procedure dalam pascal adalah untuk mempermudah dan mempersingkat programer dalam membuat program, khususnya untuk program yang membutuhkan analisa tinggi. Jika dalam postingan sebelumnya telah disampaikan mengenai seleksi kondisi sekarang akan disampaikan mengenai procedur dalam pascal.

contoh procedure dalam pascal

Secara keseluruhan setiap struktur program pastilah ada ciri khasnya masing masing, begitu juga jika anda akan menggunakan struktur procedure sebagai acuan anda dalam menulis sebuah skrip program.pembuatan program procedur dalam pascal secara umum adalah sebagai berikut .

program contohrecord_menggunakanprocedure; uses crt; type rekam=record nim:string[10]; nama:string; ip:real; end; larik=array[1..100] of rekam; var mhs:larik; i,jummhs:byte;

procedure isidata(var x:larik); var ya:boolean; jwb:char; begin

{mengisi dengan repeat until} i:=0;

ya:=true; repeat begin i:=i+1;

(8)

with x[i] do begin clrscr; write('NIM = ');readln(nim); write('NAMA = ');readln(nama); write('IP = ');readln(ip); end;

write('mau mengisi lagi(y/t)? ');readln(jwb); if jwb <> 'y' then ya:=false;

end

until( not ya); jummhs:=i; end;

procedure tampil(var x:larik); begin

writeln;

writeln('---'); writeln(' NO NIM NAMA IP');

WRITELN('---');

for i:=1 to jummhs do writeln(i:3,x[i].nim:6,x[i].nama:20,x[i].ip:10:2); writeln('---');

readln; end; begin

writeln(' contoh penggunaan procedure'); writeln(' mengisi di procedure');

isidata(mhs);

writeln ('menampilkan di procedure'); tampil(mhs);

end.

tampil(mhs); readln;

5. SUB ALGORITMA ( lanjutan ) A. Pengertian Function

Pengertian fuction adalah satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain dalam suatu program.

Tujuan pembuatan fungsi adalah :

 Memudahkan dalam pembuatan program.

 Menghemat ukuran program Keuntungan memakai fungsi :

 Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih sederhana atau kecil.

 Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program

 Dapat menggunakan kode yang ditulis dalam berbagai program yang berbeda.

 Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh programmer-programmer atau dipecah menjadi beberapa tahap sehingga mempermudah pengerjaan dalam sebuah projek

 Menyembunyikan informasi dari user sehingga mencegah adanya perbuatan iseng seperti memodifikasi atau mengubah program yang kita buat

 Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu kesalahan kita tinggal mencari fungsi yang bersangkutan saja dan tak perlu mencari kesalahan tersebut di seluruh program.

(9)

Bentuk umum Sebuah fungsi adalah sebagai berikut : Tipedata namafungsi(daftarparameter)

{

/*Badan Fungsi*/

return nilaireturn; /* untuk tipe data bukan void */ }

B. Deklarasi Function

Deklarasi Function (fungsi) dalam pascal hampir sama dengan deklarasi procedure, hanya fungsi harus dideklarasikan dengan tipenya.  Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Bentuk Umum Function judul_fungsi(daftar_parameter): type;

Struktur dari fungsi ini hampir sama dengan procedur hanya saja function harus dideklarasikan beserta tipe datanya dan fungsi ini adalah mengembalikan nilai sehingga tipe data dalam sebuah function menunjukkan tipe dari data akhir dari deklarasi sebuah fungsi.

C. Pemanggilan Function

Fungsi diakses dengan cara memanggil namanya dari program pemanggil diikuti dengan daftar parameter aktual (bila ada).

Referensi

Dokumen terkait

Penentuan varians bersyarat dari sebuah peubah acak diberikan peubah acak lainnya, baik diskrit maupun kontinu dijelaskan dalam Definisi 7.12... 2 FUNGSI PEMBANGKIT

Pada tahap perencanaan strategik, manajemen membuat alternatif strategi dan program kerja beserta target kinerja. Peran akuntan manajemen dalam perencanaan strategik dalah

Ada 18 nilai untuk pengembangan pendidikan budaya dan karakter bangsa yang disusun oleh Diknas. Mulai tahun ajaran 2011, seluruh tingkat pendidikan di Indonesia harus

Halaman 6 LAMPIRAN II PENJABARAN PERTANGGUNGJAWABAN - PENJABARAN LAPORAN REALISASI ANGGARAN PENDAPATAN DAN

Akibat yang terlihat pada individu yang mengalami luka bakar merupakan hasil Akibat yang terlihat pada individu yang mengalami luka bakar merupakan hasil dari penyebab efek panas

Surat Pemberitahuan Retribusi Daerah yang selanjutnya dapat disingkat SPTRD adalah surat yang digunakan oleh Wajib Retribusi untuk melaporkan objek retribusi dan wajib

Manajemen harus berusaha untuk mengidentifikasi risiko yang dapat mempengaruhi keberhasilan perusahaan. Proses identifikasi resiko memerlukan pembelajaran

(3) Rencana tindak untuk Pelampauan BMPK sebagaimana dimaksud pada ayat (1) yang disebabkan karena hal-hal sebagaimana dimaksud dalam Pasal 11 huruf a dan huruf