Kamis, 25 Februari 2010

Kecanduan Alkohol

tentang penyalahgunaan alkohol dan ketergantungan pada orang dewasa. Untuk informasi tentang masalah alkohol dalam teens atau anak-anak, lihat topik Teen Alcohol and Drug Abuse. Untuk informasi tentang penyalahgunaan narkoba di dewasa, lihat topik Penyalahgunaan Narkoba dan ketergantungan.

Penyalahgunaan alkohol berarti tidak sehat atau mempunyai kebiasaan minum yang berbahaya, seperti minum setiap hari atau minum terlalu banyak pada suatu waktu. Penyalahgunaan alkohol dapat membahayakan hubungan Anda, menyebabkan Anda kehilangan pekerjaan, dan mengakibatkan masalah hukum seperti saat mengemudi mabuk (teler). Bila Anda penyalahgunaan alkohol, Anda terus minum walaupun Anda tahu Anda minum menyebabkan masalah.
Jika Anda terus menerus penyalahgunaan alkohol, dapat mengakibatkan ketergantungan alkohol. Ketergantungan alkohol disebut juga alcoholism. Anda berada secara fisik atau mental ketagihan alkohol. Anda perlu memiliki yang kuat, atau perdambaan, minum. Anda merasa seperti Anda harus minum hanya untuk mendapatkan oleh.

Anda mungkin tergantung pada alkohol bila Anda mempunyai tiga atau lebih masalah berikut ini dalam satu tahun:

* Anda tidak dapat berhenti minum atau mengontrol berapa banyak yang Anda minum.
* Anda harus minum lebih banyak untuk mendapatkan efek yang sama.
* Anda memiliki gejala-gejala penarikan ketika anda berhenti minum. Ini termasuk rasa sakit pada perut, berkeringat, kegoyahan, dan kegelisahan.
* Anda menghabiskan banyak waktu dan memulihkan minum dari minum, atau ada kegiatan lain yang diberikan atas sehingga Anda dapat minum.
* Anda mencoba untuk berhenti minum atau mengurangi jumlah yang Anda minum tetapi belum mampu.
* Anda terus minum walaupun harms hubungan Anda dan menyebabkan anda untuk mengembangkan masalah fisik.

Alcoholism adalah jangka panjang (kronis) penyakit. It's not a kelemahan atau kurangnya ketekunan. Seperti banyak penyakit lainnya, ia memiliki program studi yang dapat diprediksi, telah diketahui gejala, dan dipengaruhi oleh gen dan keadaan hidup Anda.
Berapa banyak minum terlalu banyak?

Alkohol adalah bagian dari kehidupan banyak orang dan mungkin memiliki tempat dalam budaya dan tradisi keluarga. Kadang-kadang dapat menjadi keras untuk tahu kapan anda mulai minum terlalu banyak.

Anda beresiko minum terlalu banyak dan harus berbicara dengan dokter Anda jika Anda adalah: 1

* Seorang wanita yang memiliki lebih dari 3 minuman pada satu waktu atau lebih dari 7 minuman seminggu. J standar minum Klik di sini untuk melihat contoh. adalah 1 dapat bir, 1 gelas anggur atau minuman dicampur 1.
* Seorang pria yang memiliki lebih dari 4 minuman sekaligus atau lebih dari 14 minuman seminggu.

Jika Anda berpikir Anda mungkin memiliki masalah minum, mengambil kuis singkat untuk memeriksa gejala:

Alat Interaktif: Apakah Anda Punya Drinking Problem? Klik di sini untuk melihat sebuah alat interaktif.

Apa saja tanda-tanda penyalahgunaan alkohol atau ketergantungan?

Perilaku tertentu bisa berarti bahwa Anda mengalami masalah dengan alkohol. Ini termasuk:
• Minum di pagi hari, yang sering diminum dalam jangka waktu yang lama waktu tertentu, atau minum sendiri.
• Mengubah apa yang anda minum, seperti beralih dari bir ke anggur karena Anda akan membantu anda minum kurang dari atau membuat Anda mendapatkan mabuk.
• Merasa bersalah setelah minum.
• Membuat alasan untuk minum atau melakukan sesuatu untuk menyembunyikan Anda minum, seperti alkohol membeli di toko yang berbeda.
• Tidak mengingat apa yang anda lakukan ketika anda sedang berada minum (blackouts).
• Khawatir bahwa Anda tidak akan cukup untuk alkohol malam atau akhir pekan.

Bagaimana alkohol masalah ini didiagnosis?

Alkohol masalah dapat didiagnosis dengan rutin mengunjungi dokter bila Anda melihat atau dokter untuk masalah lain. Jika pasangan atau teman berpikir Anda memiliki masalah alkohol, ia Mei meminta Anda untuk melihat dokter.

Dokter akan bertanya tentang gejala dan kesehatan masa lalu, dan ia akan melakukan pemeriksaan fisik dan kesehatan mental yang kadang-kadang penilaian. Penilaian kesehatan jiwa yang memeriksa untuk melihat apakah Anda mungkin memiliki masalah kesehatan mental, seperti depresi.

Dokter Anda juga dapat mengajukan pertanyaan atau melakukan tes untuk mencari masalah-masalah kesehatan dihubungkan dengan alkohol, seperti sirosis.
Bagaimana mereka diperlakukan?

Perlakuan buruk tergantung pada bagaimana anda adalah masalah alkohol. Beberapa orang dapat memotong kembali ke tingkat yang sedang minum dengan bantuan dari seorang konselor. Orang-orang yang ketagihan alkohol mungkin perlu perawatan medis dan mungkin harus tinggal di sebuah rumah sakit atau pusat pengobatan.

Dokter Anda dapat memutuskan perlu detoxification, atau Detox, sebelum memulai perawatan. Detox flushes out the alkohol di tubuh Anda. Anda perlu Detox ketika Anda berada secara fisik ketagihan alkohol. Bila Anda melalui Detox, Anda mungkin perlu obat untuk membantu withdrawal symptoms.

Setelah Detox, Anda tetap fokus pada bebas alkohol, atau seadanya. Kebanyakan orang menerima beberapa jenis terapi, seperti konseling kelompok. Anda juga mungkin perlu obat-obatan untuk membantu anda tetap bijaksana.

Bila Anda bijaksana, Anda telah mengambil langkah pertama menuju pemulihan. Untuk mendapatkan pemulihan penuh, Anda perlu mengambil langkah-langkah untuk meningkatkan daerah lain hidup anda, seperti belajar untuk berurusan dengan pekerjaan dan keluarga. Hal ini mempermudah Anda untuk tetap bijaksana.

Anda mungkin akan membutuhkan dukungan untuk tetap siuman dan dalam pemulihan. Hal ini dapat meliputi konseling dan dukungan kelompok-kelompok seperti Alcoholics Anonymous. Pemulihan adalah sebuah proses jangka panjang, bukan sesuatu yang dapat dicapai dalam beberapa minggu.

Perlakuan tidak fokus pada penggunaan alkohol sendiri. It alamat lain di hidup anda, seperti anda hubungan, pekerjaan, masalah medis, dan situasi kehidupan. Pengobatan dan dukungan pemulihan Anda membuat perubahan positif sehingga Anda dapat hidup tanpa alkohol.
Apa yang dapat Anda lakukan jika Anda atau orang lain memiliki masalah dengan alkohol?

Jika Anda merasa Anda memiliki masalah alkohol, mendapatkan bantuan. Bahkan jika Anda berhasil di daerah lain hidup anda, kunjungi dokter atau pergi ke suatu kelompok swadaya. Anda yang sebelumnya mendapatkan bantuan, maka ia akan lebih mudah untuk mengurangi atau berhenti.

Membantu seseorang dengan masalah alkohol adalah keras. Jika anda untuk meliputi orang, Anda harus berhenti. Misalnya, jangan membuat alasan kepada orang ketika dia bekerja misses.

Anda mungkin dapat membantu oleh orang berbicara tentang apa-nya kepada anda tidak minum dan lain-lain. Berbicara kepada orang di swasta, ketika orang itu tidak menggunakan alkohol dan obat-obatan atau bila Anda baik tenang. Jika orang tersebut setuju untuk mendapatkan bantuan, panggilan untuk janji segera. Jangan menunggu.

Sumber : http://kesehatan.07x.net/index.php/kecanduan/65-kecanduan-alkohol.html

Bahasa Korea

Bahasa Korea (한국어/한국말) adalah bahasa yang paling luas digunakan di Korea, dan merupakan bahasa resmi Korea Selatan dan Korea Utara. Bahasa ini juga dituturkan secara luas di Yanbian di Cina timur laut. Secara keseluruhan terdapat sekitar 78 juta penutur bahasa Korea di seluruh dunia termasuk kelompok-kelompok besar di Uni Soviet, AS, Kanada dan Jepang. Klasifikasi resmi bahasa Korea masih belum disetujui secara universal, namun dianggap oleh banyak orang sebagai bahasa isolat. Beberapa ahli bahasa memasukkannya ke dalam kelompok bahasa Altaik. Bahasa Korea juga banyak mirip dengan bahasa Jepang yang status kekerabatannya juga kurang jelas.
Sistem penulisan bahasa Korea yang asli — disebut Hangul — merupakan sistem yang silabik dan fonetik. Aksara-aksara Sino-Korea (Hanja) juga digunakan untuk menulis bahasa Korea. Walaupun kata-kata yang paling umum digunakan merupakan Hangul, lebih dari 70% kosakata bahasa Korea terdiri dari kata-kata yang dibentuk dari Hanja atau diambil dari bahasa Mandarin.
Huruf ini dikenalkan oleh Raja Sejong pada abad ke-15, dikenal sebagai Hunmin Jeongeum. Namun istilah Hangul baru dikenal pada permulaan abad ke-20. Setelah Hangeul digunakan pun, Hanja masih tetap dipakai, sedang Hangeul dipakai oleh orang-orang tidak berpendidikan, wanita dan anak-anak.
Namun pada perkembangannya, Hangeul makin banyak digunakan bahkan pada abad ke-19 dan permulaan abad ke-20, penggunaan Hangeul dan Hanja seimbang. Namun kini, Hanja hanya dijumpai pada tulisan-tulisan akademik dan resmi, sedangkan hampir semua papan nama, jalan, petunjuk, bahkan tulisan-tulisan informal ditulis dalam Hangeul.
Bahasa Korea pada dasarnya memiliki dialek-dialek yang saling bertalian satu sama lain. Setiap wilayah dapat memahami dialek lainnya, kecuali dialek Pulau Jeju yang dianggap kurang bisa dimengerti dari dialek-dialek provinsi lainnya.

Sumber : http://id.wikipedia.org/wiki/Bahasa_Korea

Penyalahgunaan Alkohol dan Ketergantungan

Obat

Obat dapat digunakan untuk membantu mengobati ketergantungan alkohol dan penyalahgunaan. Beberapa obat-obatan mengurangi gejala penarikan selama detoxification. Obat-obatan lainnya membantu Anda tinggal seadanya panjang selama proses pemulihan.
Obat Choices

Obat-obatan lebih sering digunakan untuk mengobati gejala penarikan selama detoxification termasuk:

* Antianxiety obat-obatan (benzodiazepines seperti diazepam), yang merawat dengan gejala seperti igauan tremens (DTS).
* Penyitaan obat-obatan untuk mengurangi atau menghentikan parah gejala penarikan selama detoxification.
Obat-obatan yang digunakan untuk membantu Anda tetap bijaksana termasuk:

* Disulfiram (Antabuse), yang akan mengurangi kenikmatan menghasilkan alkohol dan membuat anda sakit perut anda ketika anda minum.
* Naltrexone (ReVia, Vivitrol), yang dengan senang interferes anda dapatkan dari minum. Vivitrol adalah sekali-a-bulan suntikan yang digunakan untuk mengobati ketergantungan alkohol.
* Acamprosate (Campral), yang dapat mengurangi perdambaan untuk alkohol.
* Topiramate (Topamax), obat-obatan yang digunakan untuk mengobati serangan. Salah satu studi baru-baru ini menunjukkan bahwa hal itu juga dapat membantu mengobati alkohol problems.6 Ahli adalah belajar bagaimana ini obat-obatan, dan obat-obatan seperti itu, mungkin dengan membantu pemulihan dari penyalahgunaan alkohol dan addiction.

Tentang apa yang harus dipikirkan

Penyalahgunaan alkohol bisa menyebabkan tubuh Anda menjadi rendah dalam beberapa vitamin dan mineral, terutama thiamine (vitamin B1). Anda mungkin perlu mempertimbangkan thiamine suplemen untuk meningkatkan gizi selama pemulihan. Thiamine membantu mencegah sindroma Wernicke-Korsakoff, yang menyebabkan otak damage.7

Sumber : http://kesehatan.07x.net/index.php/kecanduan/66-penyalahgunaan-alkohol-dan-ketergantungan.html

Rabu, 24 Februari 2010

STACK atau TUMPUKAN

1. DEFINISI STACK
Stack atau tumpukan adalah bentuk khusus dari linear list. Pada stack, penghapusan serta
pemasukan elemennya hanya dapat dilakukan di satu posisi, yakni posisi akhir dari list.
Posisi ini disebut puncak atau top dari stack. Elemen stack S pada posisi ini dinyatakan
dengan TOP(S).
Jelasnya, bila stack S [S1, S2, …, ST], maka TOP(S) adalah ST. Banyaknya elemen stack
S pada suatu saat tertentu biasa kita sebut sebagai NOEL(S). Jadi untuk stack kita di atas,
NOEL(S) = T. Seperti halnya pada semua linear list, pada stack dikenal operasi penghapusandan pemasukan.
Operator penghapusan elemen pada stack disebut POP, sedangkan operator pemasukan
elemen, disebut PUSH. Untuk menggambarkan kerja kedua operator di atas, berikut ini
suatu contoh bermula dari stack hampa S[ ], yang kita gambar sebagai:
S NOEL(S) = 0, TOP(S) tidak terdefinisimula-mula kita PUSH elemen A, diperoleh Stack S = [A]
A S NOEL(S) = 1, TOP(S) = A
Apabila kemudian kita PUSH elemen B, diperoleh Stack S = [A,B]
S NOEL(S) = 2, TOP(S) = B
Selanjutnya bila PUSH elemen C, diperoleh Stack S = [A,B,C]
S NOEL(S) = 3, TOP(S) = B
Kemudian bila kita POP elemen C, diperoleh Stack S = [A,B]
S NOEL(S) = 2, TOP(S) = B
Kita dapat pula PUSH 2 elemen D dan E. Akan dihasilkan Stack S = [A,B,D,E]
S NOEL(S) = 4, TOP(S) = E, dan seterusnya.
Terlihat bahwa kedua operasi di atas, pada stack adalah bersifat ‘terakhir masuk pertama
keluar’ atau ‘last in first out (LIFO)’. Pada hakekatnya kita tidak membatasi berapa banyakelemen dapat masuk ke dalam stack. Untuk suatu stack S[S1, S2,..., SNOEL], kita katakanbahwa elemen Si, berada di atas elemen Sj, jika i lebih besar dari j. Suatu elemen tidak dapatkita POP ke luar, sebelum semua elemen di atasnya dikeluarkan.
2. OPERASI PADA STACK
Terdapat empat operasi pada stack, yakni CREATE (stack), ISEMPTY(stack), PUSH
(elemen, stack), dan POP (stack). CREATE(S) adalah operator yang menyebabkan stack Smenjadi satu stack hampa. Jadi NOEL(CREATE(S)) adalah 0, dan TOP(CREATE(S))
tak terdefinisi.
Sedangkan operator ISEMPTY(S) bermaksud memeriksa apakah stack S hampa atau
tidak. Operandnya adalah data bertipe stack, sedangkan hasilnya merupakan data bertipe
boolean. ISEMPTY(S) adalah true, jika S hampa, yakni bila NOEL(S) = 0, dan false dalamhal lain. Jelas bahwa ISEMPTY(CREATE(S)) adalah true.
Operator PUSH (E,S) akan bekerja menambahkan elemen E pada stack S. E ditempatkan
sebagai TOP(S). Operator POP(S) merupakan operator yang bekerja mengeluarkan
elemen TOP(S) dari dalam stack. POP(S) akan mengurangi nilai NOEL(S) dengan 1.
Suatu kesalahan akan terjadi apabila, kita mencoba melakukan POP(S) terhadap stack S
yang hampa.
Kesalahan overflow akan terjadi jika kita melakukan operasi pemasukan data (PUSH)
pada stack yang sudah penuh (dalam hal ini jika banyaknya elemen yang kita masukkan kedalam sebuah stack sudah melampaui batas kemampuan memori atau telah didefinisikansebelumnya).Sebaliknya, kesalahan underflow akan terjadi jika stack sudah dalam keadaan hampa,kita lakukan operasi pengeluaran atau penghapusan (POP).

3 DEKLARASI STACK DALAM COBOL DAN PASCAL
Meskipun stack amat luas digunakan, banyak bahasa pemrograman tidak mempunyai
tipe data stack secara built-in. Dalam hal ini, Pemrogram harus memanipulasi sendiri
fasilitas yang dimiliki bahasa pemrograman tersebut, untuk dapat melakukan operasi
stack terhadap variabel stack.
Mungkin cara yang paling sederhana adalah membentuk stack dalam bentuk semacam
array. Jelas kita harus membedakan suatu stack dengan suatu array yang sesungguhnya.
Pemrogram harus memaksakan berlakunya aturan LIFO bagi stack. Selain itu juga,
penempatan stack dalam bentuk array mengakibatkan suatu keterbatasan, yakni bahwa
elemen stack harus homogen. Keterbatasan lain yang timbul adalah keharusan Pemrogram untuk menentukan batas atas dari subscript array, walaupun stack secara teori tidak memilikibatas maksimum dalam jumlah elemen. Jika diinginkan, seharusnya kita dapat membuatstack yang panjangnya tak hingga.
Satu hal yang nyata membedakan stack dengan array adalah banyaknya elemen stack
yang dapat bertambah atau berkurang setiap waktu, sementara banyaknya elemen sebuah
array selalu tetap.
Sekarang marilah kita bicarakan deklarasi dari variabel S yang bertipe data stack.
Diasumsikan bahwa elemen dari S masing-masing bertipe data integer dan panjang stack
maksimum adalah 100 elemen. Kita mendeklarasikan sebuah array yang dilengkapi
dengan variabel TOP-PTR.
Variabel TOP-PTR ini menyatakan subscript dari elemen TOP(S) dari stack. Kita
menamakan kombinasi dari array dan indikator untuk TOP tersebut dengan nama STACKSTRUCT.
Dengan penyajian seperti ini, berlaku bahwa NOEL(S) = TOP-PTR,
ISEMPTY(S) adalah true bila TOP-PTR = 0, dan false bila TOP-PTR lebih besar dari 0.
Dalam COBOL
01 STACK-STRUCT.
02 S PIC 9(5)
OCCURS 100 TIMES.
02 TOP-PTR PIC 9(3)
Dalam Pascal
type stackstruct;
record Stack: Array [ 1..100] of integer;
topptr : integer
end
var S : stackstruct;
Kompilator tidak dapat mengerti aturan LIFO yang kita inginkan. Untuk itu Pemrogram
harus berhati-ati dan tidak memberi indeks pada S di sembarang tempat, selain
dengan nilai TOP-PTR.
Operasi PUSH dan POP dapat kita program sebagai berikut: kita gunakan EON
untuk menyatakan elemen yang di-PUSH ke dalam S dan EOFF untuk elemen yang di-
POP ke luar S. NOEL-MAX menyatakan panjang maksimum stack. Jadi di sini NOELMAX= 100.
Dalam paragraf COBOL:
PUSH.
IF TOP-PTR < NOEL-MAX
THEN COMPUTE TOP-PTR = TOP-PTR+1
MOVE EON TO S( TOP-PTR )
ELSE overflow condition.
POP.
IF TOP-PTR > 0
THEN MOVE S( TOP-PTR ) TO EOFF
COMPUTE TOP-PTR = TOP-PTR-1
ELSE overflow condition.
Dalam procedure Pascal:
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 (var eoff:integer);
begin
if (s.topptr>0)
then
begin eoff;= s.Stack [s.topptr];
s.topptr ;= s.topptr - 1
end
else UNDERFLOW-CONDITION
end;
Stack sangat luas pemakaiannya dalam menyelesaikan berbagai macam problema.
Kompilator, sistem operasi, dan berbagai program aplikasi banyak menggunakan konsep
stack tersebut. Salah satu contoh adalah problema Penjodohan Tanda Kurung atau matching parantheses.
Sebuah kompilator mempunyai tugas, salah satu di antaranya adalah menyelidiki
apakah Pemrogram telah dengan cermat mengikuti aturan tata bahasa, atau sintaks dari
bahasa pemrograman yang bersangkutan. Misalnya untuk parantheses kiri (tanda kurung
buka) yang diberikan, harus dipastikan adanya parantheses kanan (tanda kurung tutup)
yang bersangkutan.
Stack dapat digunakan dalam prosedur matching yang digunakan. Algoritmanya
sederhana, kita amati barisan elemen dari kiri ke kanan. Bila kita bertemu dengan suatu
parantheses kiri, maka parantheses kiri tersebut kita PUSH ke dalam sebuah stack. Selanjutnya bila kita bertemu dengan suatu parantheses kanan, kita periksa stack, apakah hampa atautidak. Kalau stack hampa, berarti terdapat parantheses kanan tanpa adanya parantheses kiri.
Suatu kesalahan, atau error, apabila stack tidak hampa, berarti tidak diperoleh sepasangparantheses kiri, dan kanan, kita POP elemen ke luar stack.
Jika sampai berakhirnya barisan elemen, stack tidak hampa berarti terdapat parantheses
kiri yang tidak tertutup dengan parantheses kanan. Lagi suatu kesalahan. Kita akan membuatprogramnya dalam COBOL. Barisan elemen yang diamati kita tampung karakter demikarakter dalam variabel array bernama STRING. Stack ditempatkan dalam array STACK.
Kita asumsikan bahwa jumlah maksimum karakter dalam barisan elemen adalah 80 dan
barisan berakhir dengan karakter titik-koma.

4 APLIKASI STACK
Struktur datanya didefinisikan sebagai berikut:
01 STACK-STRUCT.
02 S PIC 9(5) PIC X
OCCURS 80 TIMES.
PIC 99 VALUE 0.
02 TOP-PTR
01 STRING.
02 CHAR PIC X
OCCURS 80 TIMES.
01 NEXT-CHAR PIC 99
Struktur di atas kita manipulasi dengan prosedur sebagai berikut:
PERFORM SCAN-NEXT-CAR
VARYING NEXT-CHAR FROM 1 BY 1
UNTIL NEXT-CHAR > 80
OR CHAR (NEXT-CHAR) = “;”.
IF TOP-PTR NOT = 0 THENinvalid syntax,
parenthesis kiri tak tertutup
ELSE Valid syntax.
SCAN-NEXT-CHAR
IF CHAR (NEXT-CHAR) = “(”
PERFORM PUSH
ELSE
IF CHAR (NEXT-CHAR) = “)”
PERFORM POP
PUSH
COMPUTE TOP-PTR = TOP-PTR + 1
MOVE CHAR (NEXT-CHAR) TO STACK (TOOP-PTR).
IF TOP-PTR > 0
COMPUTE TOP-PTR - 1
ELSE invalid syntax, tak ada parenthesis
Silakan Anda buat programnya dalam bahasa pemrograman yang Anda kuasai.




5. DAFTAR LINEAR
Sebuah daftar linear atau linear list, merupakan suatu struktur data umum yang terbentuk
dari barisan hingga (yang terurut) dari satuan data ataupun dari record. Untuk mudahnya,
elemen yang terdapat di dalam daftar disebut dengan simpul atau node. Daftar disebut
linear (lurus), karena elemen tampak seperti berbaris, yakni bahwa setiap simpul, kecuali
yang pertama dan yang terakhir, selalu memiliki sebuah elemen penerus langsung (suksesorlangsung) dan sebuah elemen pendahulu langsung (predesesor langsung).
Di sini, banyak simpul atau elemen, tersebut dapat berubah-ubah, berbeda dengan
array yang banyak elemennya selalu tetap. Kita menyatakan linear list A yang mengandungT elemen pada suatu saat, sebagai A = [A1, A2, …AT]. Jika T = 0, maka A disebut list hampaatau null list.
Suatu elemen dapat dihilangkan atau dihapus (deletion) dari sembarang posisi dalam
linear list, dan suatu elemen baru dapat pula dimasukkan (insertion) sebagai anggota list
pada posisi sembarang (di mana saja).File, merupakan salah satu contoh dari daftar linear yang elemen-elemennya berupa
record. Selain file, contoh lain dari daftar linear adalah stack atau tumpukan, queue atau
antrean, dan daftar berkait atau linear linked list atau one-way list. Pada Bab 3 ini kita bahastentang stack tersebut. Selanjutnya pada Bab 4 kita bahas tentang antrean tentang linked list.


Sumber : seri diktat kuliah, pengantar struktur data Universitas Gunadarma

ARRAY

1. PENGERTIAN ARRAY
Array (larik) merupakan tipe data tersetruktur dimana didalamnya terdiri dari komponen – komponen yang mempunyai tipe data yang sama. Didalam suatu array jumlah komponen banyaknya adalah tetap. Didalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu index yang unik. Index dari setiap komponen array menunjukan urutan data atau identitas yang mewakili data yang ada didalamnya.
Logika sederhananya array itu bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas, untuk membedakan antara nama yang satu atau dengan nama yang lain maka diberikan initial tambahan untuk setiap nama.

2 ARRAY BERDIMENSI SATU
Sebuah array dimensi satu, yang misalnya kita beri nama NILAI,
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 setiapelemen 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 merupakaninteger.
Batas bawah dari array, pada beberapa aplikasi, tidak selalu diambil 1. Kadang-kadang
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.

3. 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.
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 Mx 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 subscriptyang satunya lagi kita ubah-ubah sepanjang rangenya. Notasi yang umum digunakan adalahnotasi * (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)),
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, makajelas 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 tinggike 17.
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)
menunjukkan jumlah mahasiswa untuk masing-masing tingkat, pria serta wanita,
dari perguruan tinggi 3.


4. MENDEKLARASIKAN ARRAY DALAM BAHASA PEMROGRAMAN
Misalkan kita hendak mendeklarasikan array TEMP yang merupakan array dimensi
satu dengan nilai subscript 1 sampai 24, dan masing-masing elemen bertipe data integer
(nilainya antara 0 hingga 99 derajat).
Dalam Bahasa COBOL dapat ditulis:
01 TABEL-TEMP
02 TEMP OCCURS 24 TIMES PIC 99.
Dalam bahasa Pascal:
var temp: array l..24) of integer
Dalam Bahasa BASIC, kita dapat mendefinisikan array TEMP tersebut dengan statement:

DIM TEMP(24)
Tiga hal harus dikemukakan dalam mendeklarasikan suatu array, yakni:
1. nama array
2. range dari subscript
3. tipe data dari elemen array
Bahasa Pascal memperkenankan batas bawah subscript yang bukan =1, contohnya
adalah:
var grafik : array [-100 ..100] of integer
Dalam COBOL subscript harus dimulai dari 1.
Untuk menyatakan elemen ke-I dari array, COBOL dan BASIC menggunakan kurung
biasa, yakni TEMP(I), sedangkan Pascal menggunakan kurung siku, yakni temp[i].
Untuk mendeklarasikan sebuah array nilai dari 500 mahasiswa untuk 8 mata kuliah,
dalam COBOL ditulis:
01 TABEL-NILAI
02 MHS OCCURS 500 TIMES
03 NILAI OCCURS 8 TIMES
PIC 99V9.
Dalam Pascal ditulis:
var nilai : Array[1..500,1..8] of real
dan dalam BASIC dapat ditulis
DIM NILAI(500,8)
Dalam COBOL maksimum dimensi yang dapat diterima adalah 3 (three dimensional),
contohnya:
01 MHS-TABEL
02 TINGKAT OCCURS 5 TIMES
03 SEX OCCURS 2 TIMES
04 MHS OCCURS 20 TIMES
PIC 9(5).
dan dalam Pascal:
var mhs : Array[1..5, 1..2, 1..20] of integer
Dalam bahasa pemrograman seperti FORTRAN dan COBOL, alokasi untuk array
dalam storage memerlukan waktu dalam proses kompilasi, karenanya batas bawah dan
batas atas harus dikemukakan ketika mendefinisikan array.
COBOL dan Pascal (juga bahasa lain yang memungkinkan pendeklarasian array) mempunyaifasilitas untuk melakukan manipulasi antarelemen array. Operasi yang sesuai dengantipe data array tersebut dapat dikerjakan dengan mudah, contohnya dalam COBOL.
COMPUTE TOTAL_UPAH(I) = UPAH_PER_JAM(I) * JUMLAH-JAM(l)
Terlihat bahwa ketiga variabel di atas adalah array.


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

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


7. RECORD
Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai
type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan
menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield.
Sebagai Contoh, data personalia dari seorang pegawai suatu perusahaan di Amerika Serikat,merupakan sebuah record yang dapat terdiri dari berbagai field, dan subfield seperti berikut ini:
1. NOMOR-JAMINAN-SOSIAL
2. NAMA, yang terdiri atas:
NAMA-BELAKANG
NAMA-DEPAN
NAMA-TENGAH
3. ALAMAT, terdiri atas:
JALAN
NOMOR RUMAH
NAMA-JALAN
KOTA
NEGARA-BAGIAN
KODE-POS
4. MENIKAH
dan sebagainya lagi.
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 hard
disk, disket, dan lainnya.
Sebuah record memberi informasi tentang berbagai kondisi dari obyek padapermasalahan 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.

8. ALOKASI PENGGUNA ARRAY
a. Array Static (Static Array)
array static adalah model pendeklarasian array dimana tipe data yang digunakan mempunyai nilai yang tetap. Nilai yang digunakan untuk menentukan jangkauan pada umumnya bernilai integer. Array Static juga bisa disebut Array dengan deklarasi tipe indeks subrange integer.
Bentuk Umum
array[indexType1, ..., indexTypen] of baseType
Keterangan = index type menunjukan tipe data ordinal yang menunjukan batasan atau elemen maksimul terhadap seberapa besar variabel tersebut menyimpan komponen.
Contoh
Var arrayku : array[1..5] of char
Atau juga
type
jangkauan = 1..5;
var
nilai : array[jangkauan] of integer;

b. Array Dinamis (Dynamic arrays)
Larik atau array dinamis merupakan array yang tidak mempunyai suatu jangkauan atau ukuran yang tetap. Tetapi ketika program dijalankan maka memori untuk suatu array dinamis direalokasikan ketika kita menugaskan suatu nilai kepada array. Dynamic-Array jenis ditandai oleh konstruksi (menyangkut) format
Bentuk Umum
array of baseType
Contoh
var nilai: array of Real;

Dari deklarasi tersebut nilai yang merupakan deklarasi array belum memperoleh nilai yang tetap, tetapi hanya diberikan batasan sebagai tipe data real. Untuk mendeklarasikan array tersebut kita harus menempatkan array didalam suatu memori, caranya adalah dengan memanfaatkan fungsi dari perintah sellength.

Selllength(nilai,20)

Dari penggalan program tersebut nilai untuk array nilai tersebut mempunyai range sebanyak atau cakupan 20 untuk tipe data real, dengan indeex dimulai dari 0 sampai dengan 20.

Sumber : seri diktat kuliah, pengantar struktur data Universitas Gunadarma

Senin, 22 Februari 2010

Pulau Jeju, Pulau Bali Ke Dua yang terletak di Korea Selatan

Melancong ke korea, di negeri ini terdapat pulau yang terkenal dari 3000 pulau yang ada di Korea. Pulau tersebut bernama Jeju, atau dikenal dengan pulau bali yang berada di Korea. Lokasi ini terkenal, karena keindahan, lingkungan alamnya yang bersih. Sejak masa lampau, pulau Jeju terpilih sebagai tempat pariwisata terunggul untuk berbulan madu bagi masyarakat Korea dan sebagai tempat yang dirasakan memberikan nuansa istimewa bagi turis asing.
Perbedaan kota ini bila dibandingkan kota lainnya yang berada di Korea, yakni adanya pohon tropis seperti pohon kelapa, karena daerah itu diselimuti iklim samudra yang hangat dan jumlah curah hujan paling tinggi.
Pulau Jeju juga menjadi destinasi yang popular di kalangan kaum muda Korea yang ingin menikmati masa bulan madu mereka. Pada musim gugur, merupakan musim yang paling tepat untuk menikmati keindahan pantai-pantai di Pulau Jeju.
Pada musim tersebut Anda dapat menyaksikan migrasi burung-burung di Pulau Ha-do atau memilih melakukan aktivitas paragliding untuk melihat pemandangan pulau dari ketinggian. Pada bagian Timur pulau ini juga terdapat padang rumput luas yang sangat cocok untuk menggembala ternak. Daerah ini memang menjadi tempat bagi para petemak Korea selama berabad-abad. Pulau Jeju telah terkerial sebagai tempat pemeliharaan kuda sejak zaman Mongol.
Musim gugur juga menjadi musim yang pas untuk para pencinta jeruk karena saat itu jeruk jeruk di Seogwipo telah siap untuk dipetik. Untuk melindungi pohon-pohon jeruk tersebut dari angin yang kencang, telah dibangun dinding batu yang mengelilingi perkebunan. Dahulu kala, konon jeruk digunakan sebagai pembayaran upeti bagi keluarga kerajaan. Sejak tahun 1965 diketahui bahwa jeruk berkualitas tinggi dihasilkan dengan melakukan stek pada bagian akar dengan jenis varietas semak berduri asli pulau ini. Saat ini ada sekitar 12.000 petani yang menanam jeruk untuk produksinya dan memberikan pemasukan sebesar lebih dari US$ 10 juta setiap tahunnya.
Namun ketika memasuki musim dingin, salju menyelimuti Gunung Halla yang terdapat di area kepulauan ini, sehingga nuansa putihlah yang terlihat dari kejauhan. Rumah-rumah tradisional penduduk yang beratap jerami pun tertutup salju.

Sumber : http://nadinaku.blogspot.com/2009/11/pulau-jeju-pulau-bali-ke-dua-yang.html

HANBOK : MENGENAL PAKAIAN TRADISIONAL KOREA

Hanbok adalah pakain tradisional Korea Selatan atau Choson-ot untuk sebutan di Korea Utara. Hanbok pada umumnya memiliki warna yang cerah, dengan garis yang sederhana serta tidak memiliki saku. Walaupun secara harfiah berarti “pakaian orang Korea”, hanbok pada saat ini mengacu pada ” pakaian gaya Dinasti Joseon” yang biasa dipakai secara formal atau semi-formal dalam perayaan atau festival tradisional, misalnya tahun baru seollal ( imlek ) atau perayaan chuseok.
Bagian-bagian Hanbok :
1. Jeogori: ialah bagian atas dari hanbok ( baju ).Untuk hanbok laki-laki ukurannya lebih besar dan simple, sedangkan untuk wanita agak pendek dan ditandai garis lengkung dan dekorasi yang lembut.
2.Deong Jong : yaitu krah yang berwarna yang berwarna putih .
3. Otgoreum (Cloth Strings): adalah pita yang dipakai pada baju hambok untuk wanita, yang melintang hingga ke Rok ( chima )
4. Chima : adalah rok pada bagian hanbok. Ada berbagai macam jenis chima, ada yang lapisan tunggal dan ada juga yang double.
5.Pattern: susunan gambar atau garis dan juga perpaduan warna.
Masih banyak lagi istilah bagian pada hanbok, misalnya baerae ( pada lengan ), kket dong ( lengan ) dan lain sebagainya.
Untuk hanbok pria ada ” baji ” yaitu celana untuk hanbok. biasanya bentuknya longgar.

Sumber : http://tazkiana.wordpress.com/2009/08/29/hanbok-mengenal-pakaian-tradisional-korea/