Selasa, 29 November 2011

Konsep Komputer Masa Depan (Soft Skill)


komputer dari masa ke masa mengalami perkembangan yang cukup unik, dari awal kemunculan komputer pada tahun 50an dengan konsep yang begitu rumit namun fungsionalitasnya cukup rendah kemudian berkembang menjadi komputer portabel sampai saat ini. jika diamati lebih seksama kita lihat pada awalnya perkembangan teknologi komputer sangatlah lambat, lihat saja dari tahun 50an ke tahun 70an terlihat belum ada perkembangan yang signifikan, bedahal jika kita lihat perkembangan teknologi sekarang, dalam hitungan bulan pun teknologi komputer telah bertambah secara pesat ditandai dengan kemunculan device-device baru yang mudah didapati oleh masyarakat umum.
Ibaratnya manusia, komputer masa depan akan memiliki kecerdasan luar biasa ditambah dengan panca indra seperti manusia : pengelihatan, pengecap, peraba, pencium, dan pendengaran.
Jenis Komputer
Komputer masa depan juga akan memiliki bermacam-macam bentuk dan tingkat kecerdasan :
  • Yang bentuknya kecil dan sederhana bisa dibawa2 atau dipakai (misalnya berbentuk arloji). Memiliki kecerdasan terbatas dan lebih berfungsi sebagai client komputer yang lebih besar. Misalnya kita ingin tahu bagaimana kondisi lalulintas saat ini antara Jakarta ke Bandung, maka komputer ini akan segera menanyakan ke komputer di jaringan secara peer to peer dan memberikan informasi terbaik berdasarkan data yang diterima. Komputer ini juga merupakan semacam tanda pengenal dari si pemakai (tuannya), sehingga kemanapun tuannya pergi, semua komputer2 di seluruh dunia akan mengenali orang ini berdasarkan identifikasi yang dipancarkan oleh komputer kecil ini
  • Yang terpasang di dalam mobil, fungsinya memonitor kondisi lalulintas, mobil dan penumpang. Komputer ini akan memiliki banyak kamera yang memonitor kondisi jalan dan interior mobil. Komputer juga memiliki layar yang berbentuk kaca depan mobil, sehingga dalam keadaan gelap, komputer dapat membantu memproyeksikan gambar jalanan dengan terang ke kaca depan mobil berkat kamera inframerah yang terpasang di sekeliling mobil. Komputer juga akan mengambil alih kemudi jika si pengemudi berada dalam keadaan tidak sehat (misalnya mabuk)
  • Yang terpasang di rumah, fungsinya membuat semua proses di rumah menjadi otomatis. Misalnya menyalakan lampu, pompa kolam renang, dan lain2 secara otomatis
  • Yang terpasang secara sentral, fungsinya mengatur semua sumber2 daya yang ada di bumi ini. Komputer sentral ini akan terhubung melalui jaringan nirkabel ke semua komputer di permukaan bumi dan antariksa…
Sensor Panca Indra
Dengan adanya panca indra tadi dan kemajuan di teknologi programming, maka komputer2 tadi dapat beroperasi secara mandiri, karena tidak lagi memerlukan input dari perangkat khusus seperti keyboard/mouse/touch screen di komputer masa sekarang :
  • pengelihatan : komputer dilengkapi oleh kamera 360° dan dapat memahami gerak-gerik/gesture, roman muka, gerakan mulut, mengenali orang/benda2 sekitar dan menterjemahkannya ke dalam instruksi komputer. Misalnya jika ada orang mencurigakan berjalan melintas komputer ini, maka komputer dapat melaporkannya ke polisi dan memberi data berupa foto/rekaman video orang yang mencurigakan tersebut dan data2 lain (misalnya nama, nomor ktp, alamat, dan lain2) dari orang tersebut
  • pengecap : komputer dilengkapi dengan sensor yang dapat mengecap, sehingga dapat mengenali bermacam2 jenis makanan/minuman/benda dari rasanya. Komputer ini dapat menterjemahkan rasa sebuah benda dan menguraikannya ke dalam ramuan dasar (misalnya terbuat dari gula, tepung, minyak kelapa sekian persen…dst). Salah satu aplikasinya adalah merasakan makanan yang akan dimakan tuannya dan memastikan bahwa tidak ada racun di dalamnya
  • peraba : komputer dilengkapi dengan sensor yang dapat merasakan suatu benda dari rabaan, dan bisa membedakan mana benda yang lunak dan keras, dingin, panas, basah, kering, lembab, tajam, tumpul, juga merasakan gerakan angin dan sebagainya. Salah satu aplikasinya adalah untuk robotik di mana robot bisa diminta untuk memijit2 punggung tuannya yang sedang pegal
  • pencium : indra ini memungkinkan komputer mencium dan mengenali siapapun/apapun dari bau/aromanya. Salah satu aplikasinya adalah untuk mendeteksi adanya obat2an terlarang di airport, atau juga deteksi bau2an yang tidak enak dan melaporkannya pada petugas yang terkait
  • pendengaran : indra ini sudah disempurnakan sehingga komputer mampu menerima instruksi melalui suara manusia. Indra ini juga mampu mengidentifikasikan suara2 musik dan menterjemahkan sebuah rekaman suara yang rusak ke dalam bentuk notasi musik atau tulisan (berguna sekali untuk ekstrak rekaman2 pidato kuno misalnya)
Tanpa Keahlian
Semua kemampuan tersebut akan membuat komputer tidak lagi sebagai benda yang sulit untuk digunakan. Penggunaan komputer tidak lagi membutuhkan keahlian khusus yang didapat dengan training dengan sertifikat.
Terobosan Arsitektur
Semua hal tersebut akan sangat mungkin kita dapatkan dengan dukungan software dan hardware yang hebat dan inovatif. Saat ini, kalau kita inginkan kemampuan seperti itu mungkin akan membutuhkan terobosan besar di arsitektur software dan hardware yang ada, karena teknologi yang kita punya sekarang memang belum sampai ke situ.
Software hebat hanya akan berjalan di hardware yang hebat dengan bantuan operating system yang juga hebat.
Operating System yang Ramping dan Cerdas
Operating system di sini menjadi sangat penting karena operating system harus berjalan di banyak arsitektur hardware yang berbeda2 (tergantung jenis komputernya tadi). Dan OS harus dapat melayani semua permintaan dari aplikasi di atasnya dengan optimum tanpa terlalu membebani hardware yang ada…
Moore’s Law
Untuk saat ini, mungkin semua hal ini masih angan2, tetapi jika kita bisa yakinkan dengan kelangsungan hukum Moore (Intel co-founder) sampai beberapa dekade lagi, dan kemajuan2 di dunia programming, maka saya yakin dalam waktu dekat kita sudah mulai melihat produk2 canggih masa depan ini menjadi kenyataan…

referensi: http://tonyseno.blogspot.com/2008/03/future-komputer-masa-depan-dengan-panca.html


Selasa, 15 November 2011

Tugas : Pengantar Teknologi dan Informatika 1A

1. Komunikasi Data
Komunikasi data adalah proses pengiriman dan penerimaan data/informasi dari dua atau lebih device (alat,seperti komputer/laptop/printer/dan alat komunikasi lain)yang terhubung dalam sebuah jaringan. Baik lokal maupun yang luas, seperti internet.


2. Elemen-elemen Komunikasi Data
       - Sumber : mengirimkan data yang memiliki tugas untuk membangkitkan berita / informasi dan menempatkannya pada media transmisi.

      - Media transmisi : alat yang menghubungkan antara sumber dan penerima yang memiliki tugas menerima berita / informasi dari sumber dan meneruskannya ke penerima.

      - Penerima : menerima informasi yang disampaikan oleh sumber melalui media transmisi yang memiliki tugas untuk menerima informasi / data.



3. Manfaat dan Kegunaan Jaringan Komputer
      Manfaat : a. Berbagi perangkat keras
                     b. Berbagi program data
                     c. Mendukung kecepatan berkomunikasi
                     d. Memudahkan pengaksesan informasi


      Kegunaan : a. Jaringan membantu usaha dalam melayani klien mereka lebih efektif
                        b. Jaringan memungkinkan kelompok kerja berkomunikasi dengan lebih efisien
                        c. Jaringan membantu mempercepat proses berbagi data (sharing)


4. Topologi Jaringan


Topologi menggambarkan struktur dari suatu jaringan atau bagaimana sebuah jaringan di desain.


jenis-jenisnya


a. Topologi Star , Pada topologi Star, masing-masing workstation dihubungkan secara langsung ke server atau hub. Keunggulan dari topologi tipe Star ini adalah bahwa dengan adanya kabel tersendiri untuk setiap workstation ke server, maka bandwidth atau lebar jalur komunikasi dalam kabel akan semakin lebar sehingga akan meningkatkan unjuk kerja jaringan secara keseluruhan. Dan juga bila terdapat gangguan di suatu jalur kabel maka gangguan hanya akan terjadi dalam komunikasi antara workstation yang bersangkutan dengan server, jaringan secara keseluruhan tidak mengalami gangguan. Kelemahan dari topologi Star adalah kebutuhan kabel yang lebih besar dibandingkan dengan topologi lainnya.



b. Topologi Ring , Di dalam topologi Ring semua workstation dan server dihubungkan sehingga terbentuk suatu pola lingkaran atau cincin. Tiap workstation ataupun server akan menerima dan melewatkan informasi dari satu komputer ke komputer lain, bila alamat- alamat yang dimaksud sesuai maka informasi diterima dan bila tidak informasi akan dilewatkan. Kelemahan dari topologi ini adalah setiap node dalam jaringan akan selalu ikut serta mengelola informasi yang dilewatkan dalam jaringan, sehingga bila terdapat gangguan di suatu node maka seluruh jaringan akan terganggu. Keunggulan topologi Ring adalah tidak terjadinya collision atau tabrakan pengiriman data seperti pada topologi Bus, karena hanya satu node dapat mengirimkan data pada suatu saat.

c. Topologi bus , Pada topologi Bus digunakan sebuah kabel tunggal atau kabel pusat di mana seluruh workstation dan server dihubungkan. Keunggulan topologi Bus adalah pengembangan jaringan atau penambahan workstation baru dapat dilakukan dengan mudah tanpa mengganggu workstation lain. Kelemahan dari topologi ini adalah bila terdapat gangguan di sepanjang kabel pusat maka keseluruhan jaringan akan mengalami gangguan.


5. Media Transmisi dan jenis nya

Media transmisi adalah media yang menghubungkan antara pengirim dan penerima informasi (data), karena jarak yang jauh, maka data terlebih dahulu diubah menjadikode/isyarat, dan isyarat inilah yang akan dimanipulasi dengan berbagai macam cara untuk diubah kembali menjadi data.

Jenisnya : - Guided transmission media atau media transmisi terpandu merupakanjaringan yang menggunakan sistem kabel.
             - Unguided transmission media atau media transmisi tidak terpandu merupakan jaringan yang menggunakan sistem gelombang.





















































Minggu, 13 November 2011

Prinsip Bahasa Pemrograman dan Konsep Bahasa Pemrograman



Data

Data adalah sesuatu yang belum mempunyai arti bagi 
  
penerimanya dan masih memerlukan adanya suatu

pengolahan. Data bias berwujud berupa keadaan, gambar,

suara, huruf, angka, matematika, bahasa ataupun simbol-

simbol lainnya yang bias kita gunakan sebagai bahan untuk

melihat lingkungan, obyek, kejadian ataupun suatu konsep.
Ada beberapa tipe data yang harus kita ketahui antara lain :
1. Tipe data Char dan String
Ini merupakan tipe data dasar, tipe data ini didefinisikan pada deklarsi var dibagian algoritma/program.
Example :
  Var Nama : String
  Nilai : Char
Keterangan :
·         Nama merupakan sebuah variabel didefinisikan sebagai variabel bertipe string, maksudnya pada variabel tersebut digunakan untuk menerima masukan sebuah nama yang terdiri dari sekumpulan huruf, dapat berupa huruf besar, kecil, atau campuran kedua-duanya.
·         Nilai, didefinisikan sebagai variabel yang bertipe data char, maksudnya variabel tersebut hanya dapat digunakan untuk memasukkan sebuah huruf dari huruf besar, seperti A, B, C,.. atau huruf kecil, a, b, c, ….
2. Tipe data Boolean
Tipe data ini digunakan untuk pengambilan keputusan dalam operasi logika. Terdiri dari true disimbolkan ‘T’ dan False yang disimbolkan ‘F’. Ketika kita ingin mendapatklan hasil yang valid/pasti, kita menggunakan tipe data boolean untuk memperoleh keputusan dalam suatu penyelesaian yang pasti.

3. Tipe Data Integer
Merupakan tipe data bilangan bulat.
Tipe Data
Rentang nilai
Memori
Byte
0…255
1 byte
Word
0…65.555
1 byte
Integer
-32.768 s.d 32.767
2 byte
Long Integer
-2.147.483.648
4 byte
4. Tipe Data Real
Merupakan tipe data bilangan pecahan seperti real, single, double, comp, extend.
5. Tipe Data Subrange
Merupakan tipe data bilangan yang punya jangkauan nilai tertentu sesuai dengan definisi pada pemrogram.
Example:
Type Variabel=Nilai_awal…Nilai_akhir
6. Tipe Data Enumerasi
Merupakan tipe data yang memiliki elemen-elemen tertentu yang disebut satu/satu dari bernilai konstanta integer sesuai dengan urutannya. Pada tipe data ini elemen masukan diwakili oleh suatu nama variable yang ditlis di dalam kurung.
Example :
Indeks_Hari = (Nol, Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu)
7. Tipe Data Array (Larik)
Tipe data ini sudah terstruktur dengan baik, walaupun masih sederhana. Tipe data ini menampung sejumlah data dengan tipe data sama (homogen) dalam sebuah variabel.


·         Cara mendefinisikan tipe data array
Berdimensi satu
Var
Nama_Variabel_Array[1...N]of tipe_data
1 Nomor Indeks
·         Berdimensi dua
Var
Nama_Variabel_Array=Array[1...N,1...M]of tipe_data
2 buah Nomor Indeks
8. Tipe Data Record
Tipe data komposit yang sudah terstruktur denagn baik. Tipe data ini digunakan untuk menampung data suatu obyek. Datanya berupa campuran dari tipe data seperti string, numerik, char, boolean, atau tipe data lainnya. Tipe data ini merupakan struktur dasar dari suatu sistem database.
9. Tipe Data Array Record
Tipe data array yang dibangun dari tipe data record.
10. Tipe Data Citra
Berisi grafik/gambar yang banyak digunakan pada aplikasi video.
Example :
Grafik perkembangan jumlah penduduk.






Model Komputasi

Ada tiga model dasar komputasional-- fungsional, logika, dan imperatif. Sebagai tambahan terhadap satuan nilai-nilai dan operasi yang berhubungan, masing-masing model komputasional mempunyai satu set operasi yang digunakan untuk menggambarkan komputasi.
a. Model Fungsional : terdiri dari satu set nilai-nilai, fungsi-fungsi dan operasi aplikasi fungsi dan komposisi fungsi. Fungsi dapat mengambil fungsi lain sebagai argumentasi dan mengembalikan fungsi sebagai hasil (higher-order function). Suatu program adalah koleksi definisi fungsi-fungsi dan suatu komputasi adalah aplikasi fungsi.
b. Model Logika : terdiri dari satu set nilai-nilai, definisi hubungan dan kesimpulan logis. Program terdiri dari definisi hubungan dan suatu komputasi adalah suatu bukti(suatu urutan kesimpulan).
c. Model Imperatif : terdiri dari satu set nilai-nilai yang mencakup suatu keadaan dan operasi tugas untuk memodifikasi pernyataan. Pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Program terdiri dari urutan tugas dan suatu komputasi terdiri dari urutan pernyataan.

Pembagian Model komputasi ada 3 yaitu :
1. Mesin Mealy
Dalam teori komputasi sebagai konsep dasar sebuah

komputer, mesin Mealy adalah otomasi fasa berhingga

(finite state automaton atau finite state tranducer) yang

menghasilkan keluaran berdasarkan fasa saat itu dan bagian

masukan/input. Dalam hal ini, diagram fasa (state diagram 

dari mesin Mealy memiliki sinyal masukan dan sinyal

keluaran untuk tiap transisi. Prinsip ini berbeda dengan

mesin Moore yang hanya menghasilkan keluaran/output pada tiap fasa.
Nama Mealy diambil dari “G. H. Mealy” seorang perintis

mesin-fasa (state-machine) yang menulis karangan “A

Method for Synthesizing Sequential Circuits” pada tahun

1955.




2. Mesin Moore
Dalam teori komputasi sebagai prinsip dasar

komputer, mesin Moore adalah otomasi fasa berhingga

(finite state automaton) di mana keluarannya ditentukan

hanya oleh fasa saat itu (dan tidak terpengaruh oleh bagian

masukan/input). Diagram fasa (state diagram) dari mesin

Moore memiliki sinyal keluaran untuk masing-masing fasa

. Hal ini berbeda dengan mesin Mealy yang mempunyai

keluaran untuk tiap transisi.
 
Nama Moore diambil dari “Edward F. Moore” seorang

ilmuwan komputer dan perintis mesin-fasa (state-machine)

yang menulis karangan “Gedanken-experiments on

Sequential Machines”.

 


3. Petri Net
Petri net adalah salah satu model untuk merepresentasikan

sistem terdistribusi diskret. Sebagai sebuah model, Petri net

merupakan grafik 2 arah yang terdiri dari place, transition,

dan tanda panah yang menghubungkan keduanya. D

i samping itu, untuk merepresentasikan keadaan

sistem, tokendiletakkan pada place tertentu. Ketika

sebuah transition terpantik, token akan bertransisi sesuai

tanda panah.
Petri net pertama kali diajukkan oleh Carl Adam Petri pada

tahun 1962.

 





Prinsip-prinsip Desain Bahasa Pemrograman

a. Clarity, Simplicity dan Unity
Bahasa pemrograman harus dapat menolong programer

untuk membuat suatu desain program jauh sebelum 

programmer melakukan coding. Kemudahan, 

kesederhanaan dan kesatuan merupakan suatu kombinasi

yang membantu programmer mengembangkan suatu 

algoritma sehingga algoritma yang dihasilkan mempunyai 

kompleksitas yang rendah.
b. Orthogonality
Orthogonality menunjuk kepada suatu atribut yang dapat

dikombinasikan dengan beragam fitur bahasa pemrograman

sehingga setiap kombinasinya mempunyai arti dan dapat  

digunakan.
c. Kewajaran untuk Aplikasi
Bahasa pemrograman membutuhkan syntax yang 

tepat/cocok yang digunakan pada struktur program untuk

merefleksikan struktur logika yang melandasi suatu 

algoritma.
d. Mendukung Abstraksi
Abstraksi merupakan suatu hal yang substansial bagi 

programmer untuk membuat suatu solusi dari masalah yang 

dihadapi. Kemudian abstraksi tersebut dapat dengan mudah

diimplementasikan menggunakan fitur-fitur yang ada dalam 

bahasa pemrograman.
e. Kemudahan untuk Verifikasi Program
Verifikasi program merupakan hal penting bagi sebuah 

program karena dengan verifikasi yang mudah maka suatu

program akan dengan mudah dibangun dan dikembangkan.
f. Lingkungan Pemrograman
Bahasa pemrograman yang mempunyai lingkungan 

pemrograman yang baik dan lengkap akan memudahkan

programmer  untuk mengimplementasikan abstraksi yang

sudah disusunnya.

g. Portabilitas Program
Salah satu kriteria penting untuk proyek pemrograman

adalah kemudahan program yang sudah jadi untuk dipindah-

pindahkan dari komputer yang digunakan untuk membuat 

dan mengembangkan ke komputer lain yang akan 

menggunakannya.
h. Biaya Penggunaan
Biaya merupakan elemen penting dalam mengevaluasi 

suatu bahasa pemrograman.
Ada beberapa biaya yang dapat diukur yaitu :
1. Biaya Eksekusi Program
2. Biaya Translasi/kompilasi Program
3. Biaya Penciptaan, Testing dan Penggunaan Program
4. Biaya Pemeliharaan Program


Konsep Bahasa Pemrograman

Ada 3 hal yang berhubungan dengan konsep bahasa pemrogramanan: sintaks, semantiks dan pragmatis. Dalam mengajarkan 3 konsep ini saya menggunakan analogi bahasa yang biasa kita pakai sehari-hari.
SintaksSintaks sebuah bahasa berhubungan dengan struktur bahasa. Sebagai contoh, untuk membentuk sebuah kalimat yang valid dalam bahasa kita memakai struktur: [subyek] + [kata kerja] + [kata benda]. Dengan memakai struktur ini, kita bisa membentuk kalimat, sebagai contoh: Saya makan nasi.
Dalam hubungannya dengan bahasa pemrograman, kita musti memenuhi sintaks (baca: aturan struktur bahasa) agar program dapat berjalan. Sebagai contoh, dalam bahasa BASIC, untuk mengassign sebuah variabel dengan sebuah nilai, kita memakai operand ‘=’, tetapi kalau dalam Pascal, kita pakai ‘:=’. Contoh dalam BASIC: a=1, tapi dalam bahasa Pascal, a:=1.
SemantikSemantik sebuah bahasa menggambarkan hubungan antara sintaks dan model komputasi. Sederhananya, semantik menjelaskan arti dari program.
Analoginya sebagai berikut. Apabila kita memakai sintaks [subyek] + [kata kerja] + [kata benda], kita bisa menghasilkan kalimat-kalimat.
Apabila kita mengasilkan kalimat Saya makan nasi, maka kalimat ini memenuhi aturan sintaks. Tapi, apabila saya membuat kalimat Saya makan batu, secara sintaks kalimat ini sudah benar. Namun, secara semantik, kalimat ini tidak mengandung makna yang berarti.
Dalam hubungannya dengan bahasa pemrograman, kadang ada kalanya seorang programmer tidak bisa mengaitkan sintaks dengan model komputasi. Kesalahan logika bisa dengan mudah terjadi.
Sebagi contoh ada bahasa pemrograman sebagai berikut:
if(a=5) {
echo ‘Nilai a=5′;
}
Apabila program ini dijalankan, apa yang terjadi? Bergantung bahasa apa yang digunakan. Apabila bahasa yang dipakai adalah bahasa C, maka output yang keluar selalu Nilai a=5, walaupun nilai variabel a sebelumnya selain 5. Kenapa itu bisa terjadi? Itu karena operator ‘=’ dalam bahasa C berarti mengassign sebuah variabel yang ada di sebelah kiri dengan nilai yang ada di sebelah kanan. Dalam bahasa C, secara sintaks operasi ini sudah benar.
Tapi, apabila yang dimaksud adalah programmer ingin mengevaluasi nilai variabel a, maka seharusnya memakai operator logika ‘==’. Jadi, program yang sebenarnya menjadi
if(a==5){
echo ‘Nilai a=5′;
}
PragmatikPragmatik berhubungan dengan kemudahan implementasi dan efisiensi. Dalam analoginya dengan bahasa, kita bisa saja memberitahukan ke seseorang “Jangan merokok” apabila ada peraturan yang melarang seseorang merokok di dalam sebuah ruangan. Kalimat singkat seperti itu sebenarnya sudah cukup efisien. Tapi, dalam kesempatan lain kita bisa saja memakai kalimat “Mohon Anda jangan merokok di sini karena menurut peraturan pemerintah daerah nomor XXX tahun XXX dinyatakan bahwa merokok di tempat umum akan mengakibatkan pelanggaran peraturan, selain itu dari sisi kesehatan… blah blah blah”.
Dalam hubungannya dengan bahasa pemrograman, seorang programmer harus bisa memastikan efisiensi dalam melakukan peng-coding-an. Dalam bahasa C, programmer diberikan kekuasaan untuk mengalokasikan memori. Sebagai akibatnya, apabila programmer lalai dalam mengontorl variabel-variabel yang dihasilkan dari hasil assignment pointer, maka akan terjadi kebocoran memori. Ini diakibatkan apabila seorang programmer mengcreate sebuah variabel pointer, dan kemudian menghapusnya, informasi tersebut masih ada dalam memori, hanya saja sudah tidak bisa diakses lagi.