Kamis, 23 April 2015

LaTeX

Assalamu'alaikum warahmatullahi wabarakatuh

Pada kesempatan kali ini saya ingin menjelaskan tentang LaTeX.


LaTeX


LaTeX adalah bahasa markup atau sistem penyiapan dokumen untuk peranti lunak TeX. Tex merupakan program komputer yang digunakan untuk membuat typesetting suatu dokumen, atau membuat formula matematika. LaTeX memungkinkan penulis/penggunanya untuk melakukan typesetting dan mencetak hasil kerjanya dalam bentuk tipografi yag terbaik. Oleh karenanya LaTeX paling banyak digunakan oleh para matematikawan, ilmuwan, insinyur, akademisi, dan profesional lainnya. Pada awalnya LaTeX ditulis pada awal 1980-an oleh Leslie Lamport di SRI International . Versi paling mutakhir adalah LateX2e.
Beberapa keuntungan menggunakan LaTeX ialah :
- Memiliki format dokumen yang terstruktur sehingga membuat dokumen terlihat sangat profesional dan sempurna.
- Segala jenis formula matematis dapat dituliskan dengan mudah.
- List gambar, List tabel, Daftar Pustaka, footnote bahkan daftar isi dapat secara otomatis dibuat oleh program.
- LaTeX melatih dan memaksa pengguna untuk membuat dokumen dengan struktur yang baik dan benar, sehingga tidak terjadi kerancuan dalam penulisan.

Kerugian menggunakan LaTeX:
- Sangat sulit untuk menuliskan dokumen yang tidak terstruktur.
- Memerlukan kecerdasan manusia.
- LaTeX merupakan perangkat lunak bebas, dan didistribusikan sesuai dengan ketentuan LaTeX - Project Public License (LPPL) yang artinya LaTeX dapat digunakan oleh siapapun, menggunakan mesin komputer apapun, semuanya gratis.

- Saat ini para pengguna LaTeX dimudahkan oleh TeX editor, beberapa TeX editor yang terkenal ialah Kile, Texmaker, dan Texworks

Contoh perbandingan hasil LaTeX dan MS Word dalam menulis limit:
MS Word
eq_word
LaTeX
eq_latex
Dalam menulis permulaan Bab:
MS Word
msword
LaTeX
latex
Sekian pembahasan saya tentang LaTeX. Banyak kelabihan dan kekurangan dari program LaTeX. Mungkin saya akan menambahkan perintah atau script nya pada judul berikutnya.  terimaksih.

Rabu, 22 April 2015

Sejarah Komputer

Assalamu'alaikum warahmatullahi wabarakatuh. 

Pada kesempatan kali ini saya akan menjelaskan tentang Sejarah komputerisasi. Komputerisasi tidak terlepas dari kehidupan manusia. Semakin berkembangnya teknoligi yang semakin cepat membuat kita dengan mudah mengembangkan teknologi tersebut. Langsung saja ke pembahasan saya, yaitu Sejarah Komputer.

Sejarah Komputer

   1. Pengertian komputer
           Komputer adalah alat yang dipakai untuk mengolah data menurut perintah yang telah dirumuskan. Kata komputer semula dipergunakan untuk menggambarkan orang yang perkerjaannya melakukan perhitungan aritmatika, dengan atau tanpa alat bantu, tetapi arti kata ini kemudian dipindahkan kepada mesin itu sendiri. Asal mulanya, pengolahan informasi hampir eksklusif berhubungan dengan masalah aritmatika, tetapi komputer modern dipakai untuk banyak tugas yang tidak berhubungan dengan matematika.
Secara luas, Komputer dapat didefinisikan sebagai suatu peralatan elektronik yang terdiri dari beberapa komponen, yang dapat bekerja sama antara komponen satu dengan yang lain untuk menghasilkan suatu informasi berdasarkan program dan data yang ada. Adapun komponen komputer adalah meliputi : Layar Monitor, CPU, Keyboard, Mouse dan Printer (sbg pelengkap). Tanpa printer komputer tetap dapat melakukan tugasnya sebagai pengolah data, namun sebatas terlihat dilayar monitor belum dalam bentuk print out (kertas).
Dalam definisi seperti itu terdapat alat seperti slide rule, jenis kalkulator mekanik mulai dari abakus dan seterusnya, sampai semua komputer elektronik yang kontemporer. Istilah lebih baik yang cocok untuk arti luas seperti "komputer" adalah "yang memproses informasi" atau "sistem pengolah informasi."
Saat ini, komputer sudah semakin canggih. Tetapi, sebelumnya komputer tidak sekecil, secanggih, sekeren dan seringan sekarang. Dalam sejarah komputer, ada 5 generasi dalam sejarah komputer.


    2. Generasi komputer

       Generasi pertama
Dengan terjadinya Perang Dunia Kedua, negara-negara yang terlibat dalam perang tersebut berusaha mengembangkan komputer untuk mengeksploit potensi strategis yang dimiliki komputer. Hal ini meningkatkan pendanaan pengembangan komputer serta mempercepat kemajuan teknik komputer. Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer, Z3, untuk mendesain pesawat terbang dan peluru kendali.
Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer. Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode rahasia yang digunakan Jerman. Dampak pembuatan Colossus tidak terlalu memengaruhi perkembangan industri komputer dikarenakan dua alasan. Pertama, Colossus bukan merupakan komputer serbaguna(general-purpose computer), ia hanya didesain untuk memecahkan kode rahasia. Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.
Usaha yang dilakukan oleh pihak Amerika pada saat itu menghasilkan suatu kemajuan lain. Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvard-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.
Perkembangan komputer lain pada masa kini adalah Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania. Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengonsumsi daya sebesar 160 kW.
Komputer ini dirancang oleh John Presper Eckert (1919-1995) dan John W. Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.
Pada pertengahan 1940-an, John von Neumann (1903-1957) bergabung dengan tim University of Pennsylvania dalam usaha membangun konsep desain komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer. Von Neumann mendesain Electronic Discrete Variable Automatic Computer (EDVAC) pada tahun 1945 dengan sebuah memori untuk menampung baik program ataupun data. Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali. Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur Von Neumann tersebut.
Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC. Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952.
Komputer Generasi pertama dikarakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode biner yang berbeda yang disebut "bahasa mesin" (machine language). Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya. Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dan silinder magnetik untuk penyimpanan data.

       Generasi kedua
Pada tahun 1948, penemuan transistor sangat memengaruhi perkembangan komputer. Transistor menggantikan tube vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis.
Transistor mulai digunakan di dalam komputer mulai pada tahun 1956. Penemuan lain yang berupa pengembangan memori inti-magnetik membantu pengembangan komputer generasi kedua yang lebih kecil, lebih cepat, lebih dapat diandalkan, dan lebih hemat energi dibanding para pendahulunya. Mesin pertama yang memanfaatkan teknologi baru ini adalah superkomputer. IBM membuat superkomputer bernama Stretch, dan Sprery-Rand membuat komputer bernama LARC. Komputer-komputer ini, yang dikembangkan untuk laboratorium energi atom, dapat menangani sejumlah besar data, sebuah kemampuan yang sangat dibutuhkan oleh peneliti atom. Mesin tersebut sangat mahal dan cenderung terlalu kompleks untuk kebutuhan komputasi bisnis, sehingga membatasi kepopulerannya. Hanya ada dua LARC yang pernah dipasang dan digunakan: satu di Lawrence Radiation Labs di Livermore, California, dan yang lainnya di US Navy Research and Development Center di Washington D.C. Komputer generasi kedua menggantikan bahasa mesin dengan bahasa assembly. Bahasa assembly adalah bahasa yang menggunakan singkatan-singakatan untuk menggantikan kode biner.
Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas, dan di pemerintahan. Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor. Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket, memory, sistem operasi, dan program.
Salah satu contoh penting komputer pada masa ini adalah 1401 yang diterima secara luas di kalangan industri. Pada tahun 1965, hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memprosesinformasi keuangan.
Program yang tersimpan di dalam komputer dan bahasa pemrograman yang ada di dalamnya memberikan fleksibilitas kepada komputer. Fleksibilitas ini meningkatkan kinerja dengan harga yang pantas bagi penggunaan bisnis. Dengan konsep ini, komputer dapat mencetak faktur pembelian konsumen dan kemudian menjalankan desain produk atau menghitung daftar gaji. Beberapa bahasa pemrograman mulai bermunculan pada saat itu. Bahasa pemrograman Common Business-Oriented Language (COBOL) dan Formula Translator (FORTRAN) mulai umum digunakan. Bahasa pemrograman ini menggantikan kode mesin yang rumit dengan kata-kata, kalimat, dan formula matematika yang lebih mudah dipahami oleh manusia. Hal ini memudahkan seseorang untuk memprogram dan mengatur komputer. Berbagai macam karier baru bermunculan (programmer, analis sistem, dan ahli sistem komputer). Industr piranti lunak juga mulai bermunculan dan berkembang pada masa komputer generasi kedua ini.

       Generasi ketiga
Walaupun transistor dalam banyak hal mengungguli tube vakum, namun transistor menghasilkan panas yang cukup besar, yang dapat berpotensi merusak bagian-bagian internal komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini. Jack Kilby, seorang insinyur di Texas Instrument, mengembangkan sirkuit terintegrasi (IC : integrated circuit) pada tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa. Pada ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor. Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer.

       Generasi keempat
Setelah IC, tujuan pengembangan menjadi lebih jelas: mengecilkan ukuran sirkuit dan komponen-komponen elektrik. Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip. Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal.
Ultra-Large Scale Integration (ULSI) meningkatkan jumlah tersebut menjadi jutaan. Kemampuan untuk memasang sedemikian banyak komponen dalam suatu keping yang berukurang setengah keping uang logam mendorong turunnya harga dan ukuran komputer. Hal tersebut juga meningkatkan daya kerja, efisiensi dan keterandalan komputer. Chip Intel 4004 yang dibuat pada tahun 1971membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit, memori, dan kendali input/output) dalam sebuah chip yang sangat kecil. Sebelumnya, IC dibuat untuk mengerjakan suatu tugas tertentu yang spesifik. Sekarang, sebuah mikroprosesor dapat diproduksi dan kemudian diprogram untuk memenuhi seluruh kebutuhan yang diinginkan. Tidak lama kemudian, setiap piranti rumah tangga seperti microwave, oven, televisi, dan mobil dengan electronic fuel injection (EFI) dilengkapi dengan mikroprosesor.
Perkembangan yang demikian memungkinkan orang-orang biasa untuk menggunakan komputer biasa. Komputer tidak lagi menjadi dominasi perusahaan-perusahaan besar atau lembaga pemerintah. Pada pertengahan tahun 1970-an, perakit komputer menawarkan produk komputer mereka ke masyarakat umum. Komputer-komputer ini, yang disebut minikomputer, dijual dengan paket piranti lunak yang mudah digunakan oleh kalangan awam. Piranti lunak yang paling populer pada saat itu adalah program word processing dan spreadsheet. Pada awal 1980-an, video game seperti Atari 2600 menarik perhatian konsumen pada komputer rumahan yang lebih canggih dan dapat diprogram.
Pada tahun 1981, IBM memperkenalkan penggunaan Personal Computer (PC) untuk penggunaan di rumah, kantor, dan sekolah. Jumlah PC yang digunakan melonjak dari 2 juta unit pada tahun 1981 menjadi 5,5 juta unit pada tahun 1982. Sepuluh tahun kemudian, 65 juta PC digunakan. Komputer melanjutkan evolusinya menuju ukuran yang lebih kecil, dari komputer yang berada di atas meja (desktop computer) menjadi komputer yang dapat dimasukkan ke dalam tas (laptop), atau bahkan komputer yang dapat digenggam (palmtop).
IBM PC bersaing dengan Apple Macintosh dalam memperebutkan pasar komputer. Apple Macintosh menjadi terkenal karena memopulerkan sistem grafis pada komputernya, sementara saingannya masih menggunakan komputer yang berbasis teks. Macintosh juga memopulerkan penggunaan piranti mouse.
Pada masa sekarang, kita mengenal perjalanan IBM compatible dengan pemakaian CPU: IBM PC/486, Pentium, Pentium II, Pentium III, Pentium IV (Serial dari CPU buatan Intel). Juga kita kenal AMD k6, Athlon, dsb. Ini semua masuk dalam golongan komputer generasi keempat.
Seiring dengan menjamurnya penggunaan komputer di tempat kerja, cara-cara baru untuk menggali potensial terus dikembangkan. Seiring dengan bertambah kuatnya suatu komputer kecil, komputer-komputer tersebut dapat dihubungkan secara bersamaan dalam suatu jaringan untuk saling berbagi memori, piranti lunak, informasi, dan juga untuk dapat saling berkomunikasi satu dengan yang lainnya. Jaringan komputer memungkinkan komputer tunggal untuk membentuk kerjasama elektronik untuk menyelesaikan suatu proses tugas. Dengan menggunakan perkabelan langsung (disebut juga Local Area Network atau LAN), atau [kabel telepon, jaringan ini dapat berkembang menjadi sangat besar.

       Generasi kelima
Mendefinisikan komputer generasi kelima menjadi cukup sulit karena tahap ini masih sangat muda. Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001: Space Odyssey. HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima. Dengan kecerdasan buatan (artificial intelligence atau AI), HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia, menggunakan masukan visual, dan belajar dari pengalamannya sendiri.
Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan, banyak fungsi-fungsi yang dimilikinya sudah terwujud. Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia. Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin. Fasilitas ini tampak sederhana. Namun fasilitas tersebut menjadi jauh lebih rumit dari yang diduga ketika programmer menyadari bahwa pengertian manusia sangat bergantung pada konteks dan pengertian ketimbang sekedar menterjemahkan kata-kata secara langsung.
Banyak kemajuan di bidang desain komputer dan teknologi yang semakin memungkinkan pembuatan komputer generasi kelima. Dua kemajuan rekayasa yang terutama adalah kemampuan pemrosesan paralel, yang akan menggantikan model non Neumann. Model non Neumann akan digantikan dengan sistem yang mampu mengkoordinasikan banyak CPU untuk bekerja secara serempak. Kemajuan lain adalah teknologi superkonduktor yang memungkinkan aliran elektrik tanpa ada hambatan apapun, yang nantinya dapat mempercepat kecepatan informasi.
Jepang adalah negara yang terkenal dalam sosialisasi jargon dan proyek komputer generasi kelima. Lembaga ICOT (Institute for new Computer Technology) juga dibentuk untuk merealisasikannya. Banyak kabar yang menyatakan bahwa proyek ini telah gagal, namun beberapa informasi lain bahwa keberhasilan proyek komputer generasi kelima ini akan membawa perubahan baru paradigma komputerisasi di dunia.



Itulah generasi komputer dari awal hingga sekarang. Sekarang komputerisasi menjadi hal yang paling banyak di gunakan dalam banyak bidang. Komputerisasi menjadi hal yan sulit di pisahkan dari kehidupan manusia. Walaupun begitu kita tetap harus memilih dan memilah yang negatif dan positif. Kita juga harus mengembangkannya hingga kita sendirilah yang menciptakannya, tidak harus selalu membeli, kita harus menciptakannya sendiri. Kita boleh menggunakannya sekarang, tapi beberapa tahun ke depan kita lah yang akan membuat komputer itu sendiri.

Jumat, 17 April 2015

Tipe Data pada 'Oracle'

Tipe Data pada Oracle


TIMESTAMP
Tipe data TIMESTAMP merupakan perpanjangan dari tipe data DATE. Tipe data ini
menyimpan tahun, bulan, dan hari tipe data DATE, ditambah nilai-nilai jam, menit, dan detik.
Tipe data ini berguna untuk menyimpan nilai waktu yang tepat. Rumus dari tipe data
TIMESTAMP adalah sebagai berikut:
TIMESTAMP [(fractional_seconds_precision)]
dimana fractional_seconds_precision opsional menentukan jumlah digit yang disimpan Oracle
di bagian pecahan dari field DETIK datetime tersebut. Bila Anda membuat kolom dengan tipe
data ini, nilainya bisa menjadi nomor dalam rentang 0 sampai 9. Dengan nilai default 6.

TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH TIME ZONE adalah varian dari TIMESTAMP yang meliputi zona waktu
nama wilayah atau zona waktu aa offset dalam nilainya. Zona waktu offset adalah perbedaan
(dalam jam dan menit) antara waktu setempat dan UTC (Coordinated Universal Time-dahulu
Greenwich Mean Time). Datatype ini berguna untuk mengumpulkan dan mengevaluasi
informasi terkini di seluruh wilayah geografis.
Rumus tipe data TIMESTAMP WITH TIME ZONE adalah sebagai berikut:
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE
dimana fractional_seconds_precision opsional menentukan jumlah digit yang disimpan Oracle
di bagian pecahan dari field DETIK datetime tersebut. Bila Anda membuat kolom dengan tipe
data ini, nilainya bisa menjadi nomor dalam rentang 0 sampai 9. Dengan nilai default 6.

TIMESTAMP WITH LOCAL TIME ZONE
TIMESTAMP WITH LOCAL TIME ZONE adalah varian lain dari TIMESTAMP yang meliputi
zona waktu yang disajikan pada nilainya. Tipe data ini berbeda dari TIMESTAMP WITH TIME
ZONE dalam hal data yang tersimpan dalam database adalah dinormalisasi dengan zona waktu
database, dan zona waktu offset tidak disimpan sebagai bagian dari kolom data. Bila pengguna
mengambil data tersebut, Oracle kembali dalam zona waktu lokal pengguna sesi. Zona waktu
offset adalah perbedaan (dalam jam dan menit) antara waktu setempat dan UTC (Coordinated
Universal Time-dahulu Greenwich Mean Time). Tipe data ini berguna untuk menampilkan
informasi terkini dalam zona waktu dari sistem klien dalam aplikasi dua-tier.
Rumus tipe data TIMESTAMP WITH LOCAL TIME ZONE adalah sebagai berikut:
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE
dimana fractional_seconds_precision opsional menentukan jumlah digit yang disimpan Oracle
di bagian pecahan dari field DETIK datetime tersebut. Bila Anda membuat kolom dengan tipe
data ini, nilainya bisa menjadi nomor dalam rentang 0 sampai 9. Dengan nilai default 6.

INTERVAL YEAR TO MONTH
INTERVAL YEAR TO MONTH menyimpan periode waktu menggunakan field datetime YEAR
dan MONTH. Tipe data ini berguna untuk mewakili perbedaan antara dua nilai datetime ketika
hanya nilai tahun dan bulan yang signifikan.
Rumus INTERVAL YEAR TO MONTH adalah sebagai berikut:
INTERVAL YEAR [(year_precision)] TO MONTH
dimana year_precision adalah jumlah digit pada field datetime YEAR. Nilai default dari
year_precision adalah 2.

INTERVAL DAY TO SECOND
INTERVAL DAY TO SECOND menyimpan periode waktu dalam hari, jam, menit, dan detik.
Tipe data ini berguna untuk mewakili perbedaan yang tepat antara dua nilai datetime.
Rumus tipe data ini adalah sebagai berikut:
INTERVAL DAY[(day_precision)]
TO SECOND [(fractional_seconds_precision)]
dimana
• day_precision adalah jumlah digit pada field datetime DAY. Nilai yang dapat diterima
adalah 0 sampai 9. Dengan nilai default 2.
• fractional_seconds_precision adalah jumlah digit di bagian pecahan dari bidang
datetime DETIK. Nilai yang dapat diterima adalah 0 sampai 9. Dengan nilai default 6.
Datetime aritmatika / Interval
Anda dapat melakukan sejumlah operasi aritmatika pada tipe data tanggal (DATE), timestamp
(TIMESTAMP, TIMESTAMP WITH TIME ZONE, dan TIMESTAMP WITH LOCAL TIME
ZONE) dan data interval(INTERVAL YEAR TO MONTH dan INTERVAL DAY TO
SECOND). Oracle menghitung hasilnya berdasarkan aturan berikut:
• Anda dapat menggunakan konstanta NUMBER dalam operasi aritmatika pada nilainilai
tanggal dan timestamp, tapi tidak nilai-nilai interval. Oracle secara internal
mengkonversi nilai timestamp untuk tanggal dan menafsirkan nilai-nilai konstanta
NUMBER dalam datetime aritmatika dan ekspresi interval sebagai jumlah hari. Sebagai
contoh, SYSDATE + 1 adalah besok. SYSDATE - 7 adalah satu minggu yang lalu.
SYSDATE + (10/1440) adalah sepuluh menit dari sekarang. Mengurangkan SYSDATE
dengan kolom hire_date karyawan dari tabel test akan menghasilkan jumlah hari sejak
masing-masing karyawan dipekerjakan. Anda tidak dapat mengalikan atau membagi
nilai tanggal atau timestamp.
• Oracle secara implisit mengubah operan BINARY_FLOAT dan BINARY_DOUBLE ke
NUMBER.
• Setiap nilai DATE mengandung komponen waktu, dan hasil dari operasi manipulasi
tanggal termasuk fraksi didalamnya. Fraksi berarti sebagian dari satu hari. Misalnya, 1,5
hari adalah 36 jam. Fraksi ini juga dikembalikan oleh fungsi Oracle built-in untuk
operasi umum pada data DATE. Sebagai contoh, fungsi MONTHS_BETWEEN
mengembalikan jumlah bulan antara dua tanggal. Bagian pecahan dari hasil yang
merupakan bagian dari satu bulan yang terdiri dari 31 hari.
• Jika salah satu operan adalah nilai DATE atau nilai numerik, baik yang mengandung
zona waktu atau pecahan komponen detik, maka:
o Oracle secara implisit akan mengubah operan lain untuk data DATE.
Pengecualian adalah perkalian dari nilai numerik interval, yang akan memiliki
nilai kembali berupa interval.
o Jika operan lain memiliki nilai zona waktu, maka Oracle menggunakan zona
waktu sesi pada nilai kembali.
o Jika operan lain memiliki nilai pecahan detik, maka nilai pecahan detik
dihilangkan.
• Bila Anda lulus timestamp, interval, atau nilai numerik untuk built-in fungsi yang
dirancang hanya untuk datatype DATE, Oracle secara implisit mengkonversi nilai nonDATE
ke nilai DATE.
• Ketika perhitungan interval mengembalikan nilai datetime, hasilnya harus nilai datetime
aktual atau database akan menampilkan pesan error. Sebagai contoh, berikutnya dua
statement yang akan menghasilkan pesan error:
SELECT TO_DATE ('31-AUG-2004','DD-MON-YYYY') + TO_YMINTERVAL ('0 -1') FROM
DUAL;
SELECT TO_DATE ('29-FEB-2004',' DD-MON-YYYY') + TO_YMINTERVAL ('1 - 0') FROM
DUAL;
Statement pertama akan gagal karena menambahkan satu bulan ke bulan 31 hari
akan menghasilkan 31 September yang bukan merupakan tanggal yang valid. Statement
kedua gagal karena menambah satu tahun ke tanggal yang hanya ada setiap empat tahun
sehingga dianggap tidak valid. Namun, statement berikutnya berhasil, karena
menambahkan empat tahun ke tanggal 29 Februari sehingga dianggap valid:
SELECT TO_DATE ('29-FEB-2004 ',' DD-MON-YYYY ') + TO_YMINTERVAL (-0 '4') FROM
DUAL;

TO_DATE ('
---------
29-FEB-08
• Oracle melakukan semua aritmatika timestamp dalam waktu UTC. Untuk TIMESTAMP
WITH LOCAL TIME ZONE, Oracle mengkonversi nilai datetime dari zona waktu
UTC dan database untuk mengubah kembali ke zona waktu database setelah melakukan
aritmetik. Untuk TIMESTAMP WITH TIME ZONE, nilai datetime selalu di UTC,
sehingga konversi tidak diperlukan.
Tipe data Large Object (LOB)
Tipe-tipe data built-in LOB seperti BLOB, CLOB, dan NCLOB (disimpan secara internal) dan
BFILE (disimpan secara eksternal) dapat menyimpan data yang besar dan tidak terstruktur
seperti teks, gambar, video, dan data spasial. Ukuran BLOB, CLOB, dan data NCLOB bisa
sampai (232-1 bytes) * (nilai parameter chunk pada media penyimpanan LOB). Jika tablespace
dalam database Anda adalah dari ukuran blok standar, dan jika Anda telah menggunakan nilai
default parameter chunk penyimpanan LOB saat membuat kolom LOB, maka ini setara dengan
(232-1 bytes) * (database block size) . Ukuran data BFILE dapat mencapai 264-1 byte, meskipun
sistem operasi Anda dapat mengenakan pembatasan maksimum.
Ketika membuat sebuah tabel, anda dapat menentukan tablespace yang berbeda dan
karakteristik penyimpanan untuk kolom LOB atau atribut objek LOB dari yang ditentukan
untuk tabel.
CLOB, NCLOB, dan nilai-nilai BLOB sampai dengan kira-kira 4000 byte disimpan inline jika
Anda mengaktifkan storage pada baris pada saat kolom LOB dibuat. Sedangkan apabila data
LOB lebih besar dari 4000 byte maka akan disimpan eksternal.
Kolom LOB mengandung LOB locator yang dapat mengacu pada nilai-nilai LOB internal

(dalam database) atau eksternal (di luar database). Memilih LOB dari tabel akan
mengembalikan LOB locator dan bukan nilai LOB keseluruhan. Operasi paket DBMS_LOB
dan Oracle Call Interface (OCI) di LOB dilakukan melalui locator.
LOB mirip dengan tipe LONG RAW dan LONG, namun berbeda dalam hal-hal berikut:
• LOB bisa menjadi atribut dari suatu tipe objek (datatype user-defined).
• LOB locator disimpan dalam kolom tabel, baik dengan atau tanpa nilai LOB
sebenarnya. BLOB, NCLOB, dan nilai-nilai CLOB dapat disimpan dalam tablespace
terpisah. BFILE data disimpan dalam file eksternal pada server.
• Bila Anda mengakses kolom LOB, locator dikembalikan.
• Sebuah LOB bisa berukuran sampai (232-1 bytes) * (database block size). Data BFILE
bisa berukuran sampai 264-1 byte, meskipun sistem operasi Anda dapat mengenakan
pembatasan maksimum.
• Anda dapat menentukan lebih dari satu kolom LOB dalam sebuah tabel.
• Dengan pengecualian NCLOB, Anda dapat menentukan satu atau lebih atribut LOB
dalam suatu objek.
• Anda dapat mendeklarasikan variabel mengikat (bind variables) LOB.
• Anda dapat memilih kolom LOB dan atribut LOB.
• Anda dapat menyisipkan baris baru atau memperbarui suatu baris yang sudah ada yang
berisi satu atau lebih kolom LOB atau objek dengan satu atau lebih atribut LOB. Dalam
operasi update, anda dapat mengatur nilai LOB internal untuk NULL, kosong, atau
mengganti seluruh LOB dengan data. Anda dapat mengatur BFILE ke NULL atau
membuat agar menunjuk ke sebuah file yang berbeda.
• Anda dapat memperbarui simpang (interception) baris-kolom LOB atau atribut LOB
dengan simpangan baris-kolom LOB atau atribut LOB yang lain.
• Anda dapat menghapus sebuah baris yang berisi kolom LOB atau atribut LOB dan
dengan demikian juga menghapus nilai LOB. Untuk BFILEs, file sistem operasi yang
sebenarnya tidak dihapus.

Anda dapat mengakses dan mengisi baris dari kolom LOB inline (kolom LOB disimpan dalam
database) atau atribut LOB (atribut dari sebuah kolom tipe objek yang disimpan dalam
database) hanya dengan mengeluarkan pernyataan INSERT atau UPDATE.

BFILE
Tipe data BFILE memungkinkan akses ke file LOB biner yang disimpan dalam sistem file di
luar Oracle Database. Sebuah kolom atau atribut BFILE disimpan dalam locator BFILE, yang
berfungsi sebagai pointer ke file biner pada sistem file server. Locator mempertahankan nama
direktori dan nama file.
Anda dapat mengubah nama file dan path dari BFILE tanpa mempengaruhi tabel base dengan
menggunakan fungsi BFILENAME. Binary file LOB tidak berpartisipasi dalam transaksi dan
tidak dapat direcovery (dipulihkan). Sebaliknya, sistem operasi yang mendasarinya
menyediakan integritas file dan daya tahan. Data BFILE bisa sampai 264-1 byte, meskipun
sistem operasi Anda dapat mengenakan pembatasan maksimum.
Database administrator harus memastikan bahwa file eksternal ada dan bahwa sistem Oracle
proses memiliki izin operasi read pada file tersebut.
Tipe data BFILE memungkinkan dukungan read-only file biner yang berukuran besar. Anda
tidak dapat mengubah atau mereplikasi file tersebut. Oracle menyediakan API untuk mengakses data file. Interface utama yang Anda gunakan untuk mengakses file data adalah package
DBMS_LOB dan Oracle Call Interface (OCI).

BLOB
Tipe data BLOB tersusun atas large object biner yang tidak terstruktur. Objek BLOB dapat
dianggap sebagai bitstreams dengan karakter tanpa set semantik. Objek BLOB dapat
menyimpan data biner sampai dengan (4 gigabyte -1) * (nilai parameter CHUNK LOB storage).
Jika tablespace dalam database Anda adalah ukuran blok standar, dan jika Anda telah
menggunakan nilai default parameter chunk LOB storage saat membuat kolom LOB, setara
dengan (4 gigabyte - 1) * (database block size) .
Objek BLOB memiliki dukungan penuh terhadap transaksional. Perubahan yang dilakukan
melalui SQL, package DBMS_LOB, atau Oracle Call Interface (OCI) berpartisipasi penuh
dalam transaksi. Manipulasi nilai BLOB dapat dilakukan dan dibatalkan. Namun, Anda tidak
dapat menyimpan locator BLOB dalam variabel PL / SQL atau OCI dalam satu transaksi dan
kemudian menggunakannya dalam transaksi atau session lain.

CLOB
Tipe data CLOB terdiri atas single-byte dan multibyte data karakter. Keduanya memiliki lebar
tetap dan didukung seting karakter variabel-lebar, selain itu keduanya juga menggunakan
karakter set database. Objek CLOB dapat menyimpan sampai dengan (4 gigabyte -1) * (nilai
parameter CHUNK LOB storage) dari karakter data. Jika tablespace dalam database Anda
memiliki ukuran blok standar, dan jika Anda telah menggunakan nilai default parameter chunk
LOB storage saat membuat kolom LOB, maka ini setara dengan (4 gigabyte - 1) * (database
block size) .
Objek CLOB memiliki dukungan penuh terhadap transaksional. Perubahan yang dilakukan
melalui SQL, package DBMS_LOB, atau Oracle Call Interface (OCI) berpartisipasi penuh
dalam transaksi. Manipulasi nilai CLOB dapat dilakukan dan dibatalkan. Namun, Anda tidak
dapat menyimpan locator CLOB dalam variabel PL / SQL atau OCI dalam satu transaksi dan
kemudian menggunakannya dalam transaksi atau session lain.

NCLOB
Tipe data NCLOB menyimpan data Unicode. Didukung oleh set karakter lebar-tetap dan
variabel-lebar, dan menggunakan karakter nasional yang telah ditetapkan. Objek NCLOB dapat
menyimpan sampai dengan (4 gigabyte -1) * (nilai parameter CHUNK LOB storage) dari data
karakter teks. Jika tablespace dalam database Anda memiliki ukuran blok standar, dan jika Anda
telah menggunakan nilai default parameter chunk LOB storage saat membuat kolom LOB,
maka ini setara dengan (4 gigabyte - 1) * (database block size) .
Objek NCLOB memiliki dukungan penuh terhadap transaksional. Perubahan yang dilakukan
melalui SQL, package DBMS_LOB, atau OCI berpartisipasi penuh dalam transaksi. Manipulasi
nilai NCLOB dapat dilakukan dan dibatalkan. Namun, Anda tidak dapat menyimpan locator
NCLOB dalam variabel PL / SQL atau OCI dalam satu transaksi dan kemudian
menggunakannya dalam transaksi transaksi atau session lain.

Tipe Data Rowid
Tipe data Rowid terdiri dari tipe data ROWID dan tipe data UROWID.
ROWID
Baris-baris dalam tabel yang terorganisir dalam Oracle Database memiliki alamat baris yang
disebut rowids. Anda dapat memeriksa alamat baris rowid oleh query pseudocolumn ROWID.
Nilai dari pseudocolumn ini adalah string yang mewakili alamat dari tiap baris. String ini
memiliki tipe data ROWID. Anda juga dapat membuat tabel dan cluster yang berisi kolom yang
memiliki tipe data ROWID. Oracle Database tidak menjamin bahwa nilai kolom tersebut adalah
rowids yang valid.
Catatan:
Dimulai pada Oracle8, Oracle SQL mengembangkan format rowids untuk mendukung efisiensi
tabel partisi dan indeks serta alamat data blok tablespace- relatif tanpa ambiguitas. Jika Anda
menjalankan Versi 7 dari database dan Anda berniat untuk melakukan upgrade, gunakan
package DBMS_ROWID untuk bermigrasi dalam data Anda ke format rowids extended.
Rowids berisi informasi berikut:
• Data blok dari datafile yang mengandung baris. Panjang string ini tergantung pada
sistem operasi Anda.
• Baris di blok data.
• File database yang berisi baris. Datafile yang pertama memiliki nomor 1. Panjang string
tergantung pada sistem operasi Anda.
• Data jumlah objek, yang merupakan nomor identifikasi ditugaskan untuk setiap segmen
database. Anda dapat mengambil objek data nomor dari view USER_OBJECTS,
DBA_OBJECTS, dan ALL_OBJECTS. Objek yang memiliki segmen yang sama
(clustered tabel di cluster yang sama, misalnya) memiliki nomor objek yang sama.
Rowids disimpan sebagai basis 64 nilai yang dapat berisi karakter AZ, az, 0-9, dan tanda plus
(+) dan garis miring (/). Rowids tidak tersedia secara langsung. Anda dapat menggunakan
package yang disediakan DBMS_ROWID untuk menafsirkan isi rowid. Fungsi package adalah
melakukan ekstrak dan memberikan informasi mengenai empat unsur rowid yang tercantum di
atas.

UROWID
Baris-baris dari beberapa tabel memiliki alamat yang bukan fisik atau permanen yang tidak
digenerate oleh Oracle Database. Misalnya, alamat baris dari tabel-tabel terindeks-terorganisir
disimpan dalam indeks, yang dapat dipindahkan (disimpan di tempat lain). Rowids tabel asing
(seperti tabel DB2 yang diakses melalui gateway) tidak memiliki standar Oracle rowids.
Oracle menggunakan universal rowids (urowids) untuk menyimpan alamat dari tabel terindeksterorganisir
dan asing. Indeks tabel yang terorganisir memiliki urowids logik dan tabel asing
telah urowids asing. Kedua jenis urowid disimpan dalam pseudocolumn ROWID (sebagai
rowids fisik tabel tumpukan-terorganisir).
Oracle menciptakan rowids logis berdasarkan primary key tabel. Rowids logis tidak berubah
selama kunci primer tidak berubah. Pseudocolumn ROWID dari tabel indeks-terorganisir
memiliki tipe data UROWID. Anda dapat mengakses pseudocolumn ini seperti yang akan Anda
lakukan pada pseudocolumn ROWID tabel tumpukan-terorganisir (menggunakan statemen
SELECT ... ROWID). Jika Anda ingin menyimpan rowids sebuah tabel indeks-terorganisir,
maka anda dapat menentukan tipe kolom UROWID untuk tabel tersebut dan mengambil nilai
pseudocolumn ROWID ke dalam kolom tersebut.





Suatu jenis data baru di Oracle 11g: SIMPLE_INTEGER
Sebelum ke Oracle 11g, kita telah menggunakan tipe data PLS_INTEGER dalam program PL /
SQL. Dalam 11g, sebuah tipe data baru, SIMPLE_INTEGER, telah diperkenalkan. Ini adalah
sub-jenis tipe data PLS_INTEGER dan memiliki rentang yang sama dengan PLS_INTEGER.
Perbedaan dasar antara keduanya adalah SIMPLE_INTEGER yang selalu NOT NULL. Ketika
nilai dari variabel dinyatakan tidak pernah akan null maka kita dapat mendeklarasikan dengan
tipe data SIMPLE_INTEGER. Perbedaan utamanya adalah bahwa ia pernah memberikan pesan
error overflow seperti induknya, tipe data numerik melainkan tetap menjalankannya tanpa
memberikan pesan error. Ketika kita tidak perlu khawatir memeriksa status null serta
melimpahkan kesalahan, tipe data SIMPLE_INTEGER adalah yang terbaik untuk digunakan.
Perbedaan lainnya adalah bahwa tipe data SIMPLE_INTEGER memberikan peningkatan
kinerja yang besar dibandingkan PLS_INTEGER ketika kode ini disusun dalam mode
'NATIVE', karena operasi aritmatika pada tipe SIMPLE_INTEGER dilakukan langsung di
tingkat hardware. Ketika kode dikompilasi dalam mode 'diartikan' yang merupakan default,
SIMPLE_INTEGER masih lebih baik daripada PLS_INTEGER tetapi tidak begitu signifikan.
Anda dapat mengubah sesi untuk mengkompilasi kode dalam mode 'NATIVE' dengan
menjalankan pernyataan berikut ini dan kemudian kompilasi prosedur yang tersimpan.
SQL> ALTER SESSION SET PLSQL_CODE_TYPE 'NATIVE' =;
Session Altered.
Untuk beralih kembali ke modus standar,
SQL> ALTER SESSION SET PLSQL_CODE_TYPE = 'diartikan';
Session Altered.
Potongan kode Setelah menunjukkan kesalahan ketika variabel SIMPLE_INTEGER diberi nilai
null.
DECLARE
v_col1 SIMPLE_INTEGER: = 1;
BEGIN
v_col1: = NULL;
END;
/
Sejak v_col1 harus selalu bukan null dan kita berusaha untuk memberikan nilai null,
memberikan kesalahan berikut.
PLS-00382: Expression is of wrong type
Bahkan jika kita tidak memberi nilai dalam bagian deklarasi untuk tipe data
SIMPLE_INTEGER, itu menghasilkan menjadi kesalahan berikut:
PLS-00218: a variable declared NOT NULL must have an initialization assignment