Selasa, 14 April 2009

LISENSI-LISENSI SOFTWERE

Ketika mendownload sebuah software dari Internet, salah satu hal yang diperhatikan orang selain ukuran file fungsi dari software tersebut adalah lisensi (license). Software yang bisa didownload dari Internet belum tentu sebuah freeware, Setidaknya ada 7 jenis tipe lisensi yang dipakai oleh kebanyakan software yang beredar saat ini yaitu: trialware, shareware, demo, freeware,commercial, non commercial use, royalty-free binaries

Freeware sesuai dengan namanya adalah software yang benar-benar gratis atau bebas untuk digunakan, developer software tidak pernah meminta Anda untuk membayar apapun kepadanya. Dalam beberapa kasus kemampuan freeware malah lebih bagus ketimbang software berbayar. Beberapa freeware memberikan persyaratan bahwa software tersebut hanya boleh digunakan untuk penggunaan pribadi (personal) bukan untuk digunakan untuk keperluan komersil.

Trialware adalah software yang dapat Anda gunakan tapi ada batasan waktu atau jumlah pengguna, atau ada trialware yang menonaktifkan beberapa fungsi dari software tersebut. Sebagai contoh, Anda diperbolehkan menggunakan trialware selama 30 hari, atau hanya dapat menggunakannya sebanyak 15 kali. Setelah periode masa percobaan (trial) sudah habis jika Anda ingin melanjutkan penggunaan software tersebut Anda harus membayarnya.

Shareware sama seperti halnya trialware, bebas digunakan untuk sementara waktu. Tidak seperti trialware, semua fungsi software dapat digunakan sebelum batasan waktu coba-coba selesai. Setelah masa percobaan selesai Anda dapat mempertimbangkan untuk membelinya jika ingin menggunakannya lagi.

Demo adalah program yang digunakan hanya sebagai demonstrasi tentang fitur atau versi software dengan fitur yang terbatas dan tidak digunakan untuk bekerja. Demo hanya digunakan untuk ‘pamer’ kepada Anda sebelum membeli versi penuh dari software tersebut.

Open Source
Adalah software yang bersifat gratis dan kita boleh memodifikasinya. Hak cipta boleh kita rubah menjadi milik kita, kita boleh merubah / merombak software tersebut, bahkan kita boleh menjualnya ke orang lain. Contoh dari aplikasi open source adalah sistem operasi Linux, CMS Joomla dan sebagainya.

Lisensi Commercial

adalah jenis lisensi yang biasa ditemui pada perangkat lunak seperti Microsoft dengan Windows dan Officenya, Lotus, Oracle dan lain sebagainya. Software yang diciptakan dengan lisensi ini memang dibuat untuk kepentingan komersial sehingga user yang ingin menggunakannya harus membeli atau mendapatkan izin penggunaan dari pemegang hak cipta.

Lisensi Non Commercial Use

biasanya diperuntukkan untuk kalangan pendidikan atau yayasan tertentu dibidang sosial. Sifatnya yang tidak komersial, biasanya gratis tetapi dengan batasan penggunaan tertentu.

Lisensi Royalty-Free Binaries

serupa dengan lisensi freeware, hanya saja produk yang ditawarkan adalah library yang berfungsi melengkapi software yang sudah ada dan bukan merupakan suatu software yang berdiri sendiri.

Senin, 23 Maret 2009

Agile programing

Pengantar

Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai kata yang mengambarkan konsep model proses yang berbeda dari konsep model-model proses yang sudah ada. Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus.

Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Namun demikian, sama seperti model proses yang lain, Agile Software Development memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan situasi. Agile Software Development memungkinkan model proses yang toleransi terhadap perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan produktifitas menurun.

Prinsip Agile Software Development

Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Mengapa? Karena perubahan adalah hal yang utama dalam pembangunan software: perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:

  1. kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus
  2. menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
  3. Penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan.
  4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
  5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.
  6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
  7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek
  8. dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan
  9. perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
  10. kesederhanaan penting
  11. arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
  12. secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.

Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:

  1. kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
  2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
  3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Faktor Manusia pada Agile Process Model

Kunci faktor manusia pada model ini adalah proses didasari pada kebutuhan orang dan tim bukan sebaliknya, Untuk dapat sukses menerapkan model proses ini, pada faktor manusia ada beberapa kunci penting:

  1. kompetensi: ketrampilan dalam membangun dan pengetahuan tentang proses membangun
  2. Fokus: memiliki fokus yang sama sekalipun peran dalam tim berbeda
  3. Kolaborasi : kerja sama dengan klien, anggota tim dan manajer.
  4. Kemampuan ambil keputusan : tim pembangun memiliki otonomi dalam pengambilan keputusan terkait teknis dan proyek
  5. Kemampuan fuzzy problem-solving: mampu menyelesaikan memilah masalah yang penting untuk dipecahkan segera atau nanti.
  6. Saling percaya dan hormat: kekompakan tim yang didukung oleh rasa percaya dan saling menghargai satu sama lain.
  7. Manajemen diri: tim mengatur diri untuk selesaikan proyek, mengatur proses untuk disesuaikan dengan lingkungannya, tim menjadwal dirinya untuk menyerahkan hasil.

Agile Process Model

Berikut ini adalah model-model proses yang termasuk agile process model :

1. XP(Extreme Programming)

  1. dipublikasikan oleh Kent Beck tahun 1999
  2. Menggunakan pendekatan berorientasi objek
  3. Aktifitas Perencanaan : pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Periksa dan pertimbangkan resiko
  4. Aktifitas Desain: berprinsip: sederhana.Memanfaatkan kartu CRC (Class-Responsibility- Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika temui kesulitan, prototype dibangun [ini namanya spike solution]. Lakukan refactoring, yaitu mengembangkan desain dari program setelah ditulis
  5. Aktifitas Pengkodean: siapkan unit test sebelum pengkodean dipakai sebagai fokus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance
  6. Aktifitas Pengujian: menggunakan unit test yang dipersiapkan sebelum pengkodean.


2. ADAPTIVE SOFTWARE DEVELOPMENT (ASD)

  1. Diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks.
  2. Filosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri.
  3. Aktifitas: Speculation, Collaboration dan Learning
  4. Aktifitas Speculation : Adaptive cycle planning yaitu menggunakan informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment (produk software yang secara berkala diserahkan)
  5. Aktifitas Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
  6. Aktifitas Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui 3 cara:
  • Focus group: klien dan pengguna memberi masukan terhadap software
  • Formal Technique Reviews: Tim ASD lengkap melakukan review
  • Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses.

3. DYNAMIC SYSTEMS DEVELOPMENT METHOD

  1. menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
  2. Membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
  3. Aktifitas: feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
  4. Aktifitas: Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
  5. Aktifitas: Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
  6. Aktifitas: Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
  7. Aktifitas: Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.
  8. DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.

4. SCRUM

a) Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an

b) Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle

c) Scrum memiliki prinsip:

  • ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
  • proses dapat beradaptasi terhadap perubahan teknis dan bisnis
  • proses menghasilkan beberapa software increment
  • pembangunan dan orang yang membangun dibagi dalam tim yang kecil
  • dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
  • proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

d) Aktifitas Scrum : Backlog, Sprints, Scrum Meetings, Demo

e) Aktifitas Backlog : Backlog adalah daftar kebutuhan yang jadi prioritas klien. Daftar dapat bertambah.

f) Aktifitas Sprints: unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.

g) Aktifitas Scrum Meeting: pertemuan 15 menit perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.

h) Aktifitas Demo:penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien.

5. AGILE MODELING

  1. banyak situasi pembangun software harus membangun sistem bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan software.
  2. AM adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan sistem software.
  3. AM adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.
  4. Prinsip dalam AM;
  • membuat model dengan tujuan: tentukan tujuan sebelum membuat model
  • mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.
  • travel light: simpan model-model yang bersifat jangka panjang saja
  • isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
  • memahami model dan alat yang yang digunakan untuk membuat software
  • adaptasi secara lokal

Penutup

Dari model-model proses di atas dapat diambil beberapa poin penting:

1. komunikasi mempunyai peran penting dalam pembanguna software

2. kebutuhan software tidak mudah untuk diidentifikasikan secara lengkap

3. kerja sama dalam tim menentukan kelancaran pembangunan software

Aktifitas yang terjadi di dalam Agile Model Process tetap mengandung aktifitas-aktifitas yang ada pada model proses generasi sebelumnya seperti waterfall, incremental, spiral dan RAD. Selain itu, model-model proses di atas tetaplah bukan model proses yang cocok untuk setiap jenis software.

Referensi:

Ambler, Scott W. "An Introducation to Agile Modeling." Agile Modeling Home Page. 2001-2008. Diakses di http://www.agilemodeling.com/essays/introductionToAM.htm. 07/09/08.

Pressman, Roger S. Software Engineering : A Practitioner's Approach. 6th Ed. McGraw-Hall. NY. 2005.

Xtreme programig

Abstrak

Extreme Programming (XP) merupakan salah satu metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari beberapa agile software development methodologies yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle). Metodologi ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan customer (”agile”) dibandingkan dengan metode-metode tradisional sambil membangun suatu software dengan kualitas yang lebih baik.

Extreme Programming muncul menawarkan sebuah disiplin baru dalam pengembangan software secara agile. Nilai dasar yang terkandung di dalam Extreme Programming adalah: Komunikasi (Communication), Kesederhanaan (Simplicity), Umpan balik (Feedback) Keberanian (Courage) dan menghormati (Respect).

Kata Kunci: Extreme Programming, agile, coding, komunikasi, kesederhanaan, umpan balik, keberanian, menghormati.

Latar Belakang XP

Requirement yang berubah dengan cepat menuntut lifecycles yang lebih pendek, dan tidak selaras dengan metoda pengembangan tradisional, yang pada umumnya memerlukan disain luas di awal dan mengakibatkan perubahan desain yang terjadi kemudian memerlukan biaya yang lebih tinggi atau kehilangan milestones.

Berdasarkan hal ini kemudian dilahirkan konsep XP yang digagas oleh Kent Beck dan Ward Cunningham pada Maret 1996. Metode XP merupakan yang terpopuler dari beberapa metodologi pengembangan software yang dipakai untuk mengimplementasikan proyek pengembangan perangkat lunak.

Tujuan XP

Tujuan utama XP adalah menurunkan biaya dari adanya perubahan software. Dalam metodologi pengembangan sistem tradisional, kebutuhan sistem ditentukan pada tahap awal pengembangan proyek dan bersifat fixed. Hal ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan menjadi mahal. XP diarahkan untuk menurunkan biaya dari adanya perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan.

Kunci Utama XP

Menurut penggagas dari metode XP, Kent Beck mendefinisikan empat kunci utama (inti) dari XP yaitu:

1. Communication (Komunikasi)

Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan developer. Tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem.

2. Simplicity (Kesederhanaan)

XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses desain dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya besok jika diperlukan.

3. Feedback (Masukan)

Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).

4. Courage (Keberanian)

Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk selalu melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka seharusnya kode program seperti itu di refactor (kalau perlu dibangun ulang). Hal ini menjadikan pengembang merasa nyaman dengan refactoring program ketika diperlukan.

5. Respect (Menghormati)

Pentingnya respect terhadap anggota team lainnya karena dengan siklus pendek dan integrasi continue, programmer tidak boleh melakukan perubahan yang dapat merusak kompilasi dan menyebabkan keberadaan unit uji gagal atau memperlambat kerja team. Respects tiap individu akan selalu menghasilkan kualitas tinggi.

Penerapan XP

Beberapa hal yang harus dipertimbangkan sebelum seseorang masuk dalam dunia XP adalah sebagai berikut:

1. User harus memahami konteks bisnis yang akan dikembangkan sistemnya, sehingga developer dapat menangkap sistem secara aplikatif dan dapat mengusulkan teknologi apa yang dapat dikembangkan dalam sistem barunya.

2. Akan lebih efektif apabila developer pernah menangani proyek pengembangan sistem yang sejenis sehingga dapat memberikan usulan model sistem baru, di samping alasan bahwa developer telah memiliki template aplikasi sistem tersebut untuk dijadikan prototype sistem baru. Hal ini akan berimplikasi kepada kemudahan dalam konstruksi sistem karena dikembangkan berdasarkan template yang sudah ada.

3. Extreme programming menuntut komunikasi antar developer dan user secara intensif dan komunikasi internal antar developer secara komprehensif, sehingga akan lebih representatif apabila tahap pengembangan sistem dilakukan di lokal yang mendukung proses komunikasi tersebut.

XP adalah suatu bentuk pembangunan perangkat lunak yang berbasis nilai kemudahan, komunikasi, umpan balik, dan keberanian. Bekerja dalam whole team bersama-sama dengan praktek yang mudah. Adapun inti penerapannya adalah:

  1. Planning Game
  2. Small, frequent releases
  3. System metaphors
  4. Simple design
  5. Testing (unit testing & TDD)
  6. Frequent refactoring
  7. Pair programming
  8. Collective code ownership
  9. Continuous integration
  10. Sustainable pace
  11. Whole team together
  12. Coding standards

XP Practices

Kesimpulan

Keuntungan XP:

  • Menjalin komunikasi yang baik dengan client.
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer.

Kerugian XP:

  • Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).

Senin, 09 Maret 2009

Perkembangan Teknologi dalam Dunia Otomotif

Setiap ada perkembangan baru di dunia IT maka pasti akan diikuti juga oleh munculnya produk baru di bidang otomotif. Diantaranya akan dijelaskan sebagai berikut:

1. Mood Training

Mobil yang memadukan konsep alam dan ramah lingkungan. Mobil ini juga dilengkapi dengan teknologi "Mood Training" yang terletak di setir yang akan memonitor psikologi si pengendara. Ini masih dalam bentuk konsep yang akan dikeluarkan oleh Toyota.

2. Komputer Mobil

Perangkat keras utama dalam sistem ini adalah central processing unit (CPU). Untuk mempermudah pemasangan digunakan casing produksi Trivia yang sama dengan standar perangkat audio di mobil (berukuran 1 din, lebar 17,78 cm dan tinggi 5,08 cm), sehingga tidak perlu dilakukan banyak modifikasi interior mobil
Motherboard yang digunakan berukuran Mini-ITX (17 cm x 17 cm). Untuk mengurangi panas, dipilih motherboard kecepatan sedang, yaitu VIA EPIA M6000, menggunakan processor VIA Eden 600 MHz, sudah cukup andal menjalankan aplikasi-aplikasi berbasis Windows XP.
Untuk media penyimpanan, digunakan harddisk 40 GB 2,5 inci, yang didesain lebih tahan guncangan dibandingkan harddisk biasa berukuran 3,5 inci. CPU ini juga dilengkapi dengan pemutar DVD.

3. Motor Solar Cell
Kalau musim panas, motor ini tidak perlu mampir ke pompa bensin. Dengan menggunakan 4 buah 30W solar cell panel, motor ini cukup di jemur ketika mengisi baterai.



Motor ini setelah digunakan langsung dipajang dengan membuka panel surya untuk mengisi baterai selama 80 jam. sehingga selain hemat biaya motor ini juga hemat energi.

4. Teknologi LCD Menjadi Indikator Persneling

Revolusi baru dari teknologi LCD merambah otomotif. Perselingkendaraan dilengkapi dengan display LCD ketika sedang berkendara akan menunjukan posisi gigi kendaraan. Pengemudi akan lebih jelas melihat posisi gigi ketika memacu kendaraan, konon dengan petunjuk ini dapat menghemat bahan bakar. Karena pengemudi tidak pernah lupa melihat kondisi perseling dengan kecepatan.

5. Simulator Kereta Api

Simulator kereta api adalah sebuah perangkat lunak komputer yang menyimulasikan pengoperasian kereta api. Beberapa aspek yang termasuk dalam simulasi kereta api antara lain:
• Mengendalikan kereta api, menampilkan pandangan dari kabin masinis.
• Mengatur sinyal perjalanan kereta api.
• Memimpin sebuah perusahaan kereta api.

6. Alarm Mobil

Kalau ada orang yang hanya mendekat dan menyender di bodi mobil, bola akan meluncur ke tombol kontak pertama. Sensor akan meneruskan informasi ke komputer. Komputer mendeteksinya sebagai getaran yang tidak terlalu penting dan tidak mengaktifkan alarm. Namun kalau goyangannya membesar, bola terus bergerak menuju tombol utama, komputer akan mengaktifkan sistem alarm.
Sensor tekanan
Usaha pencurian yang semakin canggih mendorong perkembangan teknologi alarm. Kini alarm tidak hanya menghasilkan suara bunyi, tetapi bisa langsung mematikan sistem pengapian mobil, sehingga mesin tidak bisa distarter.
Untuk mencegah pencurian mobil yang memecahkan kaca jendela mobil, dikembangkan teknologi alarm sensor tekanan udara. Alarm langsung berbunyi bila kaca jendela dipecahkan. Sistem ini menggunakan microphone kecil yang dihubungkan dengan komputer mobil. Microphone bertugas mengukur fluktuasi tekanan udara berdasarkan frekuensi. Memecahkan kaca mobil menghasilkan frekuensi tertentu yang akan diterjemahkan komputer sebagai pencurian kendaraan bermotor.
Sistem tekanan yang lebih canggih, dirancang mampu membedakan antara tekanan udara di luar dan di dalam kabin. Bila ada perbedaan antara tekanan udara luar dan di dalam, secara otomatis alarm akan berbunyi. Mekanisme kerjanya menggunakan speaker pendeteksi tekanan udara.
Metode kerjanya memanfaatkan prinsip pergerakan cone speaker dan electromagnet yang dipasang di belakang cone. Alunan musik yang dihasilkan speaker sebenarnya merupakan getaran maju mundur cone yang didorong oleh elektromagnet.
Pada sistem tekanan udara, prinsip kerjanya dibalik. Perbedaan fluktuasi menggerakkan cone maju mundur, yang diteruskan ke electromagnet. Selanjutnya electromagnet meneruskan informasi ini ke komputer mobil yang sudah memiliki data tentang segala jenis getaran elektromagnet. Jika komputer mendeteksi ada perbedaan yang signifikan dibandingkan tekanan kabin standar, komputer memerintahkan sirene untuk berbunyi.

Bahkan kini pemilik dapat mengetahui kendaraannya ada yang membobol karena alat sensor di gantungan kunci akan berbunyi dan bergetar bila ada yang berupaya memasuki atau mengganggu mobil. Dengan teknologi yang semakin canggih alat detektor ini bisa memberi peringatan pada pemiliknya hingga jarak 1 km. Selain itu, dengan alat GPS bila mobil dicuri dengan derek atau masuk kontainer masih bisa dideteksi.

6. Pengontrol Jarak
Teknologi maju pada otomotif juga dimaksudkan untuk mengamankan penumpang di dalamnya bila terjadi tabrakan. Mercedes Benz dan Toyota sudah memasang sistem pengontrol jarak.

Dengan demikian pengemudi dapat menentukan, berapa jarak yang diinginkan dari mobil yang ada di depannya. Komputer akan mengatur untuk mengurangi kecepatan hingga mendekati limit jarak yang diinginkan. Peralatan ini juga sudah banyak dipasang, untuk keperluan parkir. Bila Toyota menggunakan sistem sinar laser, Mercedes Benz menggunakan sistem radar.

7. Stabilitas Elektronik

DaimlerChrysler, General Motor, dan BMW, sudah menggunakan sistem stabilitas elektronik, yang membuat mobil tetap stabil meski kemudi dibanting ke kiri atau ke kanan guna menghindari orang menyeberang atau hewan yang melintas secara tiba-tiba.
Sistem sensor pada roda dan kemudi, akan mengirim sinyal ke komputer, dan komputer akan mengatur rem agar putaran roda tidak tergelincir dan pengemudi tetap dapat mengendalikan kendaraannya.

8. Mobil Hibrida
Direncanakan pada suatu saat, orang dengan mudah merubah mobil lamanya menjadi mobil hibrida dengan mengganti komponen mesin, yaitu fly wheel. Bagian ini akan berfungsi sebagai generator yang menghasilkan arus untuk pengisian aki dan pada kesempatan lain digunakan untuk menghidupkan mesin berfungsi sebagai starter.


9. Ban Pintar
Selain di bidang mekanik dan mesin, komponen mobil yang lain juga mengalami kemajuan. Pabrik ban Michelin, beberapa waktu lalu memperkenal-kan ban yang tetap bisa dioperasikan sejauh 200 kilometer meski tanpa angin. Ban model ini sudah digunakan pada mobil mewah Mercedes dan Lexus. Dengan adanya ban seperti ini, pengendara tidak perlu khawatir bila tiba-tiba bannya kempes, ia bisa mencari tempat aman untuk menggantinya.


10. AVL (Automatic Vehicle Location)
Kini produsen otomotif mengembangkan AVL (automatic vehicle location) yang menggunakan fasilitas Global Positioning System (GPS). Teknologi AVL sudah banyak digunakan pada mobil di Eropa, Jepang, dan Amerika, amat bermanfaat untuk mencari alamat rumah atau membelokkan mobil mencari jalan alternatif menghindari kemacetan

Teori Semut

Pada tahun 1996, dunia AI pun ikut belajar dari semut dengan diperkenalkannya algoritma semut, atau Ant Colony Optimization, sebagai sebuah simulasi multi agen yang menggunakan metafora alami semut untuk menyelesaikan problem ruang fisik.

Algoritma semut diperkenalkan oleh Moyson dan Manderick dan secara meluas dikembangkan oleh Marco Dorigo, merupakan teknik probabilistik untuk menyelesaikan masalah komputasi dengan menemukan jalur terbaik melalui grafik. Algoritma ini terinspirasi oleh perilaku semut dalam menemukan jalur dari koloninya menuju makanan.

2 Cara kerja semut mencari jalur optimal

Semut mampu mengindera lingkungannya yang kompleks untuk mencari makanan dan kemudian kembali ke sarangnya dengan meninggalkan zat feromon pada jalur-jalur yang mereka lalui.

Feromon adalah zat kimia yang berasal dari kelenjar endokrin dan digunakan oleh makhluk hidup untuk mengenali sesama jenis, individu lain, kelompok, dan untuk membantu proses reproduksi.Berbeda dengan hormon, feromon menyebar ke luar tubuh dan hanya dapat mempengaruhi dan dikenali oleh individu lain yang sejenis (satu spesies).

Proses peninggalan feromon ini dikenal sebagai stigmergy, sebuah proses memodifikasi lingkungan yang tidak hanya bertujuan untuk mengingat jalan pulang ke sarang, tetapi juga memungkinkan para semut berkomunikasi dengan koloninya.

Seiring waktu, bagaimanapun juga jejak feromon akan menguap dan akan mengurangi kekuatan daya tariknya. Lebih lama seekor semut pulang pergi melalui jalur tersebut, lebih lama jugalah feromon menguap.

Agar semut mendapatkan jalur optimal, diperlukan beberapa proses:

  1. Pada awalnya, semut berkeliling secara acak, hingga menemukan makanan. Lihat Gambar-1.
  2. Ketika menemukan makanan mereka kembali ke koloninya sambil memberikan tanda dengan jejak feromon.
  3. Jika semut-semut lain menemukan jalur tersebut, mereka tidak akan bepergian dengan acak lagi, melainkan akan mengikuti jejak tersebut.
  4. Kembali dan menguatkannya jika pada akhirnya mereka pun menemukan makanan.
  5. Seekor semut yang secara tidak sengaja menemukan jalur optimal akan menempuh jalur ini lebih cepat dari rekan-rekannya, melakukan round-trip lebih sering, dan dengan sendirinya meninggalkan feromon lebih banyak dari jalur-jalur yang lebih lambat ditempuh.
  6. Feromon yang berkonsentrasi tinggi pada akhirnya akan menarik semut-semut lain untuk berpindah jalur, menuju jalur paling optimal, sedangkan jalur lainnya akan ditinggalkan.
  7. Pada akhirnya semua semut yang tadinya menempuh jalur yang berbeda-beda akan beralih ke sebuah jalur tunggal yang ternyata paling optimal dari sarang menuju ke tempat makanan. Lihat Gambar 2.

Keterangan Gambar 1:
A : Tempat awal koloni (sarang)
B : Tujuan koloni semut (makanan)
Jalur 1 (biru): Lintasan yang ditempuh oleh semut 1
Jalur 2 (hitam): Lintasan yang ditempuh oleh semut 2

Keterangan Gambar 2:
A : Tempat awal koloni (sarang)
B : Tujuan koloni semut (makanan)
Jalur Optimal : Jalur yang dilewati semut setelah beberapa iterasi

Seluruh proses ini menunjukkan berlangsungnya optimisasi alami kaum semut yang bisa kita tiru dalam kehidupan sehari-hari.

Teori hexagonal

Lebih Hebat dari Ahli Matematika

Lebah madu hidup sebagai koloni dalam sarang yang mereka bangun dengan sangat teliti. Dalam tiap sarang terdapat ribuan kantung berbentuk heksagonal atau segi enam yang dibuat untuk menyimpan madu. Tapi, pernahkah kita berpikir, mengapa mereka membuat kantung-kantung dengan bentuk heksagonal?
Para ahli matematika mencari jawaban atas pertanyaan ini, dan setelah melakukan perhitungan yang panjang dihasilkanlah jawaban yang menarik! Cara terbaik membangun gudang simpanan dengan kapasitas terbesar dan menggunakan bahan bangunan sesedikit mungkin adalah dengan membuat dinding berbentuk heksagonal.
Mari kita bandingkan dengan bentuk-bentuk yang lain. Andaikan lebah membangun kantung-kantung penyimpan tersebut dalam bentuk tabung, atau seperti prisma segitiga, maka akan terbentuk celah kosong di antara kantung satu dan lainnya, dan lebih sedikit madu tersimpan di dalamnya. Kantung madu berbentuk segitiga atau persegi bisa saja dibuat tanpa meninggalkan celah kosong. Tapi di sini, ahli matematika menyadari satu hal terpenting. Dari semua bentuk geometris tersebut, yang memiliki keliling paling kecil adalah heksagonal.
Karena alasan inilah, walaupun bentuk-bentuk tersebut menutupi luasan areal yang sama, material yang diperlukan untuk membangun bentuk heksagonal lebih sedikit dibandingkan dengan persegi atau segitiga. Singkatnya, suatu kantung heksagonal adalah bentuk terbaik untuk memperoleh kapasitas simpan terbesar, dengan bahan baku lilin dalam jumlah paling sedikit.
Hal lain yang mengagumkan tentang lebah madu ini adalah kerjasama di antara mereka dalam membangun kantung-kantung madu ini. Bila seseorang mengamati sarang lebah yang telah jadi, mungkin ia berpikir bahwa rumah tersebut terbangun sebagai blok tunggal. Padahal sebenarnya, lebah-lebah memulai membangun rumahnya dari titik yang berbeda-beda. Ratusan lebah menyusun rumahnya dari tiga atau empat titik awal yang berbeda. Mereka melanjutkan penyusunan bangunan tersebut sampai bertemu di tengah-tengah. Tidak ada kesalahan sedikitpun pada tempat di mana mereka bertemu.
Lebah juga menghitung besar sudut antara rongga satu dengan lainnya pada saat membangun rumahnya. Suatu rongga dengan rongga di belakangnya selalu dibangun dengan kemiringan tiga belas derajat dari bidang datar. Dengan begitu, kedua sisi rongga berada pada posisi miring ke atas. Kemiringan ini mencegah madu agar tidak mengalir keluar dan tumpah.

kisah sukses google


Siapa yang tak kenal dengan Google. Bagi semua peselancar dunia cyber pasti sudah sangat akrab dengan Om Google ini. Google sangat terkenal dengan mesin pencari di rimba belantara dunia maya. Yang perlu dilakukan hanyalah mengetik kata sandi yang diinginkan maka Om Google akan melacak dan mencari informasi apapun yang diinginkan.

Google dengan dua “o” pun unik, sebab jika data hasil pencarian ditemukan, jumlah “o” akan muncul sebanyak Web yang didapat oleh mesin pencari.

Kata Google berasal dari kata Googlo. Kata itu diciptakan oleh Milton Sirotta, Ponakan Edward Kasner seorang ahli Matematika dari AS. Sirotta membuat istilah Googlo untuk menyebutkan angka 1 (satu) yang diikuti 100 angka 0 (nol), Oleh karena itu penggunaan kata Google merupakan Refleksi dari kata Googlo.

Tapi tahukan Anda, Google tak hanya unik dari asal katanya. Google pun memiliki latar belakang sejarah yang unik. Google lahir dari sebuah pertemuan dua pemuda yang terjadi secara tidak sengaja pada tahun 1995 lalu. Larry Page, alumnus Universitas Michigan (24), yang sedang menikmati kunjungan akhir pekan, tanpa sengaja dipertemukan dengan Sergey Brin, salah seorang murid (23) yang mendapat tugas mengantar keliling Lary.

Dalam pertemuan tanpa sengaja tadi, dua pendiri Google tersebut sering terlibat diskusi panjang. Keduanya memiliki pendapat dan pandangan yang berbeda sehingga sering terlibat perdebatan. Namun, perbedaan pemikiran mereka justru menghasilkan sebuah pendekatan unik dalam menyelesaikan salah satu tantangan terbesar pada dunia komputer. Yakni, masalah bagaimana memperoleh kembali data dari set data masif.

Pada Januari 1996, Larry dan Sergey mulai melakukan kolaborasi dalam pembuatan search engine yang diberi nama BackRub. Setahun kemudian pendekatan unik mereka tentang analisis jaringan mengangkat reputasi BackRub. Kabar mengenai teknik baru mesin pencari langsung menyebar ke penjuru kampus.
Larry dan Sergey terus menyempurnakan teknologi Google sepanjang awal 1998. Keduanya juga mulai mencari investor untuk mengembangkan kecanggihan teknologi Google.

Gayung pun bersambut. Mereka mendapat suntikan dana dari teman kampus, Andy Bechtolsheim, yang merupakan pendiri Sun Microsystems. Pertemuana mereka terjadi pada pagi buta di serambi asrama mahasiswa fakultas Stanford, di Palo Alto. Larry dan Sergey memberikan demo secara singkat karena Andy tak memiliki waktu yang cukup lama.

Melalui demo itu Andy setuju untuk memberikan bantuan dana berupa sebuah cek senilai 100 ribu dolar AS. Sayangnya, cek itu tertulis atas nama perusahaan Google. Padahal saat itu perusahaan bernama Google belum didirikan oleh Sergey dan Larry.

Investasi dari Andy menjadi sebuah dilema. Larry dan Sergey tak mungkin menyairkan cek selama belum ada lembaga legal yang bernama perusahaan Google. Karena itu, dua pendiri Google ini kembali bekerja keras dalam mencari investasi. Mereka mencari pendana dari kalangan keluarga, teman, dan sejawat hingga akhirnya terkumpul dana sekitar 1 juta dolar. Dan akhirnya, perusahaan Google pun dapat didirikan pada 7 Septembar 1998 dan dibuka secara resmi di Menlo Park, California.

Misi Google adalah, “untuk mengumpulkan informasi dunia dan menjadikannya dapat diakses secara universal dan berguna.” Filosofi Google meliputi slogan seperti “Don`t be evil”, dan “Kerja harusnya menatang dan tantangan itu harusnya menyenangkan”, menggambarkan budaya perusahaan yang santai.

Saat ini Google merupakan sebuah perusahaan berpredikat nomor satu dalam top 100 perusahaan yang paling diminati di Amerika, dengan jumlah pegawai sekitar 10 ribu orang.

Analisa Google

1. Strength (Kelebihan)

Search engine memudahkan pencarian data relevan. Jika kita mengetikkan kata kunci tertentu, search engine akan berusaha mencari data paling cocok sesuai dengan APInya masing-masing.
 Mendukung web-service. Fitur ini untuk pengembang software. Dengan mengetahui web-service suatu search engine, kita tidak perlu membuat search engine sendiri untuk membuat aplikasi yang support pencarian di web. Contohnya adalah browser firefox, Yahoo Messenger atau flock. Aplikasi-aplikasi tersebut support pencarian.
 Search engine mengindex suatu halaman secara berkala. Jadi, bila suatu website diupdate search engine akan mengetahuinya.
 Saat ini search engine juga support localized search. Yaitu pencarian berdasarkan lokasi pengunjung. Contohnya adalah google, jika anda mengetik google.com di indonesia, maka akan redirect ke google.co.id.
 Cepat diakses. Search engine biasanya didesain simpel agar cepat diakses. Hasil pencarian pun juga cepat muncul karena memakai caching.

2. Weakness (Kelemahan)
 Kecepatan index dan kecepatan berkembangnya web yang tak sebanding. Saat ini berbagai website banyak bermunculan, jika kecepatan index search engine tidak ditingkatkan maka tak mungkin search engine bisa mengindex semuanya.
 Kadangkala search engine tidak menampilkan hasil yang diinginkan. Search engine selalu berusaha menampillkan hasil yang relevan. Tetapi kadang kala tetap memperlihatkan hasil yang tidak relevan.
 Munculnya orang-orang yang melakukan link-spamming. Yaitu melakukan spamming link untuk meningkatkan posisi mereka di search engine.
 Tidak bisa mengindeks halaman tertentu. Beberapa website yang memakai konten dinamis tidak bisa diindex. Biasanya website seperti ini dihalangi oleh form yang mengharuskan inputan.

3. Opportunity (Peluang)


Google menjadi kekuatan bisnis internet yang jauh lebih kuat daripada Yahoo. Seperti dikutip dari Detikinet, pada kuartal empat tahun 2007 saja Google berhasil membukukan keuntungan sampai US$ 1,21 miliar. Sementara Yahoo dalam kurun waktu yang sama, hanya meraih profit sebesar US$ 206 juta.
Di tahun 2008 ini, Google juga diperkirakan akan terus menguasai pasar mesin cari dengan prosentase 65,1 persen sementara Yahoo berada jauh di belakang dengan raihan pangsa pasar 22 persen saja.
Menurut penulis buku “The Search”, John Battelle, apa yang dlinginkan dunia adalah sebuah perusahaan yang bisa menjawab semua pertanyaan dengan segala kemungkinan jawaban yang dapat membuka semua teka-teki bisnis dan kebudayaan manusia itu sendiri.
Dan selama beberapa tahun terakhir, itulah yang telah dilakukan Google dengan menawarkan pendekatan baru yang radikal untuk dunia pencarian. Google mendefinisikan konsep marketing baru, lolos dari kehancuran bisnis dot-com, menarik dana yang luar biasa besar dan paling hangat dibicarakan dalam sejarah Silicon Valley. Melebihi semua pesaingnya, Google telah menjadi pintu gerbang untuk pengetahuan instan. Ratusan juta orang menggunakannya untuk memuaskan keingintahuan mereka, kebutuhan mereka, ketakutan mereka, serta obsesi mereka. Semua ini menghasilkan apa yang disebut Battelle “Database atau Gudang Data yang Penuh Arti”. Namun Google tentu tidak bisa untuk berpuas diri dengan prestasi yang telah diraih. Karena kompetitor semakin serius untuk menarik perhatian pengguna. Era Web 2.0 membuat para raksasa mesin pencari harus ekstra hati-hati karena bisa saja pemain yang kurang diperhitungkan akan mengalahkan mereka, karena memiliki fitur dan layanan yang diminati pengguna.

4. Threat (Tantangan)

MSN siap menjadi pesaing Yahoo dan Google!
Microsoft sepertinya tidak habis-habisnya mencoba berusaha menjadi perusahaan IT nomor wahid di dunia, apapun core bisnisnya Microsoft mencoba mengambil alih singgasana tertentu untuk dikuasainya. Seperti bisnis yang dipegang oleh Yahoo dan Google.
Yahoo dengan email gratisnya yang berkapasitas 1 GB telah menjadi salah satu penyedia email gratis terbesar di dunia, sedangkan google telah menjadi situs pencarian terbesar didunia. Dan microsoft seperti biasa mencoba mengambil tahta itu dengan mengeluarkan MSN berkapasitas Giga.
Memang persaingan didunia maya ini semakin bertambah marak terutama ketika microsoft berusaha mengambil alih beberapa kekuasaan yang sebagian besar telah di pegangnya. Mengenai berhasil tidaknya, kita tunggu saja apakah Yahoo dan Google akan tenggelam seperti halnya Apple dan Netscape?
Saat ini, banyak pengamat yang memprediksikan bahwa Google masih akan terus menjadi raja mesin pencari. Namun, bukan tidak mungkin posisinya akan tersungkur dari tahta. Karena bermodal menjadi raksasa saja tidak bisa menjadi jaminan akan bisa memenangkan persaingan di era informasi sekarang.
Banyak contoh kasus dimana perusahaan kecil bisa mengalahkan perusahaan besar karena lebih cepat dalam bergerak dan pandai melihat peluang. Persaingan di bidang mesin pencari akan menjadi semakin ketat, mereka harus terus berinovasi dengan teknologi terbaru dan mengatur strategi yang tepat. Jika tidak, bersiap-siaplah untuk tergusur. Siapa yang nanti akan menang? Akankah Google masih bisa mempertahankan atau akan tergantikan oleh pemain baru?