Arsiy

Arsiy

Follow

Minggu, 28 Februari 2010

TUJUAN KESELAMATAN KERJA

  • Dengan memberikan keamanan bagi karyawan
  • selalu menyediakan alat2 pemadam kebakaran di setiap sudut ruangan dan mengurangi terjadinya kebakaran
  • menyediakan tangga darurat
  • memberikan pertolongan pertama kepada orang yang sudah tua dan sedanga hamil
  • menggunanakn kaca film disetiap ruangan
  • karyawan yang sakit harus memakai masker agar penyakitnya tidak menular

Sabtu, 27 Februari 2010

Deklarasi Array dalam bahasa pemprograman

a. Deklarasi array 1 dimensi

Bentuk umum dari deklarasi tipe array adalah :

type pengenal = array [tipe_index] of tipe;

dengan pengenal : nama tipe data
tipe_index : tipe data untuk nomor index
tipe : tipe data komponen

Parameter tipe_index menentukan banyaknya komponen array tersebut. Berikut contoh dari deklarasi :

type vek = array [1…..100] of integer;

menunjukkan bahwa vek adalah nama-pengenal/variabel yang berupa array yang komponennya bertipe integer dan banyaknya 100 buah.
Deklarasi yang demikian ini disebut deklarasi array dimensi satu, yang disebut vektor.

2.deklarasi array 2 dimensi

type tabel = array [1..3, 1..4] of real;
tabel(3,4)
artinya terdapat variabel yang bernama tabel yang di deklarasikan sebagai array dimensi dua dengan jumlah maksimal barisnya = 3 dan kolom = 4; serta tipe komponen datanyaadalah real.

c. Deklarasi array 3 Dimensi

type tabel = array [1..3, 1..4] of real;
tabel(3,4)
artinya terdapat variabel yang bernama tabel yang di deklarasikan sebagai array dimensi dua dengan jumlah maksimal barisnya = 3 dan kolom = 4; serta tipe komponen datanyaadalah real.

LINEAR LIST

    Linear List adalah suatu struktur data yang merupakan himpunan terurut. Misal didefinisikan  suatu linear list A yang terdiri atas T buah elemen sebagai berikut :
        A = [a1, a2, .........., aT]

Jika T = 0, maka A dikatakan sebagai “Null List”.
Suatu elemen dari sembarang posisi pada linear list A dapat dihilangkan. Sebaliknya, suatu elemen baru dapat dimasukkan ke dalam list dan dapat menempati sembarang posisi pada list tersebut. Jadi suatu linear list dapat berkurang atau bertambah setiap saat.

PEMETAAN KE STORAGE

MAPPING KE STORAGE
  • INTEGER

Bentuk mapping ke storage dari integer dapat dilakukan dengan beberapa cara, yaitu : 1. Skema Sign dan Magnitude 2. Skema One's Complement 3. Skema Two's Complement
m SKEMA SIGN AND MAGNITUDE
Cara ini merupakan bentuk konvensional yang digunakan manusia untuk menyatakan suatu bilangan dalam bentuk biner. Di sini representasi bilangan positif dan negatif hanya dibedakan dengan tanda saja. Biasanya tanda positif atau negatif ditunjukkan oleh digit terdepan dari bentuk binernya, untuk representasi dengan jumlah digit tertentu.

SKEMA TWO'S COMPLEMENT DAN ONE'S COMPLEMENT


Kedua skema ini merupakan cara yang digunakan untuk mengatasi kesulitan yang telah disebutkan di atas. Diberikan bilangan integer non negatif X, X' dan R. Didefinisikan bahwa X' adalah komplemen dari X relatif terhadap R, jika
X + X' = R
. X disebut sebagai bentuk true, sedangkan
X' = R - X
disebut bentuk komplemen. Bentuk komplemen X' = R - X menyatakan bilangan integer negatif X. Sedangkan bentuk true X menyatakan integer positif X.

DEKLARASI STACK PADA BAHASA PEMROGRAMAN

     Dalam bahasa pemrograman, untuk menempatkan stack biasanya digunakan sebuah array. Tetapi perlu diingat di sini bahwa stack dan array adalah dua hal yang berbeda. Misalkan suatu variabel S adalah sebuah stack dengan 100 elemen. Diasumsikan elemen S adalah integer dan jumlah elemennya maksimum adalah 100 elemen. Untuk mendeklarasikan stack dengan menggunakan array, harus dideklarasikan pula variabel lain yaitu TOP_PTR yang merupakan indeks dari array. Variabel TOP_PTR ini digunakan untuk menyatakan elemen yang berada pada posisi TOP dalam stack tersebut. Selanjutnya gabungan kedua variabel ini diberi nama STACK_STRUCT. Kemudian didefinisikan bahwa :

            NOEL(S) = TOP_PTR
            ISEMPTY(S) = TRUE, jika TOP_PTR = 0 dan
                                        FALSE, jika TOP_PTR > 0.

Maka bentuk deklarasinya dalam PASCAL adalah :

            TYPE Stack_Struct = Record
                                       Stack   : array[1..100] of integer;
                                       TopPtr : integer;
                                   End;
            VAR S : Stack_Struct;

Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu prosedur tersendiri, yaitu :




            PROCEDURE PUSH(Eon : integer);
            Begin
                If (S.TopPtr < NoelMax) Then Begin
                                    S.TopPtr := S.TopPtr + 1;
                                    S.Stack [S.TopPtr] := Eon
                                        End
                                Else Overflow_Condition
            End;

            PROCEDURE POP(Eoff : integer);
            Begin
                If (S.TopPtr > 0) Then Begin
                                Eoff := S.Stack[S.TopPtr];
                                S.TopPtr := S.TopPtr - 1
                                     End
                            Else Underflow_Condition   
            End;

Catatan :
Overflow adalah suatu keadaan di mana kita melakukan operasi PUSH terhadap stack dalam keadaan penuh. Underflow adalah keadaan di mana kita melakukan operasi POP terhadap stack kosong. Eon adalah elemen yang akan dimasukkan ke dalam stack dan Eoff adalah elemen yang akan dikeluarkan dari dalam stack.

DEFINISI STACK dan OPERASI DASAR PADA STACK

DEVINISI STACK

Stack adalah suatu bentuk khusus dari linear list di mana operasi penyisipan dan penghapusan atas elemen-elemennya hanya dapat dilakukan pada satu sisi saja yang disebut sebagai “TOP”.
Misal diberikan Stack S sebagai berikut :
    S = [ S1, S2, .........., ST ]   à maka TOP(S) = ST.

    Untuk menunjukkan jumlah elemen suatu stack digunakan notasi NOEL. Dari stack di atas, maka NOEL(S) = T. Selanjutnya, jika diberikan sebuah stack S = [A,B,C,D].

OPERASI DASAR PADA STACK

    Ada empat operasi dasar yang didefinisikan pada stack, yaitu :
    1. CREATE(stack)
    2. ISEMPTY(stack)
    3. PUSH(elemen,stack)
    4. POP(stack)
  • CREATE
    Operator ini berfungsi untuk membuat sebuah stack kosong dan didefinisikan bahwa :
NOEL(CREATE(S)) = 0 dan TOP(CREATE(S)) = null
                       
  • ISEMPTY
    Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong. Operasinya akan bernilai boolean, dengan definisi sebagai berikut :
        ISEMPTY(S) = true, jika S adalah stack kosong
                        = false, jika S bukan stack kosong
    atau
        ISEMPTY(S) = true, jika NOEL(S) = 0
                        = false, jika NOEL(S) ¹ 0

    Catatan :    ISEMPTY(CREATE(S)) = true.

  • PUSH
    Operator ini berfungsi untuk menambahkan satu elemen ke dalam stack. Notasi yang digunakan adalah :

        PUSH(E,S)

    Artinya : menambahkan elemen E ke dalam stack S.

    Elemen yang baru masuk ini akan menempati posisi TOP.
     Jadi : TOP(PUSH(E,S)) = E.
    Akibat dari operasi ini jumlah elemen dalam stack akan bertambah, artinya NOEL(S) menjadi lebih besar atau stack menjadi tidak kosong (ISEMPTY(PUSH(E,S)) = false).
 
  •  POP
    Operator ini berfungsi untuk mengeluarkan satu elemen dari dalam stack. Notasinya :
            POP(S)

    Elemen yang keluar dari dalam stack adalah elemen yang berada pada posisi TOP. Akibat dari operasi ini jumlah elemen stack akan berkurang atau NOEL(S) berkurang dan elemen pada posisi TOP akan berubah. Operator POP ini tidak dapat digunakan pada stack kosong, artinya :

            POP(CREATE(S)) = error condition

Catatan :    TOP(PUSH(E,S)) = E

Definisi RECORD

Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield. Sebagai Contoh, data personalia dari seorang pegawai suatu perusahaan di Amerika Serikat,merupakan sebuah record yang dapat terdiri dari berbagai field, dan subfield seperti berikut ini:

1. NOMOR-JAMINAN-SOSIAL
2. NAMA, yang terdiri atas:
    NAMA-BELAKANG
    NAMA-DEPAN
    NAMA-TENGAH
 
3. ALAMAT, terdiri atas:
     JALAN
     NOMOR RUMAH
     NAMA-JALAN
     KOTA
     NEGARA-BAGIAN
     KODE-POS

Pemetaan Array ke Storage

Seperti halnya struktur data yang lain, ada beberapa cara untuk menyajikan array di dalammemori. Skema penyajian dapat dievaluasi berdasarkan
4 karakteristik, yakni:
1. kesederhanaan dari akses elemen
2. mudah untuk ditelusuri
3. efisiensi dari utilitasi storage
4. mudah dikembangkan
Umumnya tidaklah mungkin untuk mengoptimalkan keempat faktor tersebut
sekaligus. Pandang array satu dimensi NOPEG dengan batas bawah subscript 1, dan batas atas subscript = N. Salah satu cara untuk menyimpan array ini adalah sedemikian sehingga urutan fisik dari elemen sama dengan urutan logik dari elemen. Storage untuk elemenNOPEG(I+1) adalah berdampingan dengan storage untuk elemen NOPEG(I), untuksetiap I = 1, 2, 3,…, N-1. Untuk menghitung alamat (address) awal dari elemen NOPEG(I), diperlukan untuk mengetahui 2 hal yakni:
1. address awal dari ruang storage yang dialokasikan bagi array tersebut.
2. ukuran dari masing-masing elemen array.
Address awal dari array, kita nyatakan dengan B, disebut juga base-location. Misalkan
bahwa masing-masing elemen dari array menduduki S byte. Maka, address awal dari elemenke-I adalah:
B + (I-1) * S
Sekarang kita perluas persamaan di atas untuk mendapat address dari elemen ke-I dari
array yang mempunyai batas bawah subscript tidak sama dengan 1. Perhatikan array Z(4:10),
maka address awal dari Z(6) adalah:
B + (64) * S
Untuk array Z2 (-2:2) misalnya, address awal dari Z2(l) adalah:
B + (I -(-2)) * S
Maka secara umum, untuk array:
ARRAY(L:U),
elemen ARRAY(I) mempunyai address awal
B + (U-L) *

TRINGULAR ARRAY (ARRAY SEGITIGA)

Akan kita tinjau beberapa aspek pelinearan suatu array yang khusus, yakni tringular array. Tringular array dapat merupakan upper tringular (seluruh elemen di bawah diagonal utama = 0) ataupun lower tringular (seluruh elemen di atas diagonal utama = 0). Dalam array lower triangular dengan N baris, jumlah maksimum elemen 0 pada baris ke-I adalah 1, karenanya total elemen 0, tidak lebih dari:
N
Σ I = N ( N+1) / 2
I =I
Rumus ini berlaku pula untuk array upper tringular dengan N baris. Kalau N besar, alangkah baiknya kalau elemen nol tidak usah kita simpan dalam memori. Suatu pendekatanterhadap problema ini adalah dengan pelinearan array, dan dengan hanya menyimpanbagian array yang tidak nol. Misalkan kita menyimpan array upper tringular T secara baris dalam array satu dimensi S, dengan batas subscript I sampai N(N+I)/2. Elemen T(1,1) disimpan sebagai S(1), elemenT(1,2) sebagai S(2) dan seterusnya, sehingga elemen T(1,N) disimpan sebagai S(N). Maka elemen T(2,2) disimpan sebagai S(N+1) (karena T(2,1) = 0). Terakhir sekali, elemenT(N,N) akan disimpan sebagai S(N(N+1)/2). Kadang-kadang suatu program menggunakan lebih dari satu array tringular. Untuk itu kita dapat menyimpan 2 array sekaligus. Misalnya array A upper triangular berorder Nx N dan array B lower triangular berorder (N-1) x (N-1). Mereka dapat kita simpan sebagai array C berorder N x N. Di sini C(l,J) = A(l,J) untuk I = J. Sekarang apabila array A upper tringular berorder N x N sedangkan array B lower tringular, juga berorder N x N, maka array C yang mengandung keduanya harus berorder N x (N+1). Di sini elemen A(I,J) disimpan sebagai C(I,J+1) untuk I = J.

Organisasi Logik & Fisik dari Struktur Data

Memori computer dapat kita bayangkan terdiri atas barisan atau untai sel-sel (masing-masing sel berisi satu binary digit atau bit) dengan alamatnya sekaligus, Setiap untai dirangkai dari sejumlah bit yang ditentukan jumlahnya dalam satu untai oleh model computer tertentu. Struktur data terdiri dari satuan data sederhana yang cocok untuk program yang memakainya. Hubungan antara satuan data tersebut membentuk salah satu cirri dari struktur yang bersangkutan. Jika sebuah struktur data langsung tersedia dalam bahasa pemrograman (misalnya Array terdapat dalam Fortran), maka struktur data tersebut langsung dapat dipakai. Jika struktur tersebut tidak tersedia, maka pemrogram harus membuatnya terlebih dahulu dari type data yang tersedia. Berhubung struktur data tersebut harus dimasukkan ke dalam memori berupa untai bit, maka setiap struktur diberi cirri oleh Organisasi Logikal (perlu ada hubungan antar komponen sewaktu diaplikasikan), dan oleh Organisasi Fisikal (penempatan dalam memori)

ARRAY BERDIMENSI

Pengertian
 
Salah satu Stuktur data yang teramat penting adalah Array atau larik. Array merupakan bagian dasar yang disebut dengan Blok, guna keperluan pembentukan suatu struktur dara yang lebih kompleks. Array merupakan suatu himpunan hingga elemen, terurut dan homogen. 

1.1 Array Dimensi Satu 

Sebuah Array berdimensi satu, yang kita misalkan dengan nama Nilai, seperti gambar berikut :
NILAI (1)
NILAI(2)
--------
NILAI(N)
Subskrips atau indeks dari elemen Array menyatakan posisi elemen pada urutan dalam array tersebut. Secara umum, suatu array dimensi satu A dengan tipe Data T dan subskrip bergerak dari L sampai dengan U, ditulis sebagai A(L:U) = A(I)), I =L, L+1, L+2,…., U dan setiap elemen A(I) bertipe Data T. Harga minimum dari subskrip dari Array disebut batas bawah atau lower bound, sedangkan harga maksimumnya disebut batas atas atau upper bound.
1.2 Array Dimensi Banyak

Sebuah Array dimensi banyak atau multi-dimensional Array didefinisikan sebagai sebuah Array yang elemennya berupa Array juga. Misalnya Array A mempunyai M elemen yang berupa Array yang terdiri dari N elemen. Jika diganbarkan akan berbentuk baris dan kolom, seperti berikut
1 2 N

Untuk itu diperlukan dua buah subskrip, yang pertama digunakan untuk menyatakan baris,sedangkan yang kedua untuk posisi kolom.cross section atau penumpang suatu Array dimensi dua adalah pengambilan salah satu subskrip, misalnya subskripbaris tetap dan supskrip yang satunya lagi kita ubah-ubah sepanjang rangenya.Transposevdari suatu array dimensi dua adalah penulisan baris menjadi kolom dari suatu Array.
1.3 Mendeklarasikan Array Dalam Bahasa Pemograman 

Misalnya kita hendak mendeklarasikan Array BARU yang merupakan Array berdimensi satu dengan nilai subskrip 1 sampai 24 dan masing-masing elemen bertipe Data integer (nilainya antara 0 hingga 99 derajat ).
Dalam Bahasa COBOL dapat ditulis :
01 TABEL- BARU
02 BARU OCCURS 24 TIMES
PIC 99
Dalam Bahasa Pascal :
var BARU : Array [1…24] of Integer
Dalam Bahasa Basic :
12 DIM BARU(24)
Untuk mendeklarasikan sebuah Array dari gaji 100 pekerja untuk 3 proyek, dalam COBOL ditulis
01 TABEL- GAJI
02 MHS OCCURS 100 TIMES
03 PROYEK OCCURS 3 TIMES
PIC 99V9
Dalam PASCAL ditulis
var gaji : Array[1..100,1..3] of real
Dalam BASIC dapat ditulis
08 DIM GAJI(100,8)
1.4 Pemetaan Array Dimensi Satu Ke Storage

Seperti halnya struktur data yang lain, ada beberapa cara untuk menyajikan Araay dindalam memori. Skema penyajian dapat dievaluasi berdasarkan 4 karakteristik, yakni
(1) Kesederhanaan dari akses elemen.
(2) Mudah untuk ditelusuri.
(3) Efisiensi dari utilitasistorage.
(4) Mudah dikembangkan.
Misalnya Array dimensi satu NOPEG dengan batas bawah subskrip 1 dan batas atas supskrip N. Salah satu cara untuk menyimpan Array ini adalahsedemikian sehingga urutan fisik dari elemen sama dengan urutan logic dari elemen. Untuk mengetahui alamat awal dari awal elemen NOPEG(I) dapat diketahui dengan 2 hal yakni :
(1) Address awal dari ruang storage yang dialokasikan bagi Array tersebut
(2) Ukuran dari masing-masing elemen Array.
1.5 Pemetaan Ke Storage Terhadap Array Dimensi Banyak
Karena memori komputer adalah linear, maka Array berdimensi banyak harus dilinearkan apabila akan dipetakan kedalam storage. Salah satu alternative untuk pelinearan tersebut adalah menyimpan pertama kali baris pada Array, kemudian baris kedua dan ketiga dan seterusnya disebut row major order.
Sebagai contoh, Array yang dideklarasikan sebagai BASE(1:4,1:6), yang secara logic dapat di gambarkan sebagai berikut :
1 2 3 4 5 6

1
2
3
4
Rate (2,4)
Gambar 1.1 : Array BASE secara Logik dalam row major order
Gambar 1.2 berikut menggambarkan secara fisik
Baris 1 Baris 2 Baris 3 Baris 4
Gambar 1.6 Array BASE secara fisik dal
1.6 Triangular Array (Array Segitiga)

Tringular array dapat merupakan Upper Traingular ( seluruh elemen di bawah diagonal utama = 0, ataupun Lower Triangular ( Seluruh elemen di atas diagonal uatama = 0). Dalam Array Lower Triangular dengan N baris, jumlah maksimum elemen <> 0 pada baris ke I, karena total elemen <> 0 tidak lebih dari :
N
SIGMA I = N(N+1)/2
I=I
Gambar 1.3 menunjukan Triangular Array berorder 6x6
X X X X X X X 0 0 0 0 0
0 X X X X X X X 0 0 0 0
0 0 X X X X X X X 0 0 0
0 0 0 X X X X X X X 0 0
0 0 0 0 X X X X X X X 0
0 0 0 0 0 X X X X X X X
(a) (b)
Ket : (a) Upper Triangular Array
(b) Lower Triangular Array
1.7 RECORD

Sebuh record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan menggunakan namanya masing-masing. Suatu Field dapat terdiri atas beberapa subfield.
Sebagai contoh, Data personali dari seorang pegawai suatu perusahan di Amerika Serikat, merupakan sebuah Record yang terdapat terdiri dari berbagai field, dan subfield seperti berikut ini:
1. NOMOR JAMINAN SOSIAL
2. NAMA, yang terdiri atas
NAMA BELAKANG
NAMA PERTAMA
NAMA TENGAH
3.ALAMAT,terdiri atas
JALAN
NOMOR RUMAH
KOTA
NEGARA BAGIAN
KODE POS
3.  
MMENIKAH
 
Seperti telah kita jelaskan terdahulu, Array berbeda dengan Record, yakni Array bersifat homogeny (terdiri dari type yang sama), dan komponen Array tidak memiliki mana sendiri, dan hanya diberi identifikasi oleh posisi mereka di dalam Array.
Pada umumnya record disimpan membentuk File, dalam urutan sesuai dengan nilai dari key masing-masing.

PEMETAAN ARRAY KE STORAGE

PEMETAAN ARRAY DIMENSI SATU KE STORAGE

Seperti halnya struktur data yang lain, ada beberapa cara untuk menyajikan array di dalam memori. Skema penyajian dapat dievaluasi berdasarkan 4 karakteristik, yakni :
 
1. kesederhanaan dari akses elemen
2. mudah untuk ditelusuri
3. efisiensi dari utilitasi storage
4. mudah dikembangkan

Umumnya tidaklah mungkin untuk mengoptimalkan keempat faktor tersebut sekaligus. Pandang array satu dimensi NOPEG dengan batas bawah subscript 1, dan batas atas subscript = N. Salah satu cara untuk menyimpan array ini adalah sedemikian sehingga urutan fisik dari elemen sama dengan urutan logik dari elemen. Storage untuk elemen NOPEG(I+1) adalah berdampingan dengan storage untuk elemen NOPEG(I), untuk setiap I = 1, 2, 3,..., N-1. Untuk menghitung alamat (address) awal dari elemen NOPEG(I), diperlukan untuk mengetahui 2 hal yakni :

1. address awal dari ruang storage yang dialokasikan bagi array tersebut.
2. ukuran dari masing-masing elemen array.

Address awal dari array, kita nyatakan dengan B, disebut juga base-location. Misalkan bahwa masing-masing elemen dari array menduduki S byte.
Maka, address awal dari elemen ke-I adalah :
 
B + (I-1) * S

Sekarang kita perluas persamaan di atas untuk mendapat address dari elemen ke-I dari array yang mempunyai batas bawah subscript tidak sama dengan 1. Perhatikan array Z(4:10), maka address awal dari Z(6) adalah :

B + (64) * S

Untuk array Z2 (-2:2) misalnya, address awal dari Z2(l) adalah :
 
B + (I -(-2)) * S

Maka secara umum, untuk array :
 
ARRAY(L:U),

elemen ARRAY(I) mempunyai address awal
B + (U-L) * S


PEMETAAN KE STORAGE TERHADAP ARRAY DIMENSI BANYAK

Karena memori komputer adalah linear, maka array dimensi banyak harus dilinearkan
apabila akan dipetakan ke dalam storage. Salah satu alternatif untuk pelinearan tersebut adalah menyimpan pertama kali baris pertama dari array, kemudian baris ke-2, baris ke-3 dan seterusnya. Ini disebut row major order.

Misalkan B adalah base-location dari array RATE tersebut, dan masing-masing elemen
dari array berukuran S. Address awal dari elemen RATE(I,J) adalah :

B + (I-1) * 6 * S + (J-1) * S

karena ada I-1 baris, masing-masing dengan panjang 6 * S, sebelum baris elemen
RATE(I,J) terletak, dan terdapat J- 1 elemen, masing-masing dengan panjang S sebelum
elemen RATE(I,J) pada baris ke-I. Jadi, pada contoh di atas RATE(2,4) mempunyai
address awal :

B+ (2-1) * 6 * S + (4-1) * S = B + 9 * S

Secara umum elemen ARRAY(I,J) dari array yang didefinisikan sebagai
ARRAY(L1:U1, L2 : U2) mempunyai address awal :

B + (I-L1) * (U2 -L2+ 1) * S + (J-L2) * S

Terdapat 2 baris (I-L1, 0 – (-2)) sebelum baris nol, yang masing-masing panjangnya 3*
S(U2-L2+1 = 6-4+1) dan terdapat 2 elemen (J-L2 = 6-4) pada baris ke nol sebelum elemen Z (0,6). Jadi address awal dari Z(0,6) adalah :

B + 2 * 3 * S + 2 * S = B + 8 * S

Alternatif lain untuk melinearkan array dimensi dua adalah dengan menyimpan
elemen dalam column major order, yakni pertama kali menyimpan kolom pertama, lalu
kolom kedua, kolom ketiga dan seterusnya.

Dengan mudah dapat diterangkan bahwa pada array RATE di atas, elemen RATE(I,J)
mempunyai address awal B + (J - 1) * 4 * S + (I - 1) * S, sehingga RATE(2,4) akan
mempunyai address awal B + (4-1) * 4 * S + (2-1) * S = B + 13 * S. Jadi kita harus
waspada andaikata kita mempunyai array yang ditulis dalam rutin FORTRAN, kemudian
akan kita tulis dalam bahasa lain (COBOL, PL/1 atau Pascal). Secara umum, elemen
ARRAY(I,J) dari array yang didefinisikan sebagai ARRAY(L1:U1,L2 :U2), menggunakan
address awal :

B + (J-L2) * (U1-L1 +1) * S + (I-L1) * S

Misalkan array A berorder 50 x 225. Hendak dihitung jumlah / total elemennya. Kalau
dipergunakan column-major storage, dapat kita buat, dalam COBOL.
COMPUTE TOTAL = 0.
PERFORM SUM-UP VARYING J
FROM 1 BY 1 UNTIL J > 225
AFTER 1 FROM 1 BY 1 UNTIL I > 50.


dalam hal ini
SUM-UP.
TOTAL = TOTAL + A(I,J).

Dalam Pascal dapat kita tulis :

Total := 0;
for j = 1 to 225 do
for i = 1 to 50 do
total := total + a[I,j];


Kalau dipergunakan row-major storage, kita dapat tulis dalam COBOL sebagai berikut :
COMPUTE TOTAL = 0.
PERFORM SUM-UP VARYING 1
FROM 1 BY 1 UNTIL I > 50
AFTER J FROM 1 BY 1 UNTIL J > 225

dalam hal ini
SUM-UP.
TOTAL = TOTAL + A(I,J).

dan dalam Pascal dapat ditulis

total:=0;
for i := 1 to 50 do
for j := 1 to 225 do
total := total + a[i,j];

DEKLARASI DATA PASCAL

Deklarasi Variable

Mendeklarasikan varibel adalah:
a. Memberikan nama variabel sebagai identitaspengenal
b. Menentukan tipe data variabel
  • Contoh deklarasi variabel:
Var K : integer;
R : real;
C : char;
T : boolean;

Variabel yang sejenis
  • Beberapa identivier yang sejenisbisa dideklarasikan bersamaan.
  • Contoh var i, j, k : integer;{Variabel i, j dan k sebagai integer} namaMHS, alamatMHS : char; {Nama dan alamat mahasiswa }
Konstanta 
  • Deklarasi Konstanta : Mendeklarasikan konstanta adalah:
         a. Memberikan nama konstanta sebagai identitas pengenal
         b. Menentukan nilai konstanta
  • Contoh deklarasi konstanta: const MaximumSize = 100; {integer }ExitCommand = 'Q'; {char } 
 Deklarasi Type
Pengenal (identifier) dari data yang digunakan harus diperkenalkan Tipenya. Jika ingin menggunakan tipe data dengan nama yang dibuat oleh pemakai, maka harus disebutkan tipe data standarnya.

Contoh dengan Type
  • Contoh dengan tipe
Type
     Nm : String[25];
     Kls : String[7];
     Nil : Integer;
     Gr : Char;

Var
     Nama : Nm;
     Kelas : Kls;
     Nilai : Nil;
    Grade : Gr;

Contoh Tanpa Type

Var Nama : String[25];
     Kelas : String[7];
     Nilai : Integer;
    Grade : Char;

Contoh program:

program TAMBAH_00; { Menjumlahkan dua bilangan yang nilainya diberikan dalam perintah} var angka1, angka2, hasil: integer; { Deklarasi variabel sebagai bilangan bulat }BEGIN { Program Utama Mulai } angka1 := 50; { Perintah memberikan nilai 50 pada var. angka1 } angka2 := 25; { Perintah memberikan nilai 25 pada var. angka2 } hasil := angka1 + angka2; { Perintah menjumlahkan serta menyimpan hasilnya ke hasil} Write(hasil); {perintah mencetak hasil} END. { Akhir Program Utama }

TIPE - TIPE DATA PASCAL

Secara umum, tipe data dalam pemrograman Pascal adalah:
– Tipe data sederhana
Tipe data standard (standard data type)
--> Integer, Real, Boolean, Char, dan String

Tipe data didefinisikan pemakai (user defined data type)
--> subrange dan enumerasi

– Tipe data terstruktur
--> Array, record, set, file

– Tipe data penunjuk
--> Pointer

Tipe Data Sederhana

Disebut juga dengan tipe data skalar, yang bisa diartikan bahwa dalam sebuah perubah hanya dimungkinkan untuk menyimpan sebuah nilai data. Tipe data sederhana terbagi dua yaitu, tipe ordinal dan tipe real.

1. Tipe ordinal adalah subset dari tipe sederhana. Semua tipe sederhana disebut tipe ordinal kecuali real. Karakteristik tipe data ordinal adalah :
  • Semua kemungkinan nilai dari sutu tipe ordinal merupakan himpunan berurutan (ordered set), dan setiap nilai berkaitan dengan ordinalitasnya, yaitu nilai integral. Dalam semua tipe, kecuali tipe integer, nilai pertama mempunyai ordinalitas 0, yang berikutnya 1 dan seterusnya. Ordinalitas dari tipe integer adalah nilai integer itu sendiri. Dalam hal ini semua nilai, kecuali yang pertama, mempunyai nilai pendahulu atau predesesor, dan semua nilai kecuali yang terakhir mempunyai suksesor.
  • Fungsi standard ord dapat diterapkan pada sembarangan tipe ordinal untuk mengetahui ordinalitasnya.
  • Fungsi standard pred dapat diterapkan untuk mengetahui predesesornya. Jika fungsi ini diterapkan pada nilai pertama, akan menyebabkan kesalahan.
  • Fungsi standard succ dapat diterapkan untuk mengetahui suksesornya. Jika fungsi ini diterapkan pada nilai terakhir akan menyebabkan kesalahan.
2. Konstanta bertipe real adalah bilangan yang berisi titik desimal. Dalam pascal paling sedikit harus ada satu digit sebelum dan sesudah titik desimal. Tidak boleh ada koma dan nilainya bisa positif atau negatif. Bilangan riil juga bisa dinyatakan dalam bentuk eksponensial. Dalam pemakaiannya pangkat dari bilangan dasar 10 (yang digunakan untuk menunjukkan eksponensial) dinyatakan dengan notasi E. Jika dinyatakan dalam notasi Eksponensial, maka bilangan :
0.00017543 adalah 1.7543E-4

Dalam Turbo Pascal terdapat lima macam tipe riil, yaitu : real, single, double, extended dan comp. Tipe single, double, extended dan comp hanya bisa digunakan jika komputer anda dilengkapi dengan koprosesor numeris 80x87.Tipe comp hanya bisa menyimpan nilai bulat (whole value) yang mempunyai batasan -263 + 1 sampai 263 – 1. Operator yang dapat dioperasikan pada data tipe riil tersaji dalam tabel 2. Perhatikan bahwa operator pembagian untuk data integer (div) dan untuk real (/) akan memberikan hasil berbeda. Operator / dapat digunakan baik untuk data integer atau untuk data real, yang hasilnya berupa data real.

Bilangan-bilangan riil banyak digunakan dalam perhitungan-perhitungan matematika, sains dan rekayasa dimana derajat ketelitian kadang-kadang sangat diperhatikan. Beberapa kesalahan mungkin akan terjadi sehubungan dengan pemakaian bilangan riil karena bilangan riil biasanya dinyatakan dalam notasi saintifik yang mempunyai cacah digit yang tetap. Beberapa bilangan memerlukan cacah digit yang tak terhingga. Sebagai
contoh, pecahan 1/3 yang jika dinyatakan dalam bilangan riil. Akan mempunyai bentuk 0.3333333….

Tipe String

Data yang bertipe string adalah data yang berisi sederetan karakter yang banyaknya karakter bisa berubah-ubah sesuai dengan kebutuhan, yaitu dari 1 sampai 255 karakter. Tipe string yang tidak dinyatakan panjang karakternya dianggap mempunyai 255 karakter. 

Tipe Terstruktur

Dalam tipe terstruktur setiap perubah bisa menyimpan lebih dari sebuah nilai data. Masing-masing nilai data tersebut disebut dengan komponen. Tipe terstruktur karakteristiknya ditentukan berdasar cara penstrukturan dan tipe masing-masing komponen. Jika komponennya juga bertipe terstruktur, tipe terstruktur yang dihasilkan mempunyai lebih dari sebuah tingkat penstrukturan. Tingkat penstrukturan bisa tak terbatas. Ukuran tipe terstruktur dalam Turbo Pascal maksimum 65520 byte.

Tipe Pointer

Semua tipe data yang disebutkan di atas, apabila digunakan untuk mendeklarasikan suatu perubah, maka sifat perubah tersebut adalah perubah yang statis. Pascal dilengkapi fasilitas yang memungkinkan pemakai untuk menggunakan perubah yang sifatnya dinamis, yang disebut dengan pointer.

Selasa, 23 Februari 2010

When You Believe - Mariah Carey

Many nights we’ve prayed
With no proof anyone could hear
In our hearts a hopeful song
We barely understood
Now we are not afraid
Although we know there’s much to fear
We were moving mountains long
Before we knew we could
 
There can be miracles
When you believe
Though hope is frail
It’s hard to kill
Who knows what miracles
You can achieve
When you believe
Somehow you will
You will when you believe

In this time of fear
When prayer so often proves in vain
Hope seems like the summer birds
Too swiftly flown away
Yet now i’m standing here
My heart’s so full, i can’t explain
Seeking faith and speaking words
I never thought i’d say

They don’t always happen when you ask
And it’s easy to give in to your fears
But when you’re blinded by your faith
Can’t see your way through the rain
Honesty will reveal all
When hope is very near

Senin, 22 Februari 2010

Suara Hati Seorang Kekasih - Melly Goeslaw

Hanya namamu, di hatiku,
jiwa dan raga, tak ‘kan berdusta
Namun terkadang cinta terusik, benci, sesaat

Seribu musim, tak ‘kan bisa,
menghibur hati, yang penuh marah
Entah mengapa berpisah saat mulai, menjalin

Suara hati seorang kekasih,
bagai nyanyian surgawi,
tak ‘kan berdusta,
walau ketamakan
merajai diri yang penuh emosi,
jauh, didasar hatiku,
tetap ku mau,
kau sebagai, ka-sihku

Someone Like You

Never Thought You Came Into My Life
It Makes My Life Brighter
It Makes My Dreams Come True
You Bring Life To Everything I Do
Our Love is Sincere
for The Last forever

I Love You
And You Know My Love is True
It Will Never End
Till The End Of Time
I Will Never find Someone Like You
But I Have To Go on and I Still Will Go On
I Will Never find Love Like Yours
And Those Sweet Memories It Will always Last forever

Sabtu, 20 Februari 2010

KEHUJANAN

tadi aku kehujanan pas lagi di sunter bersamanya ..
romantiss deh .. moment itu jarang sekali terjadi ..
aku senang sekali
terakhir moment seperti itu terjadi di cibatok itupun ada beramtemnya juga

Jumat, 19 Februari 2010

hariku

ketika senja mulai menampakkan dirinya
itu pertanda akan dimulainya hari baru dengan kegiatan yang baru
aku bergegas memulainya dengan semangat
dan berharap semua akan berjalan dengan baik
lebih baik dari kemarin
tapi, apabila harapan itu tak sesuai
semangat itupun mulai hilang
rasanya ingin segera berganti hari ..

tips hidup sehat asal2an

  • bangun pagi kira2 jam 5 pagi
  • shalat subuh
  • olahraga minimal 1/2 jam
  • mandi
  • makan secukupnya. jangan sampe ngerasa kenyang (makan sblm laper, berhenti sebelum kenyang : kata Nabi Muhammad SAW)
  • beraktifitas
  • makan siang pake mknan yg berat karena masih akan beraktifitas
  • shalat dzuhur
  • pulang sampe rumah jgn langsung mandi istirahat sbntar
  • mandi
  • shlt ashar
  • santai
  • shatat magrib dan isya
  • makan sedikit aja karena mkn mlm itu bikin gemuk
  • santai, baca buku atau apalah
  • tidur sekitar jam 9 mlm
mohon maaf kalo ada yg kurang. namanya juga asal2an.

tips merawat wajah asal2an

  • cuci muka setiap hari
  • jangan menyentuh muka kalo tangan lagi kotor soalnya bisa timbul jerawat
  • terus kalo pergi2 pake masker buat nutupin muka ya.. minimal nutupin pipi soalnya debu n kotoran yg ada dijalanan bisa timbulin jerawat juga
  • kalo mukanya blm pernah pake kosmetik apapun jgn pernah coba2 dah ntar malah bikin ancur .. lebih baik cuci muka pake air biasa aja tapi tangannya harus bersih
  • kalo mukanya gampang berminyak mending pake peeling tiap mau tidur seminggu 2 kali
  • pake marker juga boleee

hahaha sotoy bgd ya gw. tapi itu yg gw terapin tiap hari