Case sering digunakan untuk
menyederhanakan penulisan IF-THEN-ELSE yang bertingkat-tingkat sedangkan if
digunakan untuk kondisi yang jumlahnya tidak terlalu banyak.
Blog tentang suju, tentang materi mahasiswa IT, jualan, tips and trik atau tutorial ada di blog ini. Termasuk cerita tentang saya....
Selasa, 23 April 2013
Selasa, 16 April 2013
kendali case
Program Sederhana dengan Pernyataan Kendali Case
Dengan contoh
program yang sama untuk versi penyataan case dapat
dilihat pada
program di bawah ini :
program P0202;
var
alas, tinggi, jejari, luas: Real;
pilih: Integer;
begin
Writeln('1. Segitiga 2. Lingkaran');
Readln(pilih);
case pilih of
1: begin
Readln(alas, tinggi);
luas := 1 / 2 * alas * tinggi;
Writeln('Luas Segitiga : ', luas);
End;
2: begin
Readln(jejari);
luas := pi * Sqr(jejari);
Writeln('Luas Segitiga : ', luas);
end;
end;
Readln;
end.
Dari
bentuk-bentuk struktur kendali yang telah dijelaskan di atas
dapat
terjadi dimana struktur kendali tertentu berada pada struktur
kendali yang lain, yang dikenal dengan struktur
kendali bersarang.
Misalnya didalam
pernyataan if
terdapat pernyataan if lagi atau dalam
pernyataan case
terdapat pernyataan if dan seterusnya.
Untuk lebih
jelasnya salin program berikut :
program P0203;
var
nama, alamat: string;
nrp: string[8];
keterangan: string[2];
grade, pilih: Char;
nilai: Integer;
begin
Writeln('1. Memasukkan data mahasiswa 2. Keluar');
Write('Pilihan Anda : ');
Readln(pilih);
case
pilih of
'1': begin
Write('Masukkan Nama Anda : ');
Readln(nama);
Write('Masukkan NRP Anda : ');
Readln(nrp);
Write('Masukkan Alamat Anda : ');
Readln(alamat);
Write('Masukkan Nilai Anda : ');
Readln(nilai);
{menentukan program studi}
if (copy(nrp, 3, 2)='11') then
keterangan := 'S1'
else
if (copy(nrp, 3, 2)='31') then
keterangan := 'D3';
{menentukan grade}
if (nilai >= 80) then
grade
:= 'A'
else
if (nilai >= 70) then
grade
:= 'B'
else
if (nilai >= 60) then
grade := 'C'
else
grade := 'D';
Writeln('Data mahasiswa yang diinputkan');
Writeln('Nama : ',nama);
Writeln('NRP : ',nrp);
Writeln('Program Studi : ',keterangan);
Writeln('Alamat : ',alamat);
Writeln('Nilai : ',nilai);
Writeln('Grade : ',grade);
end;
'2': begin
Writeln('Anda mengakhiri program !');
Exit;
end;
else
begin
Writeln('Pilihan Anda salah !');
Exit;
end;
end;
Readln;
end.
pemetaan asosiatif dan asosiatif set
Pemetaan Assosiatif
Pemetaan asosiatif mengatasi kekurangan pemetaan
langsung dengan cara setiap blok memoriutama dapat dimuat ke sembarang saluran
cache. Alamat memori utama diinterpretasikan dalamfield tag dan field word oleh
kontrol logika cache. Tag secara unik mengidentifikasi sebuah blokmemori
utama.45.Mekanisme untuk mengetahui suatu blok dalam cache dengan memeriksa
setiap tag saluran cache oleh kontrol logika cache. Dengan pemetaan ini didapat
fleksibilitas dalampenggantian blok baru yang ditempatkan dalam cache.
Algoritma penggantian dirancang untuk
memaksimalkan hit ratio, yang pada pemetaan langsung
terdapat kelemahan dalam bagian ini.
Kekurangan pemetaan asosiatif adalah
kompleksitas rangkaian sehingga mahal secara ekonomi.
c.
Pemetaan Assosiatif Set
Pemetaan asosiatif set menggabungkan kelebihan yang
ada pada pemetaan langsung danpemetaan asosiatif. Memori cache dibagi dalam
bentuk set – set.Pemetaan asosiatif set prinsipnya adalah penggabungan kedua
pemetaan sebelumnya.Alamat memori utama diinterpretasikan dalam tiga field,
yaitu: field tag, field set, dan field word.Hal ini mirip dalam pemetaan
langsung. Setiap blok memori utama dapat imuat dalamsembarang saluran cache.
Dalam pemetaan asosiatif set, cache dibagi dalam v buah set, yang
masing –masingterdiri dari k saluran. Hubungan yang terjadi adalah :
m = v x k
i = j modulus v dan v = 2d dimana :
i = nomer set cache
j = nomer blok memori utama
m = jumlah saluran pada cache 46
saluran pada masing-masing set, yang dikenal
sebagai asosiatif set dua arah. Nomor setmengidentifikasi set unik dua saluran
di dalam cache. Nomor set ini juga memberikan jumlahblok di dalam memori utama,
modulus 2. Jumlah blok menentukan pemetaan blok terhadapsaluran. Sehingga
blok-blok 000000, 00A000,…,FF1000 pada memori utama dipetakan terhadapset 0
cache. Sembarang blok tersebut dapat dimuatkan ke salah satu dari kedua saluran
di dalamset. Perlu dicatat bahwa tidak terdapat dua blok yang memetakannya
terhadap set cache yang
sama memiliki nomor tag yang sama. Untuk operasi read,
nomor set dipakai untuk menentukanset dua saluran yang akan diuji. Kedua
saluran di dalam set diuji untuk mendapatkan yang cocokdengan nomor tag alamat
yang akan diakses.Penggunaan dua saluran per set ( v = m/2, k = 2),
merupakan organisasi asosiatif set yangpaling umum. Teknik ini sangat
meningkatkan hit ratio dibandingkan dengan pemetaan langsung.Asosiatif set
empat arah (v = m/4, k = 4) memberikan eningkatan tambahan yang
layak denganpenambahan harga yang relatif rendah. Peningkatan lebih lanjut
jumlah saluran per set hanya
memiliki efek yang sedikit.
Langganan:
Postingan (Atom)