Sabtu, 27 Maret 2010
Isu Politik Uang Beredar di Muktamar NU
Sesuai tata tertib, pemilihan dilakukan dalam dua tahap. Tahap pertama adalah penetapan masing-masing calon. Minimal satu calon dipilih oleh 99 suara. Setelah penetapan calon dilanjutkan dengan pemilihan Ketua Syuriah PB NU. Sampai saat ini ada 503 pemegang suara yang berhak memilih para calon.
Sementara itu, kandidat calon Rais AM hingga kini ada dua, yakni KH Sahal Mahfudz dan KH Hasyim Muzadi. Sedangkan untuk calon Ketua PB NU adalah K.H. Salahuddin Wahid dan K.H. Said Agil Siradj [baca: Dukungan Mulai Mengerucut ke Dua Figur].
Sempat beredar isu soal money politics di arena muktamar. Beredar kabar masing-masing cabang telah menerima uang lima juta rupiah agar memilih calon tertentu. Kabar ini sempat diakui Hasyim Muzadi. Namun hal ini dibantah Said Agil, termasuk soal dukungan dari partai politik tertentu. Di tempat terpisah, pendukung Salahuddin Wahid membuat kontrak politik untuk tidak mengalihkan dukungan kepada calon tertentu.
Muktamar NU ke-32 di Makassar, Sulawesi Selatan, juga dihadiri peninjau dan pengamat luar negeri. Salah satunya adalah Prof Mitsuo Nakamura, peneliti dari Ciba Uninersity Jepang. Mitsua Nakamura sudah tujuh kali mengikuti muktamar. Menurut dia, NU mempunyai posisi unik baik dikancah nasional maupun internasional
sumber:Isu Politik Uang Beredar di Muktamar NU
Pabrik Ekstasi Serpong Dikendalikan Napi Cipinang
Menurut Armad, Kebot adalah terpidana kasus narkoba yang dihukum 13 tahun penjara pada 2007. Kebot terungkap mengendalikan operasional pabrik ekstasi rumahan itu melalui telepon selular. Bahkan Kebot juga diduga terlkait kasus penjualan barang bukti narkoba sebanyak 400 butir yang melibatkan jaksa Ester Thanak.
Sebelumnya, anggota Direktorat IV Narkoba Bareskrim Mabes Polri menggerebek pabrik ekstasi di Perumahan Graya Raya Cluster Cendana Loka P1 No.31, Serpong Utara, Tangerang Selatan. Dalam penggerebekan itu, polisi mengamankan enam tersangka, yakni AS (pria), AB alias PB alias AT (pria), DW alis OK alis VV alias AN (wanita), YD (pria) dan NH (wanita), serta seorang lainnya yang diduga anggota TNI yang bertugas di Kodim Depok.
Selain itu, polisi juga menyita 12 ribu pil ekstasi siap edar, lima kilogram bahan baku ekstasi berikut peralatannya dan satu unit senjata api jenis FN
sumber: Pabrik Ekstasi Serpong Dikendalikan Napi Cipinang
Dua Ledakan Bom Tewaskan 20 Orang
Pejabat keamanan setempat mengatakan, bom pertama meledak di sebuah kedai kopi di Kota Khalis, sekitar 65 kilometer utara Baghdad. Selang lima menit, bom kedua meledak di restoran yang tidak jauh dari lokasi pemboman pertama.
Sebelumnya, pihak keamanan telah meningkatkan keamanan menyusul penundaan pengumuman hasil akhir pemilu parlemen [baca: Khawatir Rusuh, Pengumuman Pemilu Irak Terancam Ditunda]. Namun, pemboman dan penembakan sporadis tetap terjadi di Baghdad dan bagian utara Irak.
Pemerintahan Irak baru berikutnya diperkirakan akan menghadapi tugas berat dalam menangani kekerasan dan menjaga stabilitas keamanan menjelang penarikan seluruh pasukan AS di Irak.(ADDY/SHA)
sumber: Dua Ledakan Bom Tewaskan 20 Orang
Porsche Luncurkan Jam Tangan Selam
Seperti dirilis situs autoevolution, perusahaan asesoris asal Jerman mengeluarkan produk yang diprediksi mampu bertahan di kedalaman hingga 1.000 meter. Bahkan, jam tangan berbahan titanium, stainless steel dan strap karet, itu juga memiliki fitur yang mudah terbaca walau dalam gelap.
P`6780 dilengkapi mekanisme gerakan otomatis ETA 2892-A2 sehingga mampu menunjukkan waktu secara akurat. Bahkan, ketika tidak dipakai dipakai. Jam tangan otomatis itu memiliki cadangan tenaga hingga 42 jam.
Tidak hanya itu, arloji itu juga memiliki penunjuk tanggal pada posisi angka 9. Sedangkan petunjuk durasi penyelaman ditunjukkan lewat cincin perimeter yang melingkari panel depan dan dapat diputar berlawanan dengan arah jarum jam.
Porsche memproduksi jam tangan sejak 25 tahun lalu, Ocean 2000. Bahkan, produk itu didesain oleh pendirinya Prof. FA Porsche pada 1983.(ADDY/SHA)
sumber:http://gayahidup.liputan6.com/berita/201003/269697/Porsche.Luncurkan.Jam.Tangan.Selam
Tak Ada Wakil Indonesia di Final
JAKARTA, Kompas.com - Para pemain Indonesia gagal lolos ke babak final kejuaraan bulu tangkis Asia U-19 setelah tiga wakil terakhir tumbang di babak semifinal, Sabtu (27/03).
Tunggal putera Evert Sukamta tersingkir setelah gagal menyisihkan pemain Malaysia, Sheng Loh Wei. dalam pertandingan di stadion Bukit Jalil, Kuala Lumpur ini. Evert menyerah dalam dua game 17-21 14-21.
Di babak sebelumnya, Evert mengalahkan pemain China, Cai Ruiqing 20-22 21-10 21-9. Di babak final, Loh Wei Shing akan menghadapi pemian China lainnya, Huang Yuxiang.
Di nomor ganda putera, pasangan Dandi Prabudita/Jones Ralfi Jansen juga gagal ke final setelah disingkirkan unggulan pertama asal Malaysia, Kheng Ye Hong/Han Ow Yao. Dandi/Jones menyerah mudah 10-21 7-21 dalam 25 menit.
Kegagagaln kemduian dilengkapi di nomor ganda campuran. Ganda Ricky Karanda Suwardi/haris Della Destiara tidak berdaya saat menghadapi unggulan pertama asal Malaysia, Han Ow yao/Pei Jing lai 19-21 19-21 dalam 35 menit.
contoh penerapan stack dalam keseharian
Contoh dalam Tumpukan Piring:
Keterangan Stack:
1. Piring yang pertama diletkkan dibagian yang paling bawah.
2. Hingga Piring yang ke-6.
3. Jika Mengambil Piring selalu yang paling atas yang diambil.
4. Dengan begitu metode LIFO dapat digunakan.
sumber:http://gudangilmubaru.blogspot.com/2010/03/contoh-penerapan-stack-dalam-keseharian.html
contoh penerapan queue dalam kehidupan
EnQueue : Masukkan data ke dalam antrian
DeQueue : Mengeluarkan data terdepan dari antrian
Clear : Menghapus seluruh antrian
IsEmpty : Memeriksa apakah antrian kosong
IsFull : Memeriksa apakah antrian penuh
Dalam pembelian tiket kereta api:
Enqueue : Seseorang membeli tiket melalui tempat pembayaran tiket yang disediakan.
Dequeue : Setelah membeli tiket, langsung menuju tempat penungguan kereta, dengan sebelumnya petugas memeriksa cek tiket tersebut.
Clear : Pembeli tiket tersebut telah terhapus dari antrian karena sudah melewati pembayaran administrasi tersebut.
IsEmpty : Petugas tiket Kereta melihat tidak ada lagi yang ingin membeli tiket kereta.
IsFull : Petugas Tiket Kereta melihat masih ada pembeli tiket kereta.
sumber:http://gudangilmubaru.blogspot.com/2010/03/contoh-penerapan-queue-dalam-kehidupan.html
QUEUE (ANTRIAN)
Operasi-operasi dasar dari sebuah queue adalah :
1. Enqueue : proses penambahan elemen di posisi belakang
2. Dequeue : proses pengambilan elemen di posisi depan
Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat dilakukan terhadap sebuah queue yaitu :
1. Operasi pemeriksaan queue kosong (fungsi kosong)
2. Operasi pemeriksaan queue penuh (fungsi penuh).
3. Operasi inisialisasi queue (fungsi inisialisasi)
Adapun presentasi queue dapat dilakukan dengan 2 cara yaitu :
Dengan menggunakan array statis
Operasi-operasi yang dapat dilakukan dalam queue yang menggunakan representasi array statis adalah :
1.1. Pendeklarasian sebuah queue
Setiap queue memiliki elemen-elemen (field) berupa posisi depan, posisi belakang, elemen antrian, dan maksimal elemennya.
Adapun pendeklarasian queue dalam bahasa C adalah :
#define maks 5
struct TQueue{
int depan,belakang;
int maks_queue;
int antrian[maks];
};
TQueue Q,Queue,Q2;//deklarasi variable bertipe TQueue
1.2. Inisialisasi Queue
Inisialisasi queue adalah proses pemberian nilai 0 untuk field depan dan belakang dari queue dan juga pemberian nilai maks ke maks_queue yang menunjukan banyaknya maksimal data dalam queue.
Karena dalam bahasa C elemen sebuah array dimulai dengan 0 maka proses inisialisasi nilai depan dan belakang bukan 0 tetapi -1 sehingga ketika ada proses penambahan elemen (enqueue) akan bernilai 0 sehingga elemen tersebut akan disimpan dalam elemen antrian pada posisi 0.
Implementasi fungsi inisialisasi queue dalam bahasa C adalah
void inisialisasi(TQueue *Q)
{
Q->maks_queue=maks;
Q->depan=-1;
Q->belakang=-1;
}
Cara pemanggilannya adalah :
Inisialisasi(&Q);
1.3. Fungsi Kosong
Fungsi kosong digunakan untuk memeriksa apakan keadaan queue tidak memiliki elemen. Fungsi kosong didapatkan dengan memeriksa field belakang dari queue. Jika field belakang bernilai 0 maka berarti queue kosong dan jika tidak 0 maka berarti queue mempunyai elemen.
Implementasi dalam bahasa C agak berbeda karena elemen array dimulai dari 0 sehingga pemeriksaan nilai belakang dilakukan dengan membandingkannya dengan nilai -1. Jika nilai belakang bernilai -1 maka queue kosong (true) dan jika lebih dari -1 berarti queue tidak kosong (false). Sehingga implementasinya dalam bahasa C adalah :
int kosong(TQueue Q)
{
if (Q.belakang==-1)
return 1;
else
return 0;
}
Cara pemanggilannya adalah :
if(kosong(Q))// jika queue Q kosong
……
1.4. Fungsi Penuh
Fungsi penuh berguna untuk memeriksa apakah suatu queue telah penuh. Fungsi ini diperlukan ketika proses enqueue. Fungsi ini akan bernilai benar (true) jika field belakang sama dengan nilai maks_queue jika tidak sama dengan berarti queue belum penuh.
Dalam bahasa C perbandingan yang dilakukan adalah bukan dengan maks_queue tetapi dengan nilai maks_queue-1 karena elemen array dalam bahasa C dimulai dari posisi 0. Implementasi dalam bahasa C adalah :
int penuh(TQueue Q)
{
if(Q.belakang==Q.maks_queue-1)
return 1;
else
return 0;
}
Cara pemanggilannya adalah :
If(!penuh(Q)) //if queue Q tidak(!) penuh
.....
1.5. Operasi Enqueue
Proses enqueue adalah proses untuk penambahan di posisi belakang. Penambahan ini dilakukan jika kondisi queue tidak penuh. Jika keadaan masih kosong, maka field depan dan belakang bernilai 1 tetapi jika sudah mempunyai elemen maka yang nilai belakang harus bertambah 1. Kemudian data baru disimpan di array pada posisi belakang.
Implementasi dalam C harus melakukan penyesuaian karena elemen array C dimulai dari 0 sehingga ketika queue masih kosong pemberian nilai depan dan belakang adalah 0 bukan 1. Untuk lebih jelasnya perhatikan potongan program di bawah ini :
void enqueue(TQueue *Q, int data)
{
if(!penuh(*Q))
{
if(empty(*Q)
{
Q->depan=0;
Q->belakang=0;
}
else
Q->belakang++;
Q->antrian[Q->belakang]=data;
}
else
printf("Queue Telah Penuh\n");
}
Cara penggunaannya :
int data=7
enqueue(&Q,data);
1.6. Operasi Dequeue
Operasi dequeue adalah proses pengambilan elemen queue. Tentunya elemen yang diambil selalu dari elemen pertama (1). Setelah elemen pertama diambil, maka akan diperlukan proses pergeseran elemen data setelah elemen data yang diambil (dari posisi ke-2 sampai posisi paling belakang), dan kemudian posisi belakang akan dikurangi 1 karena ada data yang diambil.
Implementasi dalam bahasa C dilakukan dengan pengambilan elemen pada posisi 0, sehingga fungsi dequeue-nya menjadi :
int dequeue(TQueue *Q)
{
int data,i;
if(!kosong(*Q))
{
data=Q->antrian[Q->depan];
for(i=0;i<=Q->belakang-1;i++)
Q->antrian[i]=Q->antrian[i+1];
Q->belakang--;
return data;
}
else
{
printf("Queue Kosong.\n");
return 0;
}
}
Cara penggunaan fungsi tersebut adalah :
int data;
data=dequeue(&Q); //ambil data dari dequeue pada queue Q
printf(“%d”,data);
2. Dengan menggunakan linked list.
Proses penyimpanan elemen queue dalam linked list mirip dengan operasi pada single linked list yang menggunakan penyimpanan tambah akhir dan hapus awal.
Operasi Enqueue
Proses enqueue dalam queue linked list adalah dengan menambahkan elemen baru ke posisi paling belakang (sambungkan field berikutnya dari field belakang ke posisi pointer baru). Setelah itu, pointer penunjuk belakang harus berpindah ke posisi baru tersebut. Proses ini seperti proses penambahan di belakang pada single linked list.
Operasi Dequeue
Proses dequeue untuk queue linked list adalah dengan mengambil data yang ditunjuk pointer depan dan kemudian pointer yang depan tersebut diambil dan kemudian dihapus. Pointer depan harus berpindah ke elemen antrian berikutnya. Proses tersebut dilakukan hanya jika linked list tidak kosong. Proses ini mirip dengan proses penghapusan data awal pada single linked list.
QUEUE DENGAN CIRCULAR ARRAY
Jika kita menggunakan array untuk queue seperti di atas, maka ketika ada proses pengambilan (dequeue) ada proses pergeseran data. Proses pergeseran data ini pasti memerlukan waktu apalagi jika elemen queue-nya banyak. Oleh karena itu solusi agar proses pergeseran dihilangkan adalah dengan metode circular array.Atau agar lebih jelas, array di atas dapat dibayangkan ke dalam bentuk seperti lingkaran di bawah ini. Aturan-aturan dalam queue yang menggunakan circular array adalah :
1. Proses penghapusan dilakukan dengan cara nilai depan (front) ditambah 1 : depan=depan + 1.
2. Proses penambahan elemen sama dengan linear array yaitu nilai belakang ditambah 1 : belakang=belakang + 1.
3. Jika depan = maks dan ada elemen yang akan dihapus, maka nilai depan = 1.
4. Jika belakang = maks dan depan tidak 1 maka jika ada elemen yang akan ditambahkan, nilai belakang=1
5. Jika hanya tinggal 1 elemen di queue (depan = belakang), dan akan dihapus maka depan diisi 0 dan belakang diisi dengan 0 (queue kosong).
Operasi-operasi yang dapat terjadi dalam queue yang menggunakan circular array adalah :
1. Pendeklarasian Queue
Setiap queue memiliki elemen-elemen (field) berupa posisi depan, posisi belakang, elemen antrian, dan maksimal elemennya.
2. Inisialisasi Queue
Inisialisasi queue adalah proses pemberian nilai 0 untuk field depan dan belakang dari queue dan juga pemberian nilai maks ke maks_queue yang menunjukan banyaknya maksimal data dalam queue.
Karena dalam bahasa C elemen sebuah array dimulai dengan 0 maka proses inisialisasi nilai depan dan belakang bukan 0 tetapi -1 sehingga ketika ada proses penambahan elemen (enqueue) akan bernilai
3. Fungsi Kosong
Suatu queue yang menggunakan circular array dapat dikatakan kosong jika nilai yang menunjuk posisi depan atau belakang mempunyai nilai 0.
Implementasi dalam bahasa C, perbandingan posisi depan atau belakang dilakukan bukan dengan angka 0 tetapi angka -1 karena angka 0 menunjukan elemen pertama dari array.
4. Fungsi Penuh
Suatu queue akan disebut penuh jika terjadi 2 hal yaitu jika nilai depan mempunyai nilai 1 dan posisi belakang sama dengan maks_queue atau jika posisi depan sama dengan posisi belakang +1. Jika salah satu dari 2 hal tersebut terjadi maka fungsi penuh mempunyai nilai true dan jika tidak terjadi 2 hal tersebut maka fungsi bernilai false.
Implementasi dalam bahasa C agar beda karena posisi awal array bukan 1 tapi 0 dan posisi terakhir data adalah maks_queue-1 bukan maks_queue.
5. Operasi Enqueue
Proses enqueue data hanya bisa dilakukan jika queue tidak kosong. Ada beberapa hal yang harus diperhatikan ketika akan melakukan enqueue pada circular array, diantaranya adalah :
- Kondisi ketika queue masih kosong. Jika ini terjadi, maka posisi depan dan belakang bernilai 0.
- Ketika ketika nilai belakang sama dengan maks_queue, maka posisi belakang adalah 0. Ini terjadi ketika posisi depan lebih besar dari 0 (pernah ada dequeue).
- Ketika nilai belakang masih lebih kecil dari maks_queue maka posisi belakang ditambah 1 : belakang=belakang+1;
Dari ketentuan-ketentuan di atas dapat diimplementasikan dalam bahasa C dengan mengganti beberapa hal yaitu posisi perbandingan/pengisian dengan nilai 0 diganti dengan perbandingan/pengisian dengan nilai -1 dan perbandingan dengan nilai maks_queue diganti dengan maks_queue-1. Itu disebabkan karena dalam bahasa C array dimulai dari 0.
6. Operasi Dequeue
Proses dequeue hanya bisa dilakukan jika queue dalam keadaan tidak kosong. Ada beberapa kondisi yang harus diperhatikan ketika dequeue elemen queue yaitu :
- Kondisi ketika posisi depan sama dengan posisi belakang (queue hanya memiliki 1 elemen) maka nilai depan dan belakang diisi dengan 0 (queue kosong).
- Jika posisi depan sama dengan posisi maks_queue maka posisi depan berpindah ke 1.
- Selain itu, posisi depan ditambah dengan 1 : depan=depan+1
Ketika kita mengimplementasikannya dalam bahasa C, maka ada beberapa hal yang harus diganti adalah semua pengisian/perbandingan dengan angka 1 diganti dengan 0 (karena elemen array dalam bahasa C adalah 0), serta ketika ada perbandingan/pengisian dengan nilai 0 diganti dengan -1 dan perbandingan/pengisian dengan nilai maks_queue diganti dengan maks_queue-1.
sumber:http://if.unikom.ac.id/andri/download/strukdat/Queue.pdf
Jumat, 26 Maret 2010
Tiga Cara Bertahan di Masa Sulit
SETIAP orang mungkin pernah menghadapi masa-masa sulit seperti kehilangan pekerjaan, ditinggalkan orang yang dikasihi, atau ketika terjerat masalah finansial. Apa pun masalahnya, jangan biarkan diri Anda terjerat kesedihan dan kehilangan pegangan.
Berikut ini adalah sejumlah cara yang dapat Anda lakukan untuk bertahan menghadapi masa-masa sulit yang menghadang:
Berpikir positif
Kelilingi diri Anda dengan orang-orang yang berpikiran positif agar rasa tersebut menular. Akan semakin mudah bagi Anda menghadapi masa sulit jika berada di sekitar orang yang memancarkan aura optimis dan penuh semangat hidup.
Anda mungkin hanya akan menemukan sedikit orang yang memiliki pikiran positif seperti ini. Namun, yang sedikit itu pun sudah lebih dari cukup.
Menjalani hobi
Lakukan berbagai aktivitas yang Anda sukai setiap hari, misalnya mendengarkan musik sambil mengendari mobil ketika berangkat beraktivitas setiap pagi. Mendengarkan musik bisa mengisi jiwa yang kosong, dan memberikan motivasi yang Anda perlukan untuk menjalani hari yang berat dengan fokus dan antusias.
Mengatur hidup
Ketika menghadapi berbagai kesulitan, sangat mudah bagi seseorang untuk kehilangan arah atas segala hal. Anda pun bisa melupakan hal-hal penting maupun sepele seperti tugas kantor, agenda harian, perjanjian, bahkan nama orang. Akibatnya, Anda bisa menjadi bertambah frustrasi.
Nah, jangan biarkan kekacauan mewarnai hari-hari Anda. Jadi, jaga pikiran agar tetap jernih dan sehat dengan mengatur kehidupan pribadi maupun profesional. (*/OL-08)
Sumber: http://www.mediaindonesia.com/mediaperempuan/index.php/read/2010/03/27/2926/12/Tiga-Cara-Bertahan-di-Masa-Sulit
10 Pantai Cantik di Dunia
HAMPIR setiap negara di dunia memiliki pantai yang sangat cantik. Mulai dari pantai di desa kecil Thailand, pantai-pantai di Laut Karibia hingga di kawasan Pasifik Selatan. Berikut 10 pantai cantik menurut situs www.iexplore.com:
1. Lanikai Oahu
Bagi Anda yang sedang berlibur ke Amerika Serikat cobalah menepi ke daerah pedalaman Hawaii, karena di sana terdapat pantai indah yang bernama Lanikai Oahu.
Pantai ini memiliki panorama yang ideal bagi para pengunjung. Selain pasir putih dan kristal air yang jernih, Lanikai Oahu sering dipakai sebagai area kontes pakaian renang Victoria Secret.
2. Bora Bora, French Polynesia
Bora-bora merupakan kepulauan bekas jajahan Prancis yang terletak di dekat Tahiti. Pantai ini seringkali dijadikan surga bagi para pasangan yang ingin berbulan madu. (romantic heaven on earth).
Bukan cuma pantai yang menjadi daya tarik Bora-bora, di balik resort pantai juga terdapat panorama cantik sebuah gunung yang bernama Gunung Otemanu.
3. The Maldives
Jika Anda sedang berada di India atau Sri Lanka, sebaiknya berhenti sejenak ke negara Republik Maldives karena di sana terdapat sebuah pulau karang yang dikelilingi laut dangkal.
Adapun bungalow mewah The Maldives yang menjadi target utama bagi para pengunjung dunia.
4. Parque Nacional Tayrona, Kolombia
Kolombia memiliki pantai yang ideal, seperti Parque Nacional Tayrona. Di pantai ini Anda akan menemukan panorama pantai yang dikelilingi rimbunan pohon layaknya sebuah hutan. Belum lagi kejernihan air lautnya yang menunjukkan bahwa pantai ini belum terkontaminasi oleh sebuah limbah.
5. Fernando de Noronha, Brazil
Fernando de Noronha merupakan negara kepulauan Brazil yang berada di dekat Samudera Atlantik. Beberapa model dan selebiriti lainnya seringkali terlihat di resort-resort mewah Noronha pada saat liburan tiba, meski kedatangan mereka dirahasiakan sebelumnya.
6. Tenerife, Canary Islands
Tenerife adalah tempat favorit bagi orang-orang Britis dan Eropa. Mereka berkumpul di pantai pasir hitam vulkanik yang dominant di Pulau Kanari.
7. Seychelles Islands
Seychelles memiliki pantai yang terbaik di Afrika bahkan sangat cocok untuk menyelam (diving) di Samudera Hindia. Artis ternama, seperti Paul McCartney adalah orang pertama yang datang ke resort mewah di sana, dan artis lainnya yang datang hanya sekedar menikmati panorama pantai.
8. Marquesas Islands
Pulau vulkanik ini terlihat seperti Hiva Oa yang merupakan pulau terbesar kedua di Kepulauan Marquesas, negara Polinesia Perancis. Tak perlu khawatir mencari penginapan di pulau hutan tropis ini, karena areanya sudah dilengkapi dengan bungalo-bungalo berkelas. Adapun tarian kuda liar sebagai tontonan yang penuh eksotis di sebuah pulau yang berjarak 800 mil dari arah timur laut Tahiti.
9. Palm Beach, Aruba
Palm Beach adalah sebuah pantai cantik di Oranjestad (Kota Oranye), Aruba, yang terletak di dekat pantai Venezuela dan juga Laut Karibia. Berbagai hotel dan pusat perbelanjaan sudah lama berdiri di sana sebagai fasilitas umum yang sangat memadai.
Tidak seperti banyak wilayah di Karibia, wilayah bekas koloni Belanda ini memiliki iklim yang kering dan gersang, sehingga dipenuhi dengan tanaman-tanaman lanskap seperti kaktus.
10. Phi Phi Islands, Thailand
Pulau ini berada di dekat Phuket, Thailand yang menawarkan pemandangan yang indah, seperti pantai, gua dan air terjun yang tersembunyi di daerah yang terpencil.
Meski areanya terpencil, namun pantai Phi Phi ini pernah dijadikan lokasi syuting pembuatan film The Beach. (*/OL-08)
Sumber: http://www.mediaindonesia.com/mediatravelista/index.php/read/2010/03/26/500/2/10-Pantai-Cantik-di-Dunia
Tiga Lemak Pembantu Fungsi Tubuh
ASAM lemak omega-3 sangat berfungsi selama kehamilan. Studi-studi sudah menunjukkan bahwa asam lemak omega-3, khususnya docosahexaenoic acid (DHA), bisa menurunkan risiko depresi pada perempuan, membantu perkembangan daya lihat janin, dan mengatur pola tidur bayi yang baru lahir.
Omega-3 merupakan jenis asam lemak ganda tidak jenuh, lemak yang baik untuk kesehatan. Ada tiga tipe utama asam lemak esensial omega-3. Tubuh bisa menggunakan ketiga asam lemak omega-3 ini untuk membantu fungsi tubuh.
Eicosapentaenoic acid (EPA): EPA pada umumnya terkandung dalam ikan dan minyak ikan.
Docosahexanoic Acid (DHA): DHA sangat penting untuk tubuh dan bisa didapatkan dari ikan.
Alpha-Linolenic Acid ( ALA ): ALA bisa ditemukan pada sebagian besar biji-bijian, minyak sayur, dan sayuran hijau. Di dalam tubuh, ALA akan diubah menjadi EPA dan selanjutnya menjadi DHA.
Anjuran dalam diet
Anda dianjurkan untuk mengonsumsi omega-3 secara teratur, bahkan saat sedang tidak hamil.
Selama kehamilan, Anda dianjurkan mengonsumsi paling tidak 250 mg asam lemak omega-3 setiap hari. Akan tetapi, minyak omega-3 khususnya sangat penting selama trimester terakhir. Dalam durasi ini, bayi Anda menggunakan omega-3 untuk membentuk hampir 70 persen dari sistem otaknya. Selain itu, sistem saraf bayi juga disempurnakan dalam trimester terakhir ini.
Manfaat omega-3 selama kehamilan
Omegas-3 biasanya berperan penting dalam perkembangan dan pertumbuhan bayi dalam rahim. Omega-3 membantu untuk:
Bangun otak. Janin bergantung pada suplai DHA orangtua untuk mengembangkan otak. Janin mendapatkan DHA dari plasenta dan selanjutnya melalui air susu ibu. DHA merupakan bahan pembangun jaringan otak dan khususnya tersedia dalam jumlah besar di grey matter otak.
Bentuk retina. DHA juga bermanfaat mendukung perkembangan retina dan menguatkan fungsi visual. Dalam sebuah studi, peneliti mengikuti perkembangan 70 orang ibu dan bayi mereka dari usia empat hingga delapan bulan. Peneliti mengukur ketajaman visual dan kemampuan kognitif visual dengan menunjukkan gambar bayi dan mengukur reaksi. Hasil menunjukkan, bayi yang lahir dari ibu dengan kadar DHA tinggi memiliki keterampilan visual yang lebih tinggi.
Kembangkan sistem saraf. DHA dinyatakan meningkatkan kemampuan belajar dan fungsi kognitif anak.
Dukung perkembangan jantung dan sistem pernafasan bayi. Penelitian menunjukkan bhawa EPA penting dalam mendukung perkembangan jantung dan sistem pernafasan janin serta bayi .
Mengonsumsi asam lemak omega-3 selama kehamilan juga terbukti bisa membantu ibu dan bayi dalam jangka panjang. Studi-studi baru-baru ini dilakukan pada bayi yang terpapar omega-3 dosis cukup selama dalam kandungan.
Bayi-bayi ini menunjukkan tingkat perhatian yang lebih panjang dan ketajaman visual yang lebih besar dibandingkan anak-anak yang tidak terpapar omega-3. Selain itu, perkembangan mereka juga dua bulan lebih cepat dibandingkan anak-anak yang tidak terpapar. Berikut beberapa manfaat lain dari omega-3:
* Mengurangi kemungkinan gangguan perkembangan dan perilaku di usia selanjutnya.
* Mengurangi kemungkinan kanker payudara dan kanker prostat.
Selain penting untuk kesehatan kehamilan, omega-3 juga berfungsi:
Mengurangi kemungkinan mengalami preeclampsia. Preeclampsia merupakan penyakit yang ditandai dengan penambahan tekanan darah darah secara bertahap dan seringkali diikuti dengan pengeluaran protein melalui air seni dan pembengkakan berlebih pada kaki, tangan, serta wajah.
Mengurangi risiko depresi setelah melahirkan.
Meminimalkan kemungkinan melahirkan prematur.
Sumber omega-3
Omega-3 bisa ditemukan pada ikan dan produk minyak ikan. Omega-3 kadar tinggi biasanya terkandung dalam:
* Oily fish, seperti makarel, ikan haring, dan salmon.
* Suplemen minyak ikan omega-3.
* Tuna segar atau beku.
Selain dari makanan di atas, omega-3 juga bisa diperoleh dari:
* Makanan yang telah diperkaya dengan berbagai vitamin, seperti telur yang diperkaya omega-3, roti, dan jus.
* Sayuran hijau
* Canola oil, minyak biji bunga matahari, dan biji rami.
* Kenari (*/OL-08)
SUmber:http://www.mediaindonesia.com/mediahidupsehat/index.php/read/2010/03/26/2319/3/Tiga-Lemak-Pembantu-Fungsi-Tubuh
Kamis, 25 Maret 2010
Mengurangi Gejala Alergi akibat Kucing
Kompas.com — Walaupun kucing bisa membuat orang jadi menggaruk-garuk dan bersin, kecintaan terhadap si meong ini mengalahkan segalanya. Diakui, kucing adalah hewan peliharaan yang paling banyak menyebabkan alergi dibandingkan hewan peliharaan lain.
Penelitian terakhir menunjukkan, bulu kucing menyimpan semacam toksin penyebab meningkatnya risiko eksema salah satu jenis alergi yang banyak diderita anak-anak. Selain bulu, kotoran kucing yang sudah kering juga menjadi tempat berkembang biak paling nyaman bagi toksoplasma.
Walau begitu, jangan serta-merta membuang hewan peliharaan dari rumah. Apalagi menjauhkan binatang-binatang lucu ini dari anak-anak. Sebab, berteman dengan anjing dan kucing pada masa kanak-kanak bisa membantu membentuk pertahanan mereka pada kasus alergi.
Supaya kita bisa tetap nyaman tinggal serumah dengan si meong, ikuti saran berikut ini:
- Mandikan kucing seminggu sekali
Cara ini dapat mengurangi hampir 90 persen alergen di udara yang dibawa oleh kucing.
- Hindari karpet dan mebel berlapis bahan
Pel lantai berulang kali dan lengkapi penyedot debu dengan filter berefisiensi tinggi.
- Gunakan filter partikel udara efisiensi tinggi (HEPA) guna mengurangi alergen kucing yang terdapat dalam debu. Pembersih udara jenis ini membersihkan udara dari sebagian partikel debu yang masuk melalui filter.
- Jagalah agar kucing selalu berada di luar rumah
Apabila kucingnya memang kucing luar rumah, sedapat mungkin biarkan dia tinggal di luar dan jangan biarkan masuk ke ruang tidur dan ruangan lain yang sering Anda tempati.
- Tambahkan ventilasi
Hal ini akan membantu menurunkan tingkat alergen.
Apabila Anda atau orang di rumah mengidap asma yang pemicunya alergi terhadap kucing, sebaiknya carikan kucing tersebut tempat tinggal baru. Paparan berkelanjutan terhadap alergen kucing dapat menyebabkan penyempitan saluran pernapasan, bahkan setelah tidak terpapar lagi.
Sumber: http://kesehatan.kompas.com/read/2010/03/26/09475437/Mengurangi.Gejala.Alergi.akibat.Kucing
Rabu, 24 Maret 2010
Kota Medan Miskin Taman
Selama ini penghitungan ruang terbuka hijau yang dinyatakan 5-7 persen dari luas kota di dalamnya ternyata mencakup makam yang luasnya mencapai 57,2 hektar, lapangan olahraga 16,89 hektar, dan taman segitiga di tengah jalan.
Angka 21,5 hektar juga termasuk taman-taman yang dikelola oleh sekolah-sekolah. "Maka, jika ada lahan kosong di kota, kami semangat sekali untuk menjadikannya taman," tutur Kepala Bidang Taman/Makam Dinas Pertamanan Kota Medan Nurdin Ashari, Rabu (17/3/2010).
Dinas Pertamanan pada 2009 membuat dua taman baru, yakni di belakang kantor polisi Helvetia dan Jalan Petula. Adapun tahun lalu, ruang hijau yang hilang adalah taman segitiga antara Jalan Raden Saleh dan Merdeka Walk serta sudut pintu gerbang Tol Amplas yang terkena perluasan jalan.
Menurut Nurdin, perkembangan baik mulai muncul. Saat ini banyak perumahan baru yang menyediakan taman bermain bagi warganya. Namun, banyak pula warga yang tidak mau turut merawat.
"Banyak pohon yang kami tanam diracun warga," tutur Nurdin. Selain sebagai peneduh, penanaman pohon di pinggir jalan juga untuk menghindari berdirinya pedagang kaki lima. Namun, yang terjadi, banyak pedagang yang justru mematikan pohon peneduh yang ditanam petugas.
Pembangunan ruko-ruko di pinggiran Kota Medan juga kurang memberikan ruang pada pepohonan, seperti yang terjadi di Jalan Gagak Rimang.
Nurdin mengakui, pertumbuhan penduduk yang pesat membuat pembangunan taman tersisih. Aturan ruang terbuka hijau seluas 30 persen dan ruang terbuka untuk publik seluas 20 persen luas kota sesuai dengan Peraturan Daerah Nomor 26 Tahun 2007 tentang Tata Ruang belum dipenuhi.
Kepala Seksi Pemakaman Yan Anwar menambahkan, Pemerintah Kota Medan juga sudah kekurangan lahan untuk makam. Saat ini Pemkot Medan mengelola sembilan makam. (Aufrida Wismi Warastri/KOMPAS Cetak) sumber:http://properti.kompas.com/read/xml/2010/03/18/09100514/kota.medan.miskin.taman.
Bangunan Tahan Gempa Harus Penuhi Standar Nasional Indonesia
Hal ini dipaparkan oleh Mulyo Harris Pradono, peneliti dari Badan Pengkajian dan Penerapan Teknologi (BPPT) ketika dijumpai usai jumpa pers di Kantor LIPI, Jl. Raden Saleh 43, Jakarta Pusat, Senin (22/3/2010). SNI 1726-2002 sendiri meliputi jenis bangunan, ukuran tinggi bangunan dan beban bangunan. SNI 1726-2002 hanya berlaku untuk bangunan bertingkat bukan bangunan sederhana seperti rumah tinggal. Ukuran tinggi bangunannya pun mencapai 40 m.
"Sebagai contoh, bangunan bertingkat yang rusak berat saat gempa di Padang itu disebabkan bangunan tersebut tidak memenuhi SNI 1726-2002. Jika bangunan tersebut memenuhi standar maka tidak akan mengalami kerusakan yang parah sehingga masih bisa diperbaiki." tutur Harris.
Menurut Harris, pembangunan gedung bertingkat agar tahan gempa juga harus memperhatikan lokasi pembangunannya dan jarak pembangunan dengan kemungkinan titik gempa terdekat. Jika jarak pembangunan gedung dekat dengan titik gempa, bangunan diusahakan tidak terlalu tinggi.
"Misalnya saja, Jakarta memiliki skala besaran efek gempa yang menyebar dari titik gempa sebesar 4 mmi (modified mercalli intensity), maka pembangunan gedung bisa lah seperti ukuran gedung perkantoran yang umum di Jakarta. Namun, jangan terkecoh dulu besaran efek gempa dapat berubah sesuai dengan kekuatan gempa di pusat gempa." ucap Harris.
Oleh karena itu, semakin sering gempa terjadi dengan kekuatan besar maka standar bangunannya juga akan semakin meningkat. "Jadi, konsultasikan dulu dengan kontraktor dan pihak terkait saat akan membangun sebuah gedung bertingkat yang tahan gempa." ujar Harris. sumber;http://properti.kompas.com/read/xml/2010/03/22/17520775/bangunan.tahan.gempa.harus.penuhi.standar.nasional.indonesia
CIMB Niaga Alokasikan Rp 7,2 Triliun untuk KPR Tahun 2010
Kepala Kredit Konsumer CIMB Niaga Laksmi Mustikaningrat mengatakan, per akhir 2009, outstanding KPR CIMB Niaga mencapai Rp 13,1 triliun. Dengan target kenaikan 28 persen, CIMB berharap bisa menyalurkan KPR baru sebesar Rp 3,7 triliun. "Tahun ini, alokasi dana kami untuk KPR adalah Rp 7,2 triliun," kata Laksmi, Selasa (23/3).
Laksmi mengatakan, untuk mencapai target tersebut, CIMB Niaga telah menyiapkan sederet strategi. Antara lain, meningkatkan kerja sama dengan pengembang dan agen properti, memberi pelayanan lebih baik dan lebih cepat, serta penambahan penyaluran KPR dari nasabah inti baik perorangan maupun perusahaan.
Selain itu, lanjut Laksmi, bank yang dimiliki investor Malaysia ini juga melakukan ekspansi produk KPR. Tujuannya, selain meraup nasabah KPR, juga agar produk ini menjadi ujung tombak untuk menawarkan produk-produk perbankan lain ke nasabah.
"Soalnya, melalui KPR, bank bisa membangun hubungan baik dalam jangka panjang dengan nasabah. KPR kan minimal lima tahun," ujarnya.
Sampai akhir Februari, nilai outstanding KPR CIMB Niaga sudah bertambah menjadi Rp 13,2 triliun. Artinya, dalam dua bulan penyaluran KPR CIMB naik Rp 100 miliar.
Laksmi menjelaskan, CIMB Niaga menargetkan KPR bisa mengambil porsi 15 persen dari total kredit tahun ini. Sekedar catatan, pada tahun 2009 lalu, porsi KPR CIMB Niaga juga sebesar 15 persen dari total penyaluran kredit yang mencapai Rp 82,8 triliun. Sedang, porsi Dana Pihak Ketiga (DPK) Rp 86,2 triliun. "Kami akan mempertahankan porsi KPR sebesar 15 persen dari total kredit," imbuh Laksmi. (Andri Indradie/KONTAN)sumber:http://properti.kompas.com/read/xml/2010/03/24/11515623/CIMB.Niaga.Alokasikan.Rp.7.2.Triliun.untuk.KPR.Tahun.2010
Senin, 22 Maret 2010
10 Tips Aman Berkicau di Twitter
Sehingga perlu rasanya bagi para pengguna Twitter untuk membentengi diri. Hal ini untuk memastikan bahwa keamanan diri kita terkamin ketika tengah asyik berkicau di situs burung biru ini.
Berikut adalah 10 tips aman bermain Twitter menurut Ema Linaker, AVG Global Head of Online Engagement:
1. Batasi Pembicaraan Anda
Penggunaan Twitter yang mudah membuat para pengguna sering dengan gampang melakukan tweet tentang lokasi dan kegiatan mereka. Namun, para pengguna sering tidak menyadari bahwa akun mereka merupakan akun publik (tidak dilindungi ataupun dibatasi), maka semua orang bisa melihat tweet mereka tersebut.
Komentar-komentar ringan yang diberikan sebagai tanggapan dari tweet tersebut lama-kelamaan bisa digunakan untuk mengetahui jadwal kegiatan dan rencana harian pengguna itu. Para penjahat bisa menggunakan hal ini untuk menjadikan pengguna tersebut korban berikutnya.
2. Berhati-hatilah Membuka Tautan
Berhati-hatilah membuka link atau tautan yang Anda dapatkan. Banyak orang yang menggunakan layanan pemendekan URL di Twitter, hingga memang sering sulit untuk benar-benar mengetahui situs yang akan Anda kunjungi.
Produk keamanan web memang dapat digunakan untuk memeriksa tautan-tautan tersebut. Namun yang paling penting adalah untuk terus mengingat bahwa bila ada keraguan mengenai tautan yang Anda dapatkan, sebaiknya jangan dibuka!
3. Waspadalah!
Waspadalah dengan kegiatan-kegiatan mencurigakan di timeline atau inbox Anda. Bila Anda mulai mendapatkan pesan-pesan yang mencurigakan atau teman-teman Anda mulai men-tweet atau mengirimkan pesan-pesan berbau spam, sebaiknya Anda pastikan terlebih dahulu apakah akun rekan Anda telah menjadi sasaran peretas atau perengkah.
4. Berpikir Sebelum Memposting
Tweet Anda dapat dibaca oleh semua orang di seluruh dunia. Bahkan setelah dihapus, tweet Anda masih tetap dapat dilihat dengan menggunakan mesin pencari. Pikirkanlah baik-baik apa yang hendak Anda tulis, karena konsekuensi tulisan Anda mungkin akan lebih jauh dari yang Anda perkirakan. Menggunakan hashtag juga akan semakin mempermudah pencarian tweet Anda.
5. Jangan Lekas Percaya
Anda tidak pernah tahu siapa saja follower Anda di twitter. Jangan mudah percaya dan berteman dengan orang-orang yang mungkin memiliki niat buruk.
6. Periksalah Aplikasi Pihak Ketiga Secara Seksama
Ada ratusan aplikasi yang dapat Anda gunakan di Twitter. Sebelum Anda menggunakan aplikasi-aplikasi tersebut, pastikan bahwa keamanan mereka. Carilah aplikasi-aplikasi yang banyak dibahas di situs-situs terpercaya. Ingat bahwa aplikasi-aplikasi ini sering membutuhkan password dan username Anda.
7. Informasi Password
Gunakan password berbeda untuk tiap akun jejaring sosial Anda. Bila Anda ingin lebih aman, ciptakan e-mail berbeda untuk akun-akun jejaring sosial Anda. Dengan begitu, bila Anda menutup akun jejaring sosial Anda, Anda dengan mudah dapat menghapus akun e-mail tersebut.
8. Saat Log in
Periksalah pengaturan browser yang Anda gunakan. Pastikan bahwa informasi Anda tidak terekam bila Anda menggunakan komputer bersama.
9. Waspadalah Terhadap Serangan Phising
Berhati-hatilah atas usaha-usaha untuk mendapatkan informasi pribadi Anda melalui tweet atau Direct Message (DM) yang menipu.
10. Saat Menggunakan Telepon Seluler
Berhati-hatilah dengan telepon seluler Anda dan siapa-siapa saja yang dapat menggunakannya. Bila Anda memiliki aplikasi Twitter, pastikan Anda selalu log out setelah Anda menggunakannya.
( ash / fyk ) sumber:http://www.detikinet.com/read/2010/03/23/102957/1323352/510/10-tips-aman-berkicau-di-twitter
Penyakit Hilang Berkat Si Lumba-lumba
Dua lumba-lumba betina ini merupakan penghuni Pulau Bidadari yang bertugas memberikan terapi kepada anak-anak penderita autis dan rehabilitasi degeneratif (pascastroke). Manajer Klinik Dolphin Endang Sumaryati mengatakan, lumba-lumba memang sejak lama dikenal sebagai hewan yang sudah bersahabat dengan manusia.
Selain ramah dengan manusia, mamalia yang satu ini juga secara alami mengeluarkan gelombang ultrasonar yang berfrekuensi tinggi. Dengan ultrasonar ini, lumba-lumba tahu jika ada gangguan kesehatan pada manusia yang berada di dekat mereka dan berkomunikasi dengan mereka.
Saat berinteraksi dengan manusia di dalam air, lumba-lumba bisa mengirimkan daya akustik sampai 1 kilowatt yang mampu menembus tembok setebal 30 cm. Wajar bila gelombang sonar tersebut mampu menembus jaringan syaraf manusia yang hanya dilapisi tengkorak dan kulit. Gelombang sonar inilah yang kemudian dimanfaatkan untuk menerapi anak autis, down syndrome, gangguan konsentrasi, ataupun gangguan fungsi saraf motorik pascastroke.
"Gelombang sonar yang dikeluarkan lumba-lumba bisa memperbaiki syarat-syaraf yang kaku," jelas Endang.
Saat ini, terapi lumba-lumba di Indonesia hanya ada dua tempat, yakni di Bali dan Pulau Bidadari. Karena lokasinya yang terbatas, banyak yang penasaran dengan keahlian lumba-lumba tersebut. Banyak orang yang ingin membuktikan keampuhan sonar lumba-lumba untuk mengatasi masalah-masalah urat-urat syaraf. Para pasien yang penasaran datang ke Pulau Bidadari. Namun sayang, lumba-lumba di Pulau Bidadari saat ini hanya diperuntukan untuk menerapi anak-anak penderita autis.
"Saya datang ke sini (Pulau Bidadari) karena penasaran ingin mencoba berenang bersama lumba-lumba. Sebab katanya bisa mengatasi stres dan relaksasi," jelas Dwinarto, wisatawan yang datang dari daerah Kemayoran, Jakarta Pusat, kepada detikcom, Minggu (21/2/2010).
Pengakuan serupa juga dikatakan Hartono, warga Pluit, Jakarta Utara. Ia datang bersama istri dan dua anaknya lantaran penasaran ingin berenang bersama lumba-lumba. Tapi karena tidak dibuka untuk umum terpaksa mereka hanya bisa melihat lumba-lumba itu dari pagar kawat yang mengelilingi
kolam tersebut.
Besarnya animo wisatawan untuk berenang dan berelaksasi bersama lumba-lumba diakui Husen Munir, manajer Pulau Bidadari. Menurutnya, selama ini banyak pengunjung yang datang ke pulau selain berwisata menikmati pemandangan pantai juga ingin berenang bersama lumba-lumba. Sayangnya keinginan tersebut belum bisa dipenuhi pengelola. Soalnya, kolam lumba-lumba tersebut ukurannya kurang luas, hanya 13x8 meter. Keberadaan kolam tersebut hanya untuk anak-anak yang mengidap autis.
"Kalau dibuka untuk umum kolam sekecil itu tentu tidak muat. Apalagi kalau yang berenang orang-orang dewasa," pungkas Husen.
Namun Husen berjanji pihaknya akan segera membangun kolam khusus bagi wisatawan yang ingin berenang dengan hewan laut yang cerdas tersebut. Rencananya, kolam lumba-lumba akan dibangun tidak jauh dari kolam terapi dan nantinya pasti lebih luas. Kata Husen, rencananya luas kolam umum itu minimal 20x10 meter.sumber:http://www.detiknews.com/read/2010/03/23/104740/1323382/159/penyakit-hilang-berkat-si-lumba-lumba
Pemerintah Siapkan Kebijakan Transportasi Terintegrasi di Jabodetabek
Kepala Bidang Infrastruktur Transportasi Darat dan Kereta Api Amilia Aldian menyatakan JUTPI ini bertujuan untuk menyiapkan bahan-bahan yang akan digunakan oleh pengambil keputusan baik di tingkat pemerintah pusat maupun pemerintah daerah di wilayah Jabodetabek untuk menyepakati kebijakan bersama dalam menyelesaikan masalah-masalah transportasi. "Jadi nanti ada kebijakan bersama dan kesatuan pandang antara pemerintah daerah di wilayah Jabodetabek dan pemerintah pusat," papar Amilia, di sela-sela jumpa pers JUTPI, di Hotel Borobudur, Jakarta, Rabu (10/3/2010).
Dia menjelaskan, nantinya JUTPI akan melakukan survei perjalanan penduduk dengan total sampel 180.000 keluarga yang tersebar di seluruh Jabodetabek dimulai pada 10 Maret 2010 . Hasil survei akan menggambarkan asal dan tujuan perjalanan penduduk Jabodetabek, jenis angkutan yang dipergunakan, biaya transportasi sehari-hari, pelayanan angkutan umum yang dikehendaki, dan sebagainya.
"Asumsinya kan kalau satu keluarga ada empat anggota keluarga, maka 180.000 keluarga itu nanti bisa mewakili kira-kira 3 persen dari total penduduk Jabodetabek," kata dia.
"Hasil survei ini bakal digabungkan dengan kajian transportasi sebelumnya, yakni Study on Integrated Transportation Master Plan for Jabodetabek (SITRAMP). Kemudian, hasilnya akan digunakan untuk penyusunan kebijakan peningkatan pelayanan sistem transportasi Jabodetabek."Nanti setelah keluar hasil survei juga akan disusun rekomendasi agar dibentuk badan bersama untuk mengurusi masalah transportasi di Jabodetabek," tandasnya.sumber:http://properti.kompas.com/read/xml/2010/03/10/16352566/pemerintah.siapkan.kebijakan.transportasi.terintegrasi.di.jabodetabek.
Selasa, 16 Maret 2010
Perkembangan Pasar Modal Syariah
tersebut dapat dilakukan pada berbagai kegiatan usaha yang berkaitan aktivitas menghasilkan
suatu produk, asset maupun jasa. Karena itu, salah satu bentuk investasi yang sesuai dengan
syariah Islam adalah membeli Efek Syariah. Efek Syariah tersebut mencakup Saham Syariah,
Obligasi Syariah, Reksadana Syariah, Kontrak Investasi Kolektiv Efek Beragun Asset (KIK
EBA) Syariah, dan surat berharga lainnya yang sesuai dengan prinsip syariah.
Investasi dengan pemilikan Efek Syariah dapat dilakukan di Pasar Modal baik secara langsung
pada saat penawaran perdana, maupun melalui transaksi perdagangan sekunder dibursa. Pasar
Modal menjadi alternatif investasi bagi para investor selain alternatif investasi lainnya seperti:
menabung di bank, membeli emas, asuransi, tanah dan bangunan, dan sebagainya.
Sebagaimana dipahami Pasar Modal merupakan kegiatan yang bersangkutan dengan penawaran
umum dan perdagangan efek, perusahaan publik yang berkaitan dengan efek yang diterbitkannya,
serta lembaga dan profesi yang berkaitan dengan efek tersebut. Pasar Modal bertindak sebagai
penghubung antara para investor dengan perusahaan ataupun institusi pemerintah melalui
perdagangan instrumen keuangan jangka panjang. Sayangnya selama ini pasar modal menjadi
wadah ekonomi yang paling banyak menjalankan transaksi yang dilarang seperti bunga (riba),
perjudian (gambling/maysir), gharar, penipuan dan lain-lain. Upaya untuk melakukan Islamisasi
pada sektor perputaran modal yang sangat vital bagi perekonomian modern ini semakin gencar.
Islamisasi Pasar Modal
Dilihat dari sisi syariah, pasar modal adalah salah satu sarana atau produk muamalah. Transaksi
didalam pasar modal, menurut prinsip hukum syariah tidak dilarang atau dibolehkan sepanjang
tidak terdapat transaksi yang bertentangan dengan ketentuan yang telah digariskan oleh syariah.
Diantara yang dilarang oleh syariah adalah transaksi yang mengandung bunga dan riba. Larangan
transaksi bunga (riba) sangat jelas, karena itu transaksi dipasar modal yang didalamnya terdapat
bunga (riba) tidak diperkenankan oleh Syari’ah.
Syari’ah juga melarang transaksi yang didalamnya terdapat spekulasi dan mengandung gharar
atau ketidakjelasan yaitu transaksi yang didalamnya dimungkinkan terjadinya penipuan (khida’).
Termasuk dalam pengertian ini: melakukan penawaran palsu (najsy); transaksi atas barang yang
belum dimiliki (short selling/bai’u maalaisa bimamluk); menjual sesuatu yang belum jelas (bai’ul
ma’dum); pembelian untuk penimbunan efek (ihtikar) dan menyebarluaskan informasi yang
menyesatkan atau memakai informasi orang dalam untuk memperoleh keuntungan transaksi yang
dilarang (insider trading).
Dengan adanya berbagai ketentuan dan pandangan syariah seperti diatas, maka investasi tidak
dapat dilakukan terhadap semua produk pasar modal karena diantara produk pasar modal itu
banyak yang bertentangan dengan syari’ah. Oleh karena itu investasi di pasar modal harus
dilakukan dengan selektif dan dengan hati-hati (ihtiyat) supaya tidak masuk kepada produk non
halal. Sehingga hal inilah yang mendorong islamisasi pasar modal.
Terkait dengan upaya pengembangan pasar modal syariah, hingga saat ini terdapat 6 (enam)
Fatwa DSN-MUI yang berkaitan dengan industri pasar modal. Fatwa-fatwa tersebut adalah:
Fatwa No.05 tahun 2000 tentang Jual Beli Saham; No.20 tahun 2000 tentang Pedoman
Pelaksanaan Investasi Untuk Reksa Dana Syariah; No.32 tahun 2002 tentang Obligasi Syariah;
No.33 tahun 2002 tentang Obligasi Syariah Mudharabah; No.40 tahun 2003 tentang Pasar Modal
dan Pedoman Umum Penerapan Prinsip syariah di Bidang Pasar Modal; dan yang terakhir fatwa
No.41 tahun 2004 tentang Obligasi Syariah Ijarah.
Bentuk ideal dari pasar modal syariah dapat dicapai dengan islamisasi empat pilar pasar modal,
yaitu; (a) Emiten (perusahaan) dan efek yang diterbitkannya didorong untuk memenuhi kaidah
syariah, keadilan, kehati-hatian dan transparansi; (b) Pelaku pasar (investor) harus memiliki
pemahaman yang baik tentang ketentuan muamalah, manfaat dan risiko transaksi di pasar modal;
(c) Infrastruktur informasi bursa efek yang jujur, transparan dan tepat waktu yang merata di
publik yang ditunjang oleh mekanisme pasar yang wajar; (d) Pengawasan dan penegakan hukum
oleh otoritas pasar modal dapat diselenggarakan secara adil, efisien, efektif dan ekonomis.
Selain itu prinsip-prinsip Syariah juga akan memberikan penekanan (emphasis) pada: (a)
Kehalalan produk/jasa dari kegiatan usaha, karena menurut prinsip Syariah manusia hanya boleh
memperoleh keuntungan atau penambahan harta dari hal-hal yang halal dan baik; (b) Adanya
kegiatan usaha yang spesifik dengan manfaat yang jelas, sehingga tidak ada keraguan akan hasil
usaha yang akan menjadi obyek dalam perhitungan keuntungan yang diperoleh; (c) Adanya
mekanisme bagi hasil yang adil –baik dalam untung maupun rugi- menurut penyertaan masingmasing
pihak; dan (d) Penekanan pada mekanisme pasar yang wajar dan prinsip kehati-hatian
baik pada emiten maupun investor.
Perkembangan Pasar Modal Syariah.
Dengan diterbitkannya fatwa-fatwa yang berkaitan dengan pasar modal, telah memberikan
dorongan untuk mengembangkan alternatif sumber pembiayaan yang sekaligus menambah
alternatif instrumen investasi halal. Perkembangan pasar modal syariah saat ini ditandai dengan
maraknya perusahaan yang listing di Jakarta Islamic Index (JII), penawaran umum Obligasi
Syariah dan juga Reksadana Syariah.
Kinerja saham syariah yang terdaftar dalam JII mengalami perkembangan yang cukup
mengembirakan. Hal ini terlihat dari kenaikan JII sebesar 38,60% jika dibandingkan dengan akhir
tahun 2003. Kapitalisasi pasar saham syariah yang terdaftar dalam JII juga meningkat signifikan,
yaitu sebesar 46,06% dari Rp.177,78 triliun menjadi Rp.259,66 triliun pada akhir Desember 2004.
Dengan keluarnya fatwa Obligasi Ijarah tahun 2004 telah mendorong sebanyak 7 (tujuh) emiten
mendapat pernyataan efektif dari Bapepam untuk dapat menawarkan Obligasi Syariah Ijarah
dengan total nilai emisi sebesar Rp.642 Miliar. Sehingga sampai dengan akhir 2004 ini, secara
kumulatif terdapat 13 (tiga belas) obligasi syariah dengan total nilai emisi sebesar Rp.1,38 triliun.
Hal ini berarti bahwa jumlah obligasi syariah telah tumbuh sebesar 116,67% dan nilai emisi
obligasi syariah tumbuh sebesar 86,7% jika dibandingkan dengan akhir tahun 2003.
Reksadana syariah juga tumbuh sangat mengesankan, sebelumnya pada tahun 2003 hanya ada 3
(tiga) reksa dana syariah yang efektif, kemudian bertambah secara kumulatif menjadi 10
(sepuluh) reksa dana syariah sampai dengan akhir 2004.
Bapepam juga telah membentuk unit khusus yang membawahi pengembangan kebijakan pasar
modal syariah pada Oktober 2004 yang lalu. Pembentukan unit khusus ini dalam rangka
mengembangkan pasar modal syariah serta melihat tantangan yang semakin besar untuk
mengatur dan mengawasi kegiatan pasar modal syariah yang semakin berkembang.
Meki pasar modal syariah awalnya adalah ironi, karena Equity Fund pertama (the Amana Fund)
didirikan Juni 1986 oleh the North American Islamic Trust dan Dow Jones Islamic Market Index
(DJIM) diluncurkan Februari 1999 oleh Dow Jones Indexes berada di negeri kapitalis AS, tetapi
sekarang ia menjadi keniscayaan dan tanggungjawab kita untuk mengelola dan mengawalnya.
Agar tidak menjadi trojan yang dikendarai kapitalisme global. Wallahu ’alam bi-shawab.
Sumber: http://www.google.co.id/#hl=id&source=hp&q=pasar+modal+syariah&meta=&aq=2&aqi=g10&aql=&oq=pasar+modal&fp=9c053c740acafac3
Jumat, 12 Maret 2010
PERINGATAN DINI BANJIR
Koordinasi di tingkat Rumah Tangga, kemudian di tingkat RT, dan disusul koordinasi di tingkat RW, berlanjut ke tingkat Kelurahan dan Tingkat Kecamatan;
Tempat lokasi pengungsian; Koordinasi dengan Satkorlak:
Peringatan Dini Banjir (Early Warning System), merupakan suatu upaya untuk mengingatkan masyarakat di suatu tempat bahwa banjir akan segera datang. Peringatan dini ini dilakukan melalui:
1.Cara non teknis, dengan mengamati gejala yang ditunjukkan lingkungan alam;
2.Cara teknis dengan jalan melakukan pembacaan muka air genting di suatu pos pengamatan.
UPAYA MENGATASI MASALAH BANJIR
1. Penanganan secara non struktural (non fisik) meliputi;
Pengembangan system Peringatan Dini Bahaya Banjir (melalui Unit Telemetry dan Pos Piket Radio Pemantau Banjir)
Penyediaan bahan yang dibutuhkan saat pengungsian dan peralatan penanganan darurat akibat banjir (pompa, dump truk, perahu karet, dan lain-lainnya)
Persiapan masyarakat dalam menghadapi banjir.
2. Penanganan secara struktural (fisik) yang meliputi;
Normalisasi/optimnalisasi dan penataan sungai/ banjir kanal
Perbaikan, perkuatan tanggul/tebing sungai dan banjir kanal
Pembangunan Banjir Kanal Timur (BKT) dan Banjir Kanal Barat (BKB)
Pembangunan system pompa/system polder
Pembangunan Waduk Ciawi
Rehabilitasi situ-situ.
QUEU
Suatu susunan koleksi data dimana data dapat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data, yang disebut dengan top of stack
Stack bersifat LIFO (Last In First Out)
“Benda yang terakhir masuk ke dalam stack akan menjadi yang pertama keluar dari stack
Operasi Stack
Push : digunakan untuk menambah item pada stack pada tumpukan paling atas
Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas
Clear : digunakan untuk mengosongkan stack
IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong
IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh
Stack with Array of Struct
Definisikan Stack dengan menggunakan suatu struct
Definisikan konstanta MAX_STACK untuk menyimpan maksimum isi stack
Elemen struct Stack adalah array data dan top untuk menadakan posisi data teratas
Buatlah variabel tumpuk sebagai implementasi dari struct Stack
Deklarasikan operasi-operasi/function di atas dan buat implemetasinya
Program Stack
Contoh deklarasi MAX_STACK
#define MAX_STACK 10
Contoh deklarasi STACK dengan struct dan array data
typedef struct STACK{
int top;
int data[10];
};
Deklarasi/buat variabel dari struct
STACK tumpuk;
Program Stack (2)
Inisialisasi Stack
Pada mulanya isi top dengan -1, karena array dalam bahasa C dimulai dari 0, yang berarti bahwa data stack adalah KOSONG!
Top adalah suatu variabel penanda dalam Stack yang menunjukkan elemen teratas data Stack sekarang. Top Of Stack akan selalu bergerak hingga mencapai MAX of STACK yang menyebabkan stack PENUH!
Program Stack (3)
Fungsi IsFull
Untuk memeriksa apakah stack sudah penuh?
Dengan cara memeriksa top of stack , jika sudah sama dengan MAX_STACK-1 maka full , jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full
sumber: http://www.google.co.id/#hl=id&cr=countryID&ei=5QKaS_6PD9C1rAeXkZHSCw&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CAUQBSgA&q=antrian/queue+dalam+struktur+data&spell=1&fp=a05003197864f75b
Kamis, 11 Maret 2010
PEMAHAMAN DALAM MENGHADAPI BANJIR
Untuk mengantisipasi ancaman banjir dan menekan akibatnya, diperlukan pemahaman masya¬rakat atas kejadian banjir sekaligus pengelolaan yang diperlukan untuk menghadapinya. Yaitu pemahaman atas pengelolaan (pengendalian) banjir.
Pemahaman seluruh lapisan masyarakat dalam upaya penanganan banjir mencakup tiga prinsip pokok yang kesemuanya memerlukan kerjasama yang erat antara masyarakat, dunia usaha dan pemerintah dengan seluruh aparatnya termasuk TNI dan Polri.
Ketiga prinsip pokok penanganan masalah banjir tersebut meliputi:
1. Masyarakat, Dunia Usaha, dan Pemerintah yang dalam keberadaannya merupakan Domain;
2. Perlu adanya hubungan yang sinergis di antara Masyarakat, Dunia Usaha, dan Pemerintah dan;
3. Perlu adanya kesamaan pemahaman, pengertian, dan 'bahasa' keterpaduan langkah di lingkungan Masyarakat, Dunia Usaha, dan Pemerintah.
Konsep yang harus dikembangkan adalah memadu-serasikan upaya konservasi sumber daya air dengan pengendalian banjir, sehingga dicapai solusi berkelanjutan..
Tempat Pembuangan Sampah Terpadu Bojong
• Keberadaan TPST Bojong tidak hanya dipakai untuk tempat pembuangan sampah dari Jakarta, tapi juga sampah dari Kabupaten Bogor dan daerah-daerah sekitarnya. Keberadaannya juga akan dapat membuka kesempatan pekerjaan bagi warga sekitarnya.
• Namun sangat disayangkan bahwa instalasi tersebut tidak dapat berfungsi bahkan rusak total akibat tindakan anarkis sebagian kecil warga masyarakat. Padahal, teknologi TPST Bojong telah diterapkan di banyak negara-negara maju dengan masyarakatnya yang sudah sadar lingkungan, namun kehadiran teknologi tersebut tidak dipersoalkan.
PENGOLAHAN SAMPAH TEKNOLOGI TINGGI DIOPERASIKAN
• Kendati Instalasi SPA Cacing merupakan langkah awal dalam penanganan sampah berteknologi baru, setidaknya telah menjadi tanda akan keseriusan Pemprov DKI Jakarta yang selama ini menetapkan sistem kebijakan pembangunan berkelanjutan dalam penanganan sampah. Disamping itu, upaya tersebut secara bertahap akan menghapus kekhawatiran segenap warga masyarakat akan ancaman dampak buruk sampah baik secara kualitas maupun kuantitas terhadap kelestarian lingkungan hidup.
• Dengan dioperasikannya instalasi pengelolaan sampah SPA Cacing, disamping relatif tidak banyak membutuhkan lahan keberadaannya menjadi SPA pertama di dalam kota yang telah memanfaatkan tekhnologi baru melalui penerapan sistem zero waste, dimana melalui proses daur ulang sampah akan diubah menjadi potensi sumber daya sehingga mempunyai nilai tambah, ekonomi dan ekologi.
• Bernilai ekonomi karena alternatif teknologi yang digunakan tersebut berupa waste to energy (WTE) dimana sampah didaur ulang sehingga menghasilkan produk yang mempunyai nilai jual (seperti pupuk kompos dan energi bio gas). Daur ulang sampah di SPA Cacing telah menghasilkan pupuk kompos, yang telah diuji dan mendapat ijin edar dari Departemen Pertanian RI. Pupuk tersebut telah diujicoba manfaatnya bagi pertumbuhan dan produktifitas tanaman, adapun pasar konsumen yang telah siap menerima pupuk tersebut adalah berbagai perkebunan di pulau Jawa dan Sumatera.
• Sedangkan dari segi ekologi, penerapan teknologi sangat ramah lingkungan sehingga akan menekan bahkan menghilangkan kerusakan lingkungan akibat dampak buruk sampah. Diharakan ke depan secara bertahap akan mengurangi ketergantungan Pemprov DKI Jakarta dengan daerah lain
Rabu, 10 Maret 2010
STACK
DEFINISI STACK
Definisi 1
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], maka stack S ini dapat digambarkan sebagai berikut :
Definisi 2.
Stack adalah suatu koleksi atau kumpulan item data yang teroganisasi dalam bentuk urutan linear, yang operasi pemasukan dan penghapusan datanya dilakukan pada salah satu sisinya[1]
Definisi 3.
Diberikan suatu himpunan yang terurut himpunan sebagai S = {S1, S2, ......., ST}, T pada anggota S merupakan linear order, sehingga stack dari himpunan tersebut memiliki informasi sebagai berikut [1] :
1. Elemen puncak dari stack dalam himpunan S dikatakan sebagai TOP, sehingga :
TOP[S} = ST ............................................................................(1)
2. Banyaknya elemen stack dalam himpunan S dikatakan sebagai NOEL, sehingga NOEL = T, dimana himpunan dari S tersebut dapat disusun sebagai :
S = {S1, S2, .........., SNOEL} .............................(2)
Dari dua definisi tersebut di atas maka suatu stack dapat digambarkan sebagai berikut :
1. Suatu stack dalam keadaan kosong akan memiliki informasi NOEL(S) = 0 dan TOP(S)= undefined.
S
2. Untuk stack yang bukan kosong, maka akan memiliki informasi seperti yang digambarkan di bawah ini dimana informasi yang ada adalah NOEL(S) = 1 dan TOP(S) = Merah
S
Untuk stack yang berisi lebih dari n jumlah data maka informasi yang ada pada stack tersebut berisikan NOEL(S) = 2 (jika berisi 2 data) dan TOP(S) = Biru seperti ditunjukan pada gambar di bawah ini :
S
Elemen-elemen yang berada dalam stack tersebut di atas, memiliki prinsip dasar dalam pengoperasiannya yaitu prinsip LIFO (Last In First Out) atau yang masuk paling belakang akan memiliki prioritas untuk keluar paling depan.
Suatu stack dapat digambarkan sebagai suatu array (larik) berdimensi satu yang elemen-elemennya berkisar antara 1 sampai n elemen. Dengan demikian jika suatu stack didefinisikan dengan n elemen maka dapat dikatakan jumlah maksimum dari stack atau NOEL(S) nya adalah n, sehingga penambahan elemen stack yang ke n+1 tidak diperkenankan atau stack tersebut dalam kondisi overflow. Hal tersebut juga berlaku untuk stack dengan nilai minimum yaitu NOEL(S) dari stack dalam kondisi 0, jika dilakukan operasi pengambilan elemen atas stack tersebut akan mengakibatkan stack tersebut dalam kondisi underflow. Dua kondisi tersebut merupakan dasar dalam merancang suatu aplikasi pemrograman komputer.
OPERASI DASAR PADA STACK
Dalam penggunaannya suatu stack memiliki beberapa operasi yang dapat diterapkan seperti membuat stack, penambahan eleme ke dalam stack, menghapusan elemen dari dalam stack, dan operasi lain yang berhubungan dengan stack tersebut. Adapun operasi-operasi dasar dari suatu stack adalah :
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
Operasi ini merupakan operasi untuk menambahkan satu elemen dengan nilai X pada puncak suatu stack, sehingga posisi TOP(S) akan bernilai X, penerapan operasi push pasa suatu stack S akan berakibat overflow jika NOEL(S) dari stack tersebut telah bernilai maksimum.
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
Operasi ini berfungsi untuk menghapus satu elemen dari stack S, sehingga posisi NOEL(S) akan berkurang satu elemen, dan TOP(S) akan berubah. Operasi pop dapat menyebabkan kondisi underflow jika suatu stack S yang berada dalam kondisi minimum dikenakan operasi 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
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.
PENGGUNAAN/APLIKASI STACK
Logika stack digunakan untuk menyelesaikan berbagai macam masalah. Antara lain digunakan pada compiler, operating system dan dalam program-program aplikasi. Berikut ini tiga buah contoh aplikasi stack, yaitu :
MATCHING PARENTHESES
Proses ini dilakukan compiler untuk memeriksa kelengkapan tanda kurung yang terdapat pada suatu ekspresi aritmetik. Sedangkan stack di sini digunakan sebagai tempat prosesnya. Algoritma yang digunakan adalah :
1. Elemen-elemen suatu ekspresi aritmetik (string) di-Scan dari kiri ke kanan.
2. Jika ditemukan simbol "(" atau "Left parenthesis", maka simbol tersebut di-push ke dalam stack.
3. Jika ditemukan simbol ")" atau "Right parenthesis", maka isi stack diperiksa.
Ÿ Jika stack kosong à terjadi kesalahan.
berarti : ada simbol ")", tetapi tidak ada simbol "(" yang seharusnya mendahului.
Ÿ Jika stack tidak kosong à artinya ada pasangannya dan langsung di-POP keluar stack.
Misalkan NEXT CHAR adalah suatu karakter terakhir dalam suatu string. Berikut ini bentuk flowchart (logika proses) yang digunakan pada proses matching ini :
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.
NOTASI POSTFIX
Bentuk aplikasi stack yang lain adalah mengubah suatu ekspresi aritmatik (string) ke dalam notasi postfix. Notasi postfix ini digunakan oleh compiler untuk menyatakan suatu ekspresi aritmatik dalam bahasa tingkat tinggi (high level language). Stack digunakan oleh compiler untuk mentransformasikan ekspresi aritmatik menjadi suatu ekspresi dalam bentuk/notasi postfix.
Contoh :
Misal diberikan ekspresi aritmatik : A + B ;
Maka bentuknya dalam notasi postfix menjadi : AB+
Urutan (prioritas) dari operator adalah :
1. Perpangkatan (^)
2. Perkalian (*) atau Pembagian (/)
3. Penjumlahan (+) atau Pengurangan (-)
Aturan yang digunakan dalam proses transformasi tersebut adalah :
1. Ekspresi aritmatik yang diberikan di- "Scan" dari kiri ke kanan.
2. Bila simbol yang di-scan adalah "(", maka simbol tersebut di push ke dalam stack.
3. Bila simbol yang di-scan adalah ")", maka seluruh isi stack di pop keluar mulai dari simbol "(" yang pertama ditemukan dalam stack.
4. Bila simbol adalah operator, maka dilakukan perbandingan dulu dengan simbol (operator) yang berada pada posisi top dalam stack.
a. Jika derajatnya setara atau lebih rendah dari simbol yang berada pada posisi top, maka top stack di-pop keluar sebagai output dan simbol yang baru di-push ke dalam stack.
b. Jika derajatnya lebih tinggi dari simbol yang berada pada posisi top, maka simbol (operator) yang di-scan tersebut di-push ke dalam stack.
5. Bila simbol yang di-scan adalah operand, maka simbol tersebut langsung sebagai output.
6. Bila simbol adalah ";" maka seluruh isi stack di-pop sebagai output.
Contoh :
Misal diberikan sebuah ekspresi aritmatik dengan bentuk sbb:
( (A + B) * C / D + E ^ F ) / G ;
Selanjutnya akan dicari bentuk ekspresi diatas dalam notasi postfix.
Proses yang dilakukan dapat digambarkan dalam tabel berikut :
Urutan
Proses
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Simbol
Yang di
Scan
(
(
A
+
B
)
*
C
/
D
+
E
^
F
)
/
G
;
Top
(
(
(
+
+
(
*
*
/
/
+
+
^
^
/
/
(
(
(
(
(
(
(
(
(
(
+
+
(
(
(
(
Output
A
B
+
C
*
D
/
E
F
^+
G
/
Jadi ekspresi aritmatik : ( ( A + B ) * C / D + E^F ) / G ;
dalam notasi postfix menjadi : AB+D*C/EF^+G/
n PROSES REKURSIF
Stack juga dapat digunakan untuk menelurusuri suatu program atau procedure yang rekursif.
Berikut ini sebuah contoh yang menyelesaikannya menggunakan proses rekursif.
Persoalan :
Agar diperoleh uang sebanyak 1.000.000 rupiah pada 25 tahun yang akan datang, berapakah banyak uang yang harus didepositokan saat ini. dianggap bahwa tingkat bunga tidak berubah selama 25 yahun yaitu sebesar 8% per_tahun.
Penyelesaian :
Untuk menyelesaikan masalah ini akan digunakan logika stack yatiu :
- pada tahun ke-25 jumlah uang = Rp. 1.000.000,-
- pada tahun ke-24 jumlah uang = Rp. 1.000.000 / (1 + 0.8)
- pada tahun ke-23 jumlah uang =
.
dst
Berikut ini sebuh program PASCAL yang mengandung suatu procedure rekursif untuk menghitung jumlah uang diinginkan.
PROGRAM DEPOSITO ;
CONST Goal = 1000000;
Rate = 0.08;
VAR Ju : Real;
Thn: Integer;
PROCEDURE Hitung (VAR Thn : Integer);
BEGIN
IF (Thn > 0) THEN
BEGIN
Ju := Ju/(1.0 + Rate);
Thn := Thn - 1;
Hitung(Thn);
END;
END;
BEGIN
Thn := 25;
Ju := Goal;
HITUNG(Thn);
WRITE(Ju);
END.
Pemanggilan pertama procedure HITUNG dimana nilai Thn =25
Pemanggilan kedua procedure HITUNG dimana nilai Thn = 24
Pemanggilan ketiga procedure HITUNG, dimana nilai Thn = 23
Setelah 25 kali pemanggilan procedure HITUNG keadaan stack adalah :
MAPPING KE STORAGE DARI STACK
Bentuk mapping ke storage dari stack yang paling sederhana adalah dengan menggunakan pendekatan array satu dimensi. Hal ini karena sarana yang digunakan untuk menyatakan suatu stack adalah array.
Jika diberikan stack S dengan m elemen maka bentuk mappingnya seperti mapping array satu dimensi dengan m elemen.
Selanjutnya jika terdapat dua stack S1 dan S2 masing-masing dengan jumlah maksimum elemennya adalah M dan N, maka kedua stack ini dialokasikan dalam dengan bentuk sbb:
Konsep mapping seperti diatas dianggap tidak efisien, terutama jika S1 dan S2 tidak penuh pada saat yang bersamaan.
Cara dianggap lebih baik adalah :
Jika diketahui bahwa jumlah elemen S1 dan S2 tidak melebihi jumlah tertentu, misal N.
NOEL(S1) + NOEL(S2) <= N
Maka bentuk mapping yang digunakan adalah :
Sumber :
http://mugi.or.id/blogs/oke/archive/2008/08/27/aplikasi-stack-pada-struktur-data-untuk-mengkonversikan-notasi-infix-menjadi-notasi-postfix.aspx
http://www.google.co.id/#hl=id&q=deklarasi+stack+dalam+bahasa+pemrograman&meta=cr%3DcountryID&aq=&oq=deklarasi+stack+dalam+bahasa+pemrograman&fp=7e99b3a5df14a093
Jenis-jenis Data
Suatu Struktur Data adalah suatu koleksi atau kelompok Data yang dapat diakterisasikan oleh organisasi secara operasi yang didefinisikan terhadapnya. Struktur data sangat penting dalam sisitem computer. Terhadap setiap variable didalam program, secara eksplisit ataupun implicit, didefinisikan Struktur Data yang akan menentukan operasi yang berlaku terhadap variabel tersebut. Struktur data yang dibicarakan merupakan struktur data logik, bukan penyajian secara fisik di storage.
Pada garis besanya, Data dapat kita kategorikan menjadi :
(a). Tipe Data sederhana atau data sederhana, yang terdiri atas :
- Data Sederhana Tunggal, misalnya integer, Real, Boolean, serta karakter.
- Data Sederhana Majemuk, misalnya String.
Tipe Data ini dengan berbagai cara tertentu dapat diorganisasikan menjadi berbagai struktur data
(b.) Struktur Data, meliputi :
- Struktur Data Sederhana, misalnya Array dan Record.
- Struktur Data Majemuk, terdiri atas :
* Linear, misalnya Stack, Queue, serta Linear Linked List.
* Nonlinear. Misalnya Pohon Binar ( Binary Tree), Pohon Cari Binar (Binary
Search Tree), Pohon Cari M-way (M-way Search Tree), Trie, General Tree, serta Graph.
Kedua kategori diatas, terutama diperuntukan bagi data di dalam storage utama. Data yang diperuntukan bagi Storage tambahan, mempunyai struktur data yang dikenal sebagai Organisasi File.
1.2 Tipe Data Sederhana
Suatu jenis data tertentu aakan disimpan di dalam variabel yang sesuai jenisnya. Jenis variabel menentukan rangkaian nilai yang akan dibutuhkan sewaktuprogram dilaksanakan. Jenis-jenis tipe data sederhana adalah :
1. Integer
Yang dimaksud integer adalah bilangan bulat seperti -3,-2,-1,0,1,2,3,… Integer tidak mengandung pecahan dan biasanya disajikan dalam memoei computer sebagai anka bulat. Didalam aritmatika computer, integer tersebut mudah untuk disajikan dan diproses . Sebuah integer N, biasanya disajikan sebagai sebuah string di dalam memori komputer.
Rumusannya adalah
N<= 2n-1-1
Disini n merupakan jumlah bit di dalam computer yang bersangkutan. Hal ini disebakan karena satu bit dicadangkan untuk disajikan sebagai tanda. Pada Interger dapat dilaksanakan operasi penambahan, pengurangan, perkalian dan pembagian integer (DIV).
Misalnya 13 DIV 3 = 4.
2. Bilangan Real
Bilangan real seperti bilangan pecahan dan bilangan taksional. Jenis data real ditulis menggunakan titik atau koma, contohnya 3.26 43.00 -131.128 , dan sebagainya. Bilangan real dimasukkan kedalam komputer memakai floating point, merupakan versi yang disebut notasi ilmiah. Contoh : 123000 = 0.123 * 106 ., disini 0.123 adalah pecahan dan 6 adalah eksponennya. Rumusnya bilangan Real X adalah :
X = M*RE
Disini X adalah pecahan dan E adalah eksponennya.
3. Aritmatika Campuran
Jika di dalamsuatu pemrograman diperbolehkan memkai cara berhitung dengan aritmatika campuran, maka nilai-nilai numeric yang berbeda jenisnya dapat dicampur di dalam suatu ekspresi. Hal tersebut bahwa telah terjadi konversi anka integer menjadi real atau sebaliknya. Konversi tersebut dapat dilakukan dengan dua cara :
(1) Melalui pemotongan, yakni menghilangkan pecahan dari angka real yangbersangkutan.
(2) Melalui pembulatan kepada angka integer terdekat.
4. Bilangan Kompleks
Suatu bilangan kompleks mempunyai bentuk umum a + bi. Disinin a dan b adalah bilangan real. I adalah suatu bilanga khayal V(-1)
5. Bilangan Presisi Ganda
Didalam beberapa Bahas a Pemograman, bilangan ini tersedia dalam bentuk tipe
data, dan merupakan suatu bentuk khusus dari bilangan real.
6. Tipe Data Boolean atau Logikal
Suatu variabel Boolean atau logical hanya dapat berisikan nilai True atau False,
yang kerapkali dinyatakan pula sebagai I dan O. Operator pada tipe ini yaitu and, or,
dan not.
1.3 Deklarasi Data Dalam Bahasa Pemograman
Bahasa Pemograman mengharuskan pemogram menentukan tipe data bagi variabeln yang digunakan. Semua operasi yang dilakukan terhadap variabel tersebut harus sesuai dengan operasi yang berlaku pada tipe yang bersangkutan. Bahasa PASCAL dan COBOL mengharuskan kita secara eksplisit/ nyata mendeklarasikan tipe dari setiap variabel yang kiyta gunakan dalam program
1.4 Pemetaan ( Mapping ) Ke Storage : Integer
Struktur Data secara Logik, dapat mempunyai beberapa storage mapping atau represtasi
fisik. Salah satu storage yang dapat dilakukan integer adalah apa yang disebut bentuk sign-and-magnitude. Jika sehari-hari bilangan dinyatakan dalam baris 10 (system desimal), maka dalam komputer dinyatakan dalam Bilalangan Binary ( baris 2). Mapping dalam integer ada 2 sistem two’s complement
1.5 Organisasi Logik dan Fisik dari Struktur Data
Struktur Data terdiri dari Satuan Data sederhana yang cocok untuk program yang memakainya. Hubungan antara Satuan Data tersebut membentuk salah satu cirri dari Struktur Data tersebut. Jika Struktur Data tidak tersidia di komputer, makapemogram harus membuatnya terlebih dahuludari Tipe Data yang tersedia. Berhubung Struktur Data tersebut harus dimasukkan ke dalam memori komputer berupa untai bit, maka setiap struktur diberi cirri oleh Organisasi Logikal dari Organisasi Fisikal. Jika Satuan Data sederhana dapat membentuk sebuah Struktur yang lebih hemat dalam memori, maka Struktur Data tersebut disatukan : beberapa Satuan Data sebagai satu untaian atau byte.
Sumber :
D. Suryadi H.S., Pengantar Struktur data, Gunadarma, 1998
ARRAY
2.3.1 ARRAY DIMENSI SATU
Sebuah array dimensi satu, yang misalnya kita beri nama NILAI, dapat kita bayangkan
berbentuk seperti Gambar 2.1.
Nilai(1) Nilai(2) Nilai(3) - - - Nilai(n)
Gambar 2.3.1. Array berdimensi satu
Subscript atau indeks dari elemen array menyatakan posisi, elemen pada urutan dalam
array tersebut. Notasi yang digunakan bagi elemen array, biasanya adalah nama array
dilengkapi dengan subcript.
Secara umum, suatu array dimensi satu A dengan tipe data T dan subscript bergerak
dari L sampai dengan U, ditulis sebagai A(L:U) = (A(l)), I = L, L+1, L+2,..., U, dan setiap
elemen A(l) bertipe data T.
Sebagai contoh, kita dapat menuliskan data hasil pencatatan suhu suatu ruangan setiap
satu jam selama periode 24 jam, dalam sebuah array dimensi satu.
Harga minimum dari subscript dari array disebut batas bawah atau lower bound,
sedangkan harga maksimumnya disebut batas atas atau upper bound. Jadi pada array di
atas, L merupakan batas bawah, dan U batas atas. Sedangkan untuk array ''suhu'' yang
elemennya dapat kita tulis sebagai SUHU(I), batas bawahnya adalah 1 dan batas atasnya
24. SUHU(I) menyatakan suhu pada jam ke-1, dan I memenuhi 1 <= I <= 24, I merupakan
integer.
Batas bawah dari array, pada beberapa aplikasi, tidak selalu diambil 1. Kadangkadang
diambil batas bawah nol, bahkan juga negatif. Banyaknya elemen sebuah array
disebut rentang atau range. Jadi array A(L:U) mempunyai range sebesar U-L+1. Secara
khusus bila L=l dan U=N, maka range dari array A(l:N) adalah N-I+1 = N.
2.3.2 ARRAY DIMENSI BANYAK
Sebuah array dimensi banyak atau multi-dimensional array didefinisikan sebagai sebuah array yang elemennya berupa array pula. Misal array B mempunyai M elemen berupa array pula, yang terdiri dari N elemen. Kalau hal tersebut kita gambarkan, akan terbentuk baris dan kolom seperti terlihat pada Gambar 2.2.
1 2 N
1
2
M
Gambar 2.3.2. Array berdimensi dua
Untuk itu diperlukan dua buah subscript. Yang pertama digunakan untuk menyatakan
posisi baris, sedangkan yang kedua untuk posisi kolom. Secara umum array dimensi dua
B, dengan elemen bertipe data T, subscript baris dari l sampai M, subscript kolom dari l sampai N, ditulis sebagai B(1:M, 1:N) = (B(I,J)), I = 1, 2, ...,M dan J = 1, 2,...,N dengan setiap elemen B(I,J) bertipe data T. Array B tersebut dikatakan berukuran atau berorder M x N. Di sini banyak elemen array adalah M*N.
Contoh dari array dimensi dua sangat banyak kita jumpai. Misalnya nilai ujian 500
mahasiswa Gunadarma tingkat 3, untuk 8 mata kuliah dapat kita sajikan sebagai array
dimensi dua yang berorder 500 x 8. Elemen B(I,J) menyatakan nilai mahasiswa ke-I untuk mata kuliah ke-J.
Seperti halnya pada array dimensi satu, pada array dimensi dua batas bawah untuk
subscript I maupun J dapat diambil secara umum. Misalnya, batas bawah subscript baris
adalah L1 subscript kolom adalah L2 sedangkan batas atas subscript baris adalah U1 dan untuk kolom adalah U2, maka array dimensi dua tersebut dapat dinotasikan sebagai : B(L1:U1, L2:U2) = (B(I,J)), L1 <= 1 <= U1, L2 <=J <= U2
dengan setiap elemen B(I,J) bertipe data T. Banyaknya elemen pada setiap baris adalah U2 – L2 + 1 dan pada setiap kolom adalah U1–L1+l, sehingga banyaknya elemen pada array B semua ada = (U2-L2 +1) * (U1-L1 +1).
Yang dimaksud dengan cross-section suatu array berdimensi dua adalah pengambilan
salah satu subscript, misalnya subscript baris untuk tetap atau konstan, sementara subscript yang satunya lagi kita ubah-ubah sepanjang rangenya. Notasi yang umum digunakan adalah notasi * (asterisk) bagi subscript yang berubah-ubah nilainya tersebut.
Contohnya, penulisan B(*,4) menyatakan semua elemen pada kolom ke-4, yakni
(B(1,4),B(2,4), B(3,4) ...., B(M,4)), seperti terlihat pada Gambar 2.3
Gambar 2.3. Cross section array
Dengan mudah dapat dimengerti bahwa B(11,*) menunjukkan semua elemen pada baris
ke-11. Transpose dari suatu array dimensi dua adalah penulisan baris menjadi kolom (kolom menjadi baris) dari suatu array. Jadi transpose dari array berorder M x N adalah array berorder N x M. Transpose dari array B dinotasikan sebagai BT. Berdasarkan definisi,maka jelas B(I,J) =BT(J,I). Contohnya B(3,5) = BT(5,3).
Pengertian di atas dapat kita perluas untuk array dimensi tiga, dimensi empat, sampai
dimensi N. Array dimensi N kita tulis sebagai :
A(L1:U1, L2:U2, …, LN: UN) = (A(I1, I2, …, IN))
dengan Lk <= Ik <= Uk, untuk setiap k = 1, 2, …, N.
Banyaknya elemen dari array A tersebut adalah :
PI(Uk - Lk + 1) = (U1-L1+1) * (U2 – L2+1) … * (UN -LN + 1)
Contoh array dimensi tiga adalah penyajian data mengenai banyaknya mahasiswa
dari-20 perguruan tinggi di Jakarta, berdasarkan tingkat (tingkat 1, 2 sampai dengan 5), dan jenis kelamin (pria atau wanita). Misalnya array tersebut dinamakan MHS. Ambil sebagai subscript pertama, tingkat : I = 1, 2,...,5; subscript kedua, jenis kelamin (pria = 1, wanita = 2): J = 1,2, dan subscript ke-3, Perguruan Tinggi adalah K = 1,2,...,20. Jadi MHS(4,2,17) menyatakan jumlah mahasiswa tingkat 4, wanita, dari perguruan tinggi ke 17.
Array dimensi tiga dapat kita bayangkan seperti Gambar 2.4.
1
2
3
4
5
1 2 1
2
Tingkat 20
Jenis Kelamin
Perguruan Tinggi
Gambar 2.4. Array berdimensi tiga
Pengertian cross-section pada array dimensi banyak, adalah sama seperti pada array
dimensi dua. Misalnya MHS(4,*,17) menunjukkan jumlah mahasiswa tingkat 4 dari
perguruan tinggi 17 (masing-masing untuk pria serta wanita). MHS(*,*,3) menun-jukkan
jumlah mahasiswa untuk masing-masing tingkat, pria serta wanita, dari perguruan tinggi 3.
2.4 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
2.5 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.
Sebagai contoh, array yang dideklarasikan sebagai RATE(1:4,1:6), yang secara logika
tergambar sebagai pada Gambar 2.5 dan secara fisik tergambar pada Gambar 2.6.
1 2 3 4 5 6
1
2
3
4
Gambar 2.5. Array RATE secara logik dalam row major order
RATE (2,4)
RATE (2,4)
Baris 1 Baris 2 Baris 3 Baris 4
Gambar 2.6 Array RATE secara fisik dalam row major order.
Skema seperti di atas digunakan dalam COBOL, Pascal ataupun PL/1.
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
Untuk lebih jelasnya, kita lihat array Z(-2:2, 4:6) yang dapat digambarkan pada Gambar
2.7 secara logik dan secara fisik dapat digambarkan pada Gambar 2.8.
4 5 6
-2
-1
0
1
2
Gambar 2.7. Array Z (-2:2, 4:6) secara logik dalam row major order
Z (0,6)
Z (0,6)
baris -2 baris -1 baris 0 baris 1 baris 2
Gambar 2.8. Array Z(-2:2,4:6) secara fisik dalam row major order
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. Array RATE pada contoh di atas terlihat
secara fisik dalam column major order seperti pada Gambar 2.9.
RATE (2,4)
Kolom 1 Kolom 2 Kolom 3 Kolom 4 Kolom 5 Kolom 6
Gambar 2.9. Array RATE secara fisik dalam column major order
Skema seperti ini biasa digunakan dalam FORTRAN.
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];
2.5 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 = 1
Pengantar Struktur Data Bab 2 – Array & Record
41
Gambar 2.10 menunjukkan triangular array berorder 6 x 6.
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)
Gambar 2.10 (a) Upper triangular array
(b) Lower triangular array
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
pendekatan terhadap problema ini adalah dengan pelinearan array, dan dengan hanya
menyimpan bagian 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), elemen T(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, elemen T(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 N x
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 dan C(I+1,J) = B(I,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, dan B(I,J)
disimpan sebagai C(I,J) untuk I >= J.
Perhatikan contoh berikut array A berorder (3 x 3) merupakan upper tringular.
1 2 3
0 4 5
0 0 6
Array B berorder (2 x 2) merupakan lower tringular,
7 0
8 9
maka mereka disimpan bersama dalam array C sebagai
1 2 3
7 4 5
8 9 6
Contoh berikut,
1 2 3 7 0 0
A = 0 4 5 B = 8 9 0
0 0 6 11 12 13
dapat disimpan sebagai array C berorder (3 x 4)
7 1 2 3
8 9 4 5
11 12 13 6
Misalkan sekarang ada 2 array, sama-sama upper tringular, yakni array A1 dan A2.
Kita dapat menyimpan mereka bersama-sama dengan melakukan transpose terhadap salah
satu array tersebut, misalnya A2 menjadi A2T. A2T adalah array lower tringular. Array C
berorder N x (N+1) akan menyimpan elemen A1(I,J) sebagai C(I,J+1) untuk I <= J, dan
elemen A2(I,J) akan disimpan sebagai C(J,I) untuk I >= J.
Sebagai contoh adalah array :
1 2 3 7 8 9
A1 = 0 4 5 A2 = 0 11 12
0 0 6 0 0 13
7 0 0
maka A2T = 8 11 0
9 12 13
dan mereka tersimpan sebagai :
7 1 2 3
C = 8 11 4 5
9 12 13 6
II.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 :
dan sebagainya lagi.
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
4 MENIKAH
Pada record tersebut di atas, satuan data seperti NAMA BELAKANG ataupun KOTA
merupakan tipe data string, sedangkan data lain seperti GAJI POKOK, TUNJANGAN
JABATAN dan berbagai data yang akan diolah secara matematis akan disimpan dengan
tipe data numerik, bisa integer maupun real. Data MENIKAH bisa digunakan tipe data
boolean atau logikal. Seperti telah kita paparkan terdahulu, array berbeda dengan record, yakni array bersifat homogen (terdiri dari tipe data yang sama), dan komponen array tidak memiliki nama sendiri, dan hanya diberi identifikasi oleh posisi mereka di dalam array. Penggunaan keduanya di dalam program juga berbeda, jika penggunaan array pada umumnya akan disimpan di memori utama komputer (bersifat sementara), sedangkan record biasanya digunakan dalam filing yang akan disimpan di memori sekunder komputer, seperti harddisk, disket, dan lainnya.
Sebuah record memberi informasi tentang berbagai kondisi dari obyek pada
permasalahan yang nyata sehari-hari. Setiap field memberi uraian tentang satu atribut dari obyeknya. Sebuah record biasanya diberi identifikasi oleh key-nya. Key atau kunci adalah salah satu atau lebih field yang dipilih untuk tujuan penyampaian informasi yang terjadi di dalam record yang bersangkutan.
Koleksi dari record yang sama struktur fieldnya disebut suatu file atau berkas. Jadi,koleksi dari record semua pegawai perusahaan membentuk sebuah file personalia. Pada umumnya record disimpan membentuk file, dalam urutan sesuai dengan nilai dari key masing-masing. Di dalam suatu file PERSONALIA, field NOMOR JAMINAN SOSIAL
dari seorang pegawai dapat digunakan sebagai key. Di dalam bahasa pemrograman tingkat
tinggi, record dapat dinyatakan sebagai struktur data (COBOL dan PL/1) dapat diadakan
spesifikasi tentang nama record, field dan subfield yang bersangkutan.
Record tersebut juga diberi nomor seperti diperlihatkan di dalam contoh di bawah ini. Deklarasi berikut ini dapat digunakan untuk menuliskan record dari file PERSONALIA diatas.
01 PEGAWAI
02 NOMOR-JAMINAN-SOSIAL
02 NAMA
03 NAMA-BELAKANG
03 NAMA-DEPAN
03 NAMA-TENGAH
02 ALAMAT
03 JALAN
04 NOMOR RUMAH
04 NAMA-JALAN
03 KOTA
03 NEGARA-BAGIAN
03 KODE-POS
02 MENIKAH
(yang harus dilengkapi dengan Picture masing-masing field dan subfield)
Record tersebut dinyatakan di dalam memori sebagai berikut :
NOMOR
JAM-SOS
NAMA
BLK.
NAMA
DEPAN
NAMA
TENG.
NOMOR
RUMAH
NAMA
JALAN KOTA
NEG.
BAGIAN
KODE
POS
MENIKAH
Secara fisik, field record tersebut biasanya disimpan berurutan di dalam lokasi storage, bahkan sering disatukan. Record biasanya disimpan sebagai file di dalam storage pembantu, dan jika perlu, sebagian disimpan di dalam memori utama. File merupakan organisasi data utama di dalam proses pengolahan informasi.
Sebagai gambaran sederhana, pandang sebuah tabel dengan sejumlah baris dan kolom.
Tabel tersebut dapat disebut sebagai sebuah file, sedangkan setiap baris dari tabel tersebut disebut dengan record, dan setiap kolom dari tabel disebut dengan field.
Tabel 2.2 Contoh sebuah file TEMAN
NPM NAMA ALM_TEMAN NO_TELP
10102456 Cheriwaty Jl. Puspa No. 30, Keb. Baru 7750658
10102587 Tia Siti Joy Jl. Veteran No. 38, Tebet 8652541
10102965 Yekti Sartanto Jl. Mampang No. 29, Jaksel 78956215
field field field field
record
record
record
Pembahasan mendalam tentang file akan dibahas di mata kuliah-mata kuliah yang
memiliki sub-bahasan mengenai pengorganisasian dan pengaksesan file, perancangan
sistem, perancangan data base, dan sejenisnya.
SUMBER:
http://www.google.co.id/#hl=id&source=hp&q=tringular+array+&btnG=Telusuri+dengan+Google&meta=cr%3DcountryID&aq=f&oq=tringular+array+&fp=7e99b3a5df14a093