Kamis, 30 Juni 2011
Tips Menjadi Programer Handal
Kemampuan pemrograman komputer saat ini memang bukan monopoli mahasiswa maupun sarjana informatika saja. Selain bisa dipelajari secara otodidak, beberapa jurusan non-informatika di perguruan tinggi juga memasukkan dasar-dasar pemrograman komputer dalam kurikulum mereka.
Mempelajari pemrograman komputer sebaiknya dimulai dari mempelajari bahasa pemrograman yang relatif sederhana terlebih dahulu. Bahasa Pascal/Turbo Pascal maupun C/C++ merupakan alternatif yang baik untuk memulai. Di kebanyakan perguruan tinggi, Pascal merupakan bahasa pemrograman pertama yang diajarkan kepada mahasiswa jurusan informatika. Ini karena Pascal merupakan bahasa pemrograman yang sangat terstruktur sehingga memungkinkan mahasiswa untuk belajar mengasah logika pemrograman. Sementara itu, di perguruan tinggi yang lebih maju, semacam ITB atau UI, para mahaiswa semester awal akan langsung dikenalkan dengan bahasa C dengan pertimbangan bahwa penggunaannya lebih luas ketimbang Pascal sehingga lebih aplikatif. Bagi yang belajar pemrograman secara otodidak, saya sarankan untuk mulai dari Pascal dahulu, dan berikutnya barulah mempelajari C.
Saya tidak akan menyarankan untuk mempelajari beberapa bahasa pemrograman sekaligus secara simultan. Hal ini hanya akan membuat bingung sehingga malahan akan memperlambat proses belajar. Saya cenderung menyarankan untuk mempelajari dan menguasai secara sungguh-sungguh pada satu bahasa pemrograman tertentu. Sekali kita menguasai sebuah bahasa pemrograman, tidak sulit untuk mempelajari bahasa pemrograman lain. Pada pokoknya, setiap bahasa pemrograman hanya memiliki perbedaan pada sintaks dan cara-cara pendeklarasian variabel, konstanta, maupun hal-hal khusus semacam array, pointer, atau linked list (perkecualian ada pada bahasa assembly atau bahasa dengan struktur ‘nyeleneh’ semacam Prolog). Itulah sebabnya bagi mereka yang sudah akrab dengan pemrograman komputer, tidak akan terlalu kesulitan untuk mempelajari bahasa pemrograman baru.
Mirip seperti kegiatan hacking, pemrograman komputer lebih banyak mengandung unsur seni ketimbang teknis. Mempelajari ’seni’ pemrograman merupakan hal yang tidak kalah pentingnya selain mempelajari bahasa pemrograman itu sendiri. Subjek-subjek semacam teknik flowchart, struktur data, maupun logika dan algoritma pemrograman adalah hal yang perlu dipelajari untuk memahami ’seni’ memprogram komputer. Juga jangan lupa untuk mempelajari teknik-teknik pemrograman semacam OOP (Object Oriented Programming, Pemrograman berorientasi objek). Semua itu akan sangat berguna dalam kegiatan pemrograman yang sesungguhnya, terutama untuk membuat aplikasi-aplikasi yang kompleks.
Beberapa bahasa pemrograman didesain untuk keperluan khusus. Bahasa assembly perlu dipelajari apabila kita ingin menjadi programmer sistem yang banyak melakukan akses pada hardware. Sebaliknya, beberapa bahasa pemrograman didesain untuk mengembangkan aplikasi yang spesifik. Bahasa Cobol misalnya, lebih banyak digunakan untuk aplikasi bisnis sementara Prolog biasanya dipakai untuk menciptakan software yang memiliki kemampuan expert system/sistem pakar (semacam teknik kecerdasan buatan). Tidak perlu kemaruk mempelajari semuanya. Cukup pelajari bahasa pemrograman yang sekiranya dibutuhkan saja.
Untuk ukuran saat ini, bahasa pemrograman visual dibawah lingkungan Windows seperti Visual Basic atau Delphi merupakan bahasa pemrograman ‘favorit’ para developer Untuk mereka yang berkecimpung dalam pemrograman database, penguasaan terhadap SQL dan variannya (MS SQL, MySQL maupun PosgreSQL) merupakan nilai tambah. Sementara itu, penguasaan bahasa C merupakan keharusan bagi para programmer yang berkutat dengan OS Linux maupun pengembang software yang sifatnya lintas platform.
Terakhir, komputer dan pemrogramannya adalah dunia yang terus berkembang secara dinamis. Jangan berpuas diri dengan kemampuan yang dimiliki saat ini. Bahasa dan teknik pemrograman baru terus bermunculan dari waktu ke waktu. Seorang programmer sejati tidak pernah berhenti belajar dan mengasah kemampuannya.
sumber: http://budiridwin.web.id/home/cara-menjadi-seorang-programmer-komputer.html
Jumat, 06 Mei 2011
Menjadi seorang web designer
oo iya jadi dalam membuat website itu terbagi 3 jenis....:
yg pertama tuh td web master....
2. web desaigner....
ini nih orang yg kerjaannya nge-desain WEB... minimal memiliki keahlian di bidang multimedia dan desain grafis.
3. web developer....
ini nih orang yg kerjaannya nge-rancang coding dari suatu web... minimal memiliki kemampuan algoritma dasar, dan tentunya menguasai bahasa pemrograman web (khusunya yang scripting) macam: PHP,ASP,Javascript,VB.NET.dll
okeh sekarang... bagaimana memulai untuk mengembangkan sebuah site??
ini mah pendapat pribadi saya yang didasari oleh pengalaman doang jadi bukan absolut...
- pertama-tama bentuk tim yang solid dulu (g mesti tim sih... sebenernya sendirian juga bisa, tapi kan kita sebagai manusia punya kelebihan dan kekurangan jadi dengan membentuk tim kita bisa saling menutupi kekurangan masing2) cari partner yang kompeten di bidangnya.... mis: 2 orang sebagai desaigner web, 1 sebagai perancang database, 2 programmer.
- selanjutnya analisa permasalahan... website di buat untuk tujuan apa? sasarannya siapa? pembuatan gantt chart (rincian estimasi waktu pembuatan proyek) sampai yang permasalahan teknis kyk: mo di bikin brapa kolom? struktur navigasinya gimana?, de el el..
- udah dapet gambaran... mulai dah tahap pembuatan desain... pastikan halaman yg pertama dibuat adalah index. nah disini web desaigner berperan... dari bagaimana CSS yg dipakai, gunakan flash sebagai animasinya, teknik slicing dengan potosop de el el...
tips: jangan masukin banyak gambar, jangan memberikan warna yang terlalu mencolok, animasi sekedarnya... biar nanti user yg ngebuka bisa nyaman....
- lanjut dah ke tahap perancangan database... nah ini bagian lumayan berat... coz sangat menentukan nantinya... oke mulailah dengan merancang ERD (entitiy Diagram Relationship) nah ntar kan ketauan tuh kita menggunakan berapa table dalam database kita... lalu table mana aja yg saling terhubung... field apa yg di jadiin primary key dari setiap table...
- next... ini tahap terberatnya... jeng jeng jeng... nulis coding. sebenernya nulis coding khususnya buat web ato pemrograman aplikasi pada umumnya, selain menguasai algoritma dan bahasa pemrograman juga dibutuhkan logika, nalar, ama kreatifitas. yah sama lah klo kita bikin lagu... yang susah kan tentuin baselinenya... kalo udah dapet mah melod, tapping, bending, ato segala macam teknik DEWA gitar lainnya mah ngikut dengan sendirinya...
tips: pakailah bahasa pemrograman yg opensource macam PHP, perl. kalo kita pakai PHP ini saran dari aku... gunakan fungsi include(); trus rubah path dari absolut menjadi relative biar aman, gunakan fungsi mysql_escape_strings biar kagak di sqlinject ama orang. selalu perhatikan aspek keamanan... kebanyakan webdeveloper lupa akan sisi keamanan mreka malah mementingkan desain yang keren... padahal website mreka cacad... banyak bugs dimana2... buktinya... liat aja betapa mudahnya situs .go.id alias situs pemerintahan kita di bobol itu karena di bikinnya asal2an.
- ooh iya jangan lupa bikin pula halaman untuk admin. dimana di situ tempat buat upload file, management content dll. emang sih kita disini sama aja ama bikin 2 site... tp yakin deh itu berguna bgt... itung2 buat menghemat waktu nanti klo mo update content (jadi g usah ubah dari hard code langsung)
Selasa, 19 April 2011
Layout Manager pada Java
Java mempunyai fasilitas layout manager (manajemen tampilan) dalam mengelola form / kontainer.
Kontainer adalah objek yang memiliki jendela seperti form, panel, scoll pane dan lain-lain.
Setiap kontainer memiliki sebuah layout manager. Java menyediakan layout manager yang spesifik , dan dapat memilih sesuai kebutuhan antara lain :
- BorderLayout - Flow Layout - GridLayout - CardLayout - GridBagLayout - BoxLayout
- BorderLayout
Fitur ini menyusun komponen-komponen dari sebuah kontainer dalam wilayah yang dinamai North (Utama), South (Selatan), East(Timur), West (Barat), After (setelah), Last(terakhir), Center (tengah), First (pertama), Before (sebelum)
- FlowLayout
Menyusun komponen-kokmponen objek dalam bentuk baris dari kiri ke kanan kemudian dari atas ke bawah menggunakan ukuran asli setiap komponen
- GridLayout
Menempatkan komponen-komponen ke dalam grid / kotak-kotak sel dalam baris dan kolom
GridLayout memperbesar setiap komponen sebesar ruangan / sel yang disediakan.
- CardLayout
Menempatkan komponen-komponen (biasanya panel) yang 1 diatas dan yang lainnya bertumpukan,satu dengan yang lainnya.
Kita hanya bisa melihat 1 dalam satu waktu, dan untuk melihat yang lain menggunakan kontrol untuk memilih objek mana yang ada diatas.
- GridBagLayout
Menempatkan komponen-komponen secara horizontal dan vertical secara dinamis dan tidak harus mempunyai ukuran yang sama.
- BoxLayout
Memungkinkan susunan banyak komponen yang bisa disusun secara vertikal / horizontal. Walaupun disusun secara vertikal dengan banyak komponen, susunan tidak akan berubah walau ada perubahan frame.
Rabu, 06 April 2011
Be a Hacker Not Cracker
Saya berharap ilmu keamanan jaringan di tulisan ini digunakan untuk hal-hal yang baik – jadilah Hacker bukan Cracker. Jangan sampai anda terkena karma karena menggunakan ilmu untuk merusak milik orang lain. Apalagi, pada saat ini kebutuhan akan hacker semakin bertambah di Indonesia dengan semakin banyak dotcommers yang ingin IPO di berbagai bursa saham. Nama baik & nilai sebuah dotcom bisa jatuh bahkan menjadi tidak berharga jika dotcom di bobol. Dalam kondisi ini, para hacker di harapkan bisa menjadi konsultan keamanan bagi para dotcommers tersebut – karena SDM pihak kepolisian & aparat keamanan Indonesia amat sangat lemah & menyedihkan di bidang Teknologi Informasi & Internet. Apa boleh buat cybersquad, cyberpatrol swasta barangkali perlu di budayakan untuk survival dotcommers Indonesia di Internet.
Berbagai teknik keamanan jaringan Internet dapat di peroleh secara mudah di Internet antara lain di http://www.sans.org, http://www.rootshell.com, http://www.linuxfirewall.org/, http://www.linuxdoc.org, http://www.cerias.purdue.edu/coast/firewalls/, http://www.redhat.com/mirrors/LDP/HOWTO/. Sebagian dari teknik ini berupa buku-buku yang jumlah-nya beberapa ratus halaman yang dapat di ambil secara cuma-cuma (gratis). Beberapa Frequently Asked Questions (FAQ) tentang keamanan jaringan bisa diperoleh di http://www.iss.net/vd/mail.html, http://www.v-one.com/documents/fw-faq.htm. Dan bagi para experimenter beberapa script / program yang sudah jadi dapat diperoleh antara lain di http://bastille-linux.sourceforge.net/, http://www.redhat.com/support/docs/tips/firewall/firewallservice.html.
Bagi pembaca yang ingin memperoleh ilmu tentang jaringan dapat di download secara cuma-cuma dari http://pandu.dhs.org, http://www.bogor.net/idkf/, http://louis.idaman.com/idkf. Beberapa buku berbentuk softcopy yang dapat di ambil gratis dapat di ambil dari http://pandu.dhs.org/Buku-Online/. Kita harus berterima kasih terutama kepada team Pandu yang dimotori oleh I Made Wiryana untuk ini. Pada saat ini, saya tidak terlalu tahu adanya tempat diskusi Indonesia yang aktif membahas teknik-teknik hacking ini – tetapi mungkin bisa sebagian di diskusikan di mailing list lanjut seperti kursus-linux@yahoogroups.com & linux-admin@linux.or.id yang di operasikan oleh Kelompok Pengguna Linux Indonesia (KPLI) http://www.kpli.or.id.
Cara paling sederhana untuk melihat kelemahan sistem adalah dengan cara mencari informasi dari berbagai vendor misalnya di http://www.sans.org/newlook/publications/roadmap.htm#3b tentang kelemahan dari sistem yang mereka buat sendiri. Di samping, memonitoring berbagai mailing list di Internet yang berkaitan dengan keamanan jaringan seperti dalam daftar http://www.sans.org/newlook/publications/roadmap.htm#3e.
Dijelaskan oleh Front-line Information Security Team, “Techniques Adopted By 'System Crackers' When Attempting To Break Into Corporate or Sensitive Private Networks,” fist@ns2.co.uk http://www.ns2.co.uk. Seorang Cracker umumnya pria usia 16-25 tahun. Berdasarkan statistik pengguna Internet di Indonesia maka sebetulnya mayoritas pengguna Internet di Indonesia adalah anak-anak muda pada usia ini juga. Memang usia ini adalah usia yang sangat ideal dalam menimba ilmu baru termasuk ilmu Internet, sangat disayangkan jika kita tidak berhasil menginternetkan ke 25000 sekolah Indonesia s/d tahun 2002 – karena tumpuan hari depan bangsa Indonesia berada di tangan anak-anak muda kita ini.
Nah, para cracker muda ini umumnya melakukan cracking untuk meningkatkan kemampuan / menggunakan sumber daya di jaringan untuk kepentingan sendiri. Umumnya para cracker adalah opportunis. Melihat kelemahan sistem dengan mejalankan program scanner. Setelah memperoleh akses root, cracker akan menginstall pintu belakang (backdoor) dan menutup semua kelemahan umum yang ada.
Seperti kita tahu, umumnya berbagai perusahaan / dotcommers akan menggunakan Internet untuk (1) hosting web server mereka, (2) komunikasi e-mail dan (3) memberikan akses web / internet kepada karyawan-nya. Pemisahan jaringan Internet dan IntraNet umumnya dilakukan dengan menggunakan teknik / software Firewall dan Proxy server. Melihat kondisi penggunaan di atas, kelemahan sistem umumnya dapat di tembus misalnya dengan menembus mailserver external / luar yang digunakan untuk memudahkan akses ke mail keluar dari perusahaan. Selain itu, dengan menggunakan agressive-SNMP scanner & program yang memaksa SNMP community string dapat mengubah sebuah router menjadi bridge (jembatan) yang kemudian dapat digunakan untuk batu loncatan untuk masuk ke dalam jaringan internal perusahaan (IntraNet).
Agar cracker terlindungi pada saat melakukan serangan, teknik cloacking (penyamaran) dilakukan dengan cara melompat dari mesin yang sebelumnya telah di compromised (ditaklukan) melalui program telnet atau rsh. Pada mesin perantara yang menggunakan Windows serangan dapat dilakukan dengan melompat dari program Wingate. Selain itu, melompat dapat dilakukan melalui perangkat proxy yang konfigurasinya kurang baik.
Setelah berhasil melompat dan memasuki sistem lain, cracker biasanya melakukan probing terhadap jaringan dan mengumpulkan informasi yang dibutuhkan. Hal ini dilakukan dengan beberapa cara, misalnya (1) menggunakan nslookup untuk menjalankan perintah 'ls
Langkah selanjutnya, cracker akan mengidentifikasi komponen jaringan yang dipercaya oleh system apa saja. Komponen jaringan tersebut biasanya mesin administrator dan server yang biasanya di anggap paling aman di jaringan. Start dengan check akses & eksport NFS ke berbagai direktori yang kritis seperti /usr/bin, /etc dan /home. Eksploitasi mesin melalui kelemahan Common Gateway Interface (CGI), dengan akses ke file /etc/hosts.allow.
Selanjutnya cracker harus mengidentifikasi komponen jaringan yang lemah dan bisa di taklukan. Cracker bisa mengunakan program di Linux seperti ADMhack, mscan, nmap dan banyak scanner kecil lainnya. Program seperti 'ps' & 'netstat' di buat trojan (ingat cerita kuda troya? dalam cerita klasik yunani kuno) untuk menyembunyikan proses scanning. Bagi cracker yang cukup advanced dapat mengunakan aggressive-SNMP scanning untuk men-scan peralatan dengan SNMP.
Setelah cracker berhasil mengidentifikasi komponen jaringan yang lemah dan bisa di taklukan, maka cracker akan menjalan program untuk menaklukan program daemon yang lemah di server. Program daemon adalah program di server yang biasanya berjalan di belakang layar (sebagai daemon / setan).3
Keberhasilan menaklukan program daemon ini akan memungkinkan seorang Cracker untuk memperoleh akses sebagai ‘root’ (administrator tertinggi di server).
Untuk menghilangkan jejak, seorang cracker biasanya melakukan operasi pembersihan 'clean-up‘ operation dengan cara membersihkan berbagai log file. Dan menambahkan program untuk masuk dari pintu belakang 'backdooring'. Mengganti file .rhosts di /usr/bin untuk memudahkan akses ke mesin yang di taklukan melalui rsh & csh.
Selanjutnya seorang cracker dapat menggunakan mesin yang sudah ditaklukan untuk kepentingannya sendiri, misalnya mengambil informasi sensitif yang seharusnya tidak dibacanya; mengcracking mesin lain dengan melompat dari mesin yang di taklukan; memasang sniffer untuk melihat / mencatat berbagai trafik / komunikasi yang lewat; bahkan bisa mematikan sistem / jaringan dengan cara menjalankan perintah ‘rm –rf / &’. Yang terakhir akan sangat fatal akibatnya karena sistem akan hancur sama sekali, terutama jika semua software di letakan di harddisk. Proses re-install seluruh sistem harus di lakukan, akan memusingkan jika hal ini dilakukan di mesin-mesin yang menjalankan misi kritis.
Oleh karena itu semua mesin & router yang menjalankan misi kritis sebaiknya selalu di periksa keamanannya & di patch oleh software yang lebih baru. Backup menjadi penting sekali terutama pada mesin-mesin yang menjalankan misi kritis supaya terselamatkan dari ulah cracker yang men-disable sistem dengan ‘rm –rf / &’.
Bagi kita yang sehari-hari bergelut di Internet biasanya justru akan sangat menghargai keberadaan para hacker (bukan Cracker). Karena berkat para hacker-lah Internet ada dan dapat kita nikmati seperti sekarang ini, bahkan terus di perbaiki untuk menjadi sistem yang lebih baik lagi. Berbagai kelemahan sistem di perbaiki karena kepandaian rekan-rekan hacker yang sering kali mengerjakan perbaikan tsb. secara sukarela karena hobby-nya. Apalagi seringkali hasil hacking-nya di sebarkan secara cuma-cuma di Internet untuk keperluan masyarakat Internet. Sebuah nilai & budaya gotong royong yang mulia justru tumbuh di dunia maya Internet yang biasanya terkesan futuristik dan jauh dari rasa sosial.
Pengembangan para hobbiest hacker ini menjadi penting sekali untuk keberlangsungan / survival dotcommers di wahana Internet Indonesia. Sebagai salah satu bentuk nyatanya, dalam waktu dekat Insya Allah sekitar pertengahan April 2001 akan di adakan hacking competition di Internet untuk membobol sebuah server yang telah di tentukan terlebih dahulu. Hacking competition tersebut di motori oleh anak-anak muda di Kelompok Pengguna Linux Indonesia (KPLI) Semarang yang digerakan oleh anak muda seperti Kresno Aji (masaji@telkom.net), Agus Hartanto (hartx@writeme.com) & Lekso Budi Handoko (handoko@riset.dinus.ac.id). Seperti umumnya anak-anak muda lainnya, mereka umumnya bermodal cekak – bantuan & sponsor tentunya akan sangat bermanfaat dan dinantikan oleh rekan-rekan muda ini.
Mudah-mudahan semua ini akan menambah semangat pembaca, khususnya pembaca muda, untuk bergerak di dunia hacker yang mengasyikan dan menantang. Kalau kata Captain Jean Luc Picard di Film Startrek Next Generation, “To boldly go where no one has gone before”.
Java
A. Konsep OOP (Objek Oriented Program)
Objek Riented Program yang nantinya sering disebut OOP adalah metode pemrograman yang mengikuti konsep-konsep berorientasi objek yaitu :
- Encapsulasi (Pengkapsulan)
Program yang ada didalamnya akan dibungkus (dikapsul) menjadi kelas/ class
Contoh dalam pembuatan objek titik, maka proses pembuatan ini akan disimpan kedalam kelas yaitu titik.java.
- Inheritance (Pewarisan)
Adalah pewarisan class yang sudah ada sebelumnya, sehingga semua yang ada didalam class utama sepenuhnya bisa diturunkan sehingga tidak ada lagi pengulangan pengetikan program
Contoh : public class Garis extends Titik{
Hal ini berarti membuat class Garis yang bisa diturunkan dari class Titik
- Polimorfisme (Keragaman)
Objek mempunyai interface yang identik tetapi mempunyai bentuk yang berlainan
Sebagai contoh adalah dari class nenek moyangnya yaitu Garis, maka bisa dibentuk objek DuaDimensi berupa segi empat dan segi tiga. Nah, interface nenek moyang yaitu berupa garis, tetapi akan dibentuk dua dimensi dengan perilaku yang berbeda yaitu segi empat dan segitiga
B. Sejarah Java
Perusahaan SUN mengadakan proyek yang dipimpin oleh Patrick Naughton dan James Gosling untuk merancang bahasa computer untuk perangkat consumer seperti TV Box. Dikarenakan perangkat tersebut tidak memiliki banyak memori, maka proyek tersebut merancang bahasa yang berukuran kecil serta bebas dari platform yang ada. Dikarenakan mereka berbasis C++, sehingga pengembangan proyek mengadopsi sintak C++ serta merancang berorientasi objek bukan procedural. Proyek besar itu diberi nama kode "Green". Mulanya bahasa yang diciptakan bernama "OAK" yang terinspirasi sebuah pohon diseberang kantornya, tetapi nama "OAK" sudah dipakai bahasa pemrograman sebelumnya, sehingga bahasa pemrograman tersebut diberi nama "JAVA". Kata java diambil dari nama sebuah bijih kopi disaat mereka sedang menikmati secangkir kopi di kedai kopi. Produk pertama dari proyek Green adalah Star 7 (*7) yaitu sebuah kendali jarak jauh yang sangat cerdas.
C. Pengertian Java
Pengertian dari "JAVA" adalah :
- Aplikasi dengan teknologi Java secara umum aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE). Untuk melakukan kompilasi memerlukan tools tambahan yang ditambahkan ke dalam JRE dan dikenal sebagai Java Development Kit (JDK). Jadi di dalam JDK sendiri secara otomatis sudah terdapat platform JRE.
- Bahasa programming Java.
Bahasa inilah yang mungkin dirujuk sebagai "Java" secara umum. Java merupakan bahasa Object Oriented Programming yang bisa diklaim telah diimplementasikan secara penuh . OOP di Java merupakan pengembangan lebih lanjut dari dari bahasa C++. - Sebagai sebuah peralatan pembangun, teknologi java menyediakan banyak tools antara lain Compiler, interpreter, penyusun dokumentasi, paket, kelas dan sabagianya,
Adapun gambaran proses Java bisa dilihat sebagai berikut :
- JRE dan JDK suatu aplikasi/program yang wajib diinstal.
- Aplikasi Java berjalan diatas JRE dan ketersediaan JRE/JDK di multi platform, maka Java banyak dikenal dengan "Write Once Run Everywhere" Java ditulis sekali dan dapat berjalan dimana-mana (semua system operasi)
Jadi setelah konsep-konsep Java kita "luruskan" dengan keterangan di atas, sekarang kita melangkah ke instalasi JDK.
- Adalah sebuah mesin imajiner (maya) yang system kerjanya menyerupai pada mesin yang nyata. JVM ini menyediakan spesifikasi hardware dan platform dimana kompilasi kode java terjadi. Dan hal inilah yang mengakibatkan aplikasi berbasis java bebas dari platform manapun
- Program yang dibuat berbasis java tidak perlu lagi menghapus objek-objek yang sudah tidak dipakai lagi, sehingga akan mempermudah programernya. Sebagai contoh jika programmer memakai aplikasi lain pada saat pemrograman mengalokasikan memori dan setelah selesai lupa menghapus memori tersebut maka akan boros memori, sehingga dengan java hal tersebut tidak akan terjadi
- Code Security terimplementasi pada java melalui Java Runtime Environment (JRE). Pengamanan Java menggunakan 3 lapis untuk melindungi system yaitu :
- Class Loader. Proses ini menyediakan pengamanan dengan memisahkan kelas-kelas yang berasal dari local disk dengan kelas-kelas yang ada di jaringan. Hal ini membatasi aplikasi Trojan karena kelas-kelas yang berasal dari local disk dimuat dahulu.
- Bytecode Verifier. Yaitu membaca bytecode sebelum program dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar java.
- Manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti system file, port jaringan dll
E. Edisi Java
Konstanta & Variabel
KONSTANTA
- Konstanta adalah sebuah nilai yang ditaruh di dalam memori pada alamat tertentu diberi nama dan nilainya tetap.
- Sejak di deklarasikan sampai program selesai ditulis nilai konstanta tidak pernah berubah.
DEKLARASI KONSTANTA
- Setiap konstanta diberi nama yang unik.
- Aturan penamaan konstanta sama persis dengan aturan pemberian nama variabel.
BENTUK UMUM
Const
Identifier = Value ; or
Namakonstanta = Nilai ;
Ex :
Const phi = 3.14;
Var a : real;
Begin
a:=phi * 5 ;
writeln (a); Readln;
End.
VARIABEL
Variabel adalah sebuah tempat di memori yang dipesan oleh pemrogram untuk di tempati data tertentu.Variabel sendiri bisa diibaratkan sebagai sebuah wadah, wadah tersebut memiliki isi yang spesifik. Isi dari variabel dapat diganti, asalkan besarnya tidak melebihi besar wadahnya, dan tipe isinya juga sesuai dengan deskripsi isi wadah tersebut. Besarnya tempat di memori tersebut sesuai dengan tipe data yang dimiliki variabel tersebut.
Misalnya, jika dideklarasikan variabel bertipe karakter 5 huruf maka di memori akan dialokasikan sebuah tempat pada alamat memori tertentu sebanyak 5 byte.
Contoh :
Var
Nama : String[5];
ATURAN PENAMAAN VARIABEL
1. Nama variabel harus berawal dengan karakter (a … z) atau (A … Z)
2. Nama variabel tidak boleh berawal dengan angka (0 sampai 9)
3. Karakter kedua dan seterusnya nama sebuah variabel boleh berupa angka, huruf atau tanda _ (underscore)
4. Nama variabel tidak boleh mengandung tanda baca dan karakter khusus lainnya seperti (,#,$,% dll).
5. Nama variabel tidak boleh menggunakan kata-kata yang sudah menjadi kata tercadang di masing masing bahasa pemrograman (misalnya di pascal membuat variabel dengan nama begin itu tidak diperbolehkan)
UNTUK DI INGAT ..!
Aturan ini selain berlaku untuk penamaan variabel, juga berlaku sebagai aturan untuk penamaan pengenal (identifier) yang lain seperti: nama konstanta, nama prosedur dan nama fungsi.
BENTUK UMUM
Var identifier : tipe_data ; or
namavariabel : tipe_data ;
Ex :
Var Nama : String[25];
IPK : Real ;
Begin
Write('Nama Mahasiswa :) ; Readln(Nama);
Write('IPK Semester I :) ; Readln(IPK);
writeln('Hai',Nama,' IPK Semester I Anda=', IPK:2:2 );
Readln;
End.
SIFAT VARIABEL GLOBAL VS LOKAL
Variabel global adalah variabel yang dikenal di semua bagian program. Sedangkan variabel lokal adalah variabel yang dikenal hanya pada blok program tertentu saja. Variabel Global pada bahasa pascal dan C dideklarasikan di program utama, sedangkan variabel lokal dideklarasikan di prosedur atau fungsi. Skup dari sebuah variabel global adalah berada di seluruh bagian program baik di program utama, di semua prosedur dan semua fungsi yang ada didalam program tersebut.
Variabel lokal adalah variabel yang hanya dikenali di dalam prosedur atau fungsi dimana variabel tersebut dideklarasikan.
Untuk mendeklarasikan variabel global dalam bahasa pascal dan C tidak perlu menyebutkannya secara eksplisit.Pada Clipper harus menyebutkan di depan deklarasi variabel yang akan diberi sifat global ini dengan kata PUBLIC sedangkan untuk variabel lokal diawali dengan kata LOCAL.
SIFAT VARIABEL STATIC VS DINAMIC
Variabel Statis adalah variabel yang isinya tidak akan terpengaruh dengan proses sebelumnya yang mengisikan data ke variabel tersebut.
Misalnya dideklarasikan sebuah variabel statis = 5 maka setiap kali dipanggil variabel tersebut akan menginisialisasi ulang nilainya dengan angka 5.
Sedangkan variabel dinamis akan menampung hasil proses sebelumnya sehingga nilainya selalu berubah setiap kali dipanggil.
STRUKTUR PROGRAM
STRUKTUR PROGRAM PASCAL
PROGRAM nama_program ;
USES nama_unit ;
LABEL value;
CONST identifier = value ;
TYPE identifier = tipe_data ;
VAR identifier : tipe_data ;
PROCEDURE nama_procedure ;
FUNCTION nama_function : tipe_data ;
BEGIN {Statements} ;
END.
BLOK DIAGRAM
Begin
Statement 1;
Statement 2;
…
Statement n;
End.
PENGENAL YANG PERLU DIDEKLARASIKAN
Nama Variabel
Nama tipe data dan struktur tipe data yang didefinisikan sendiri oleh pemrogram (user defined data type)
Deklarasi Konstanta
File - file yang digabungkan (include)
Nama Prosedure
Nama Fungsi
KONSEP PEMROGRAMAN
TINGKATAN BAHASA PEMROGRAMAN
TINGKAT TINGGI (HIGH LEVEL)
> Mirip bahasa manusia (Problem Oriented)
> Contoh : Pascal, Basic, Fortran, Cobol.
TINGKAT MENENGAH (MIDDLE LEVEL)
> Gabungan antara bahasa mesin & manusia
> Contoh : Bahasa C
TINGKAT RENDAH (LOW LEVEL)
> Sederetan instruksi yang lebih dekat
hubungannya dengan mesin (Machine Oriented).
> Contoh : Assembly
MENGAPA PASCAL ?
Pascal merupakan salah satu bahasa pemrograman terstruktur yang paling populer dikalangan programmer terutama di indonesia.
Bahasa ini cocok untuk belajar konsep pemrograman terstruktur karena sifatnya yang ketat.
Deklarasi variabel misalnya di pascal wajib dideklarasikan di awal badan program, sedangkan beberapa bahasa pemrograman yang lain tidak. Oleh karena sifat yang dimiliki inilah penggunaan bahasa pascal sebagai sarana mempelajari konsep pemrograman terstruktur dianggap pilihan terbaik.
SEJARAH PASCAL
Dirancang oleh Profesor Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama Pascal Diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematika dan philosophi terkenal abad 17 dari Perancis. Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman terstruktur (structured programming).
PENERAPAN NYATA PASCAL
Di Eropa di defenisikan oleh ISO (International Standards Organization). Di Amerika oleh kerjasama antara ANSI (American National Standard Institute) dengan IEEE (Institute of Electrical and Electronic Engineers).
VERSI PASCAL
UCSD Pascal (University of California at San Diego Pascal).
MS-Pascal (Microsoft pascal).
Apple pascal.
TURBO Pascal.
> Merupakan versi bahasa pascal yangpaling populer dan banyak digunakan.
> Copyright oleh BORLAND Inc.
> Versi terakhir Turbo Pascal 7.0
> Selanjutnya Mengeluarkan Pascal Versi Windows
(Misalnya TPW 1.5) dan Bentuk Pemrograman Visual
Borland Delphi
STRUKTUR PROGRAM:
PROGRAM
USES
LABEL
CONST
TYPE
VAR
PROCEDURE
FUNCTION
BEGIN
END.
RINCIAN STRUKTUR PROGRAM
PROGRAM nama_program ;
USES nama_unit ;
LABEL value;
CONST
identifier = value ;
TYPE
identifier = tipe_data ;
VAR
identifier : tipe_data ;
RINCIAN STRUKTUR PROGRAM
PROCEDURE nama_procedure
Begin
{Statements} ;
End.
FUNCTION nama_function : tipe_data ;
Begin
{Statements} ;
End.
BEGIN {program utama}
{Statements} ;
END.
ALGORITMA PEMPROGRAMAN
adalah kumpulan instruksi-instruksi / perintah–perintah / langkah-langkah yang berhingga jumlahnya yang digunakan untuk menyelesaikan masalah / persoalan logika dan matematika dengan bantuan komputer.
Tahap - tahap Pemrograman :
1. Fase Problem Solving
2. Fase Implementation
Fase Problem Solving
- Kondisi awal
- Kondisi akhir
- Data lain yang tersedia
- Operator yang tersedia
- Syarat / kendala yang harus dipenuhi
Ciri - ciri algoritma yang baik
Fase Implementation
- Pembuatan Program
- Dokumentasi
PENYAJIAN ALGORITMA
Algoritma dapat disajikan dalam dua bentuk, yaitu : tulisan dan gambar/simbol.
Penyajian algoritma dalam bentuk tulisan biasanya menggunakan
metode English Structure (SE), Structure Indonesia (SI) dan Pseudocode,
Panyajian dalam bentuk gambar biasanya menggunakan metode :
Flowchart, HIPO, dan lain-lain.
FLOWCHART
Tujuan utama dari penggunaan flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi dan jelas dengan menggunakan simbol simbol standart.
Flowchart Program
Merupakan bagan alir yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah
Simbol Flowchart Program

program
(preparation symbol), memberikan niai awal pada suatu
variabel atau counter
(processing symbol), menunjukkan pengolahan aritmatika
dan pemindahan data
(input/output symbol), menunjukkan proses input atau output

(decision symbol), untuk mewakili operasi perbandingan logika
(predefined process symbol), proses yang ditulis sebagai sub program, yaitu
prosedur/ fungsi
(connector symbol), penghubung pada
halaman yang sama
(off page connector symbol), penghubung pada
halaman yang Berbeda
Arah proses
Contoh flowchart untuk menjumlahkan dua buah data:
Menentukan apakah suatu bilangan termasuk bilangan positif, negatif atau nol!

PSEUDOCODE
Pseudo berarti imitasi atau mirip atau menyerupai dan code menunjukkan kode dari program,
pseudocode adalah kode yang mirip dengan instruksi kode program yang sebenarnya.
Pseudocode berbasis pada bahasa pemrograman yang sesungguhnya sepertin COBOL, FORTRAN, Pascal atau Basic sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada Programmer.
Contoh:
Pseudocode menhitung luas dan keliling lingkaran
1. Input (jari)
2. Keliling 2 * phi * jari
3. Luas phi * jari * jari
4. Print (kaliling, luas)
Contoh:
Untuk menukar nilai var A dan B
1. temp = A
2. A = B
3. B = temp
4. Print ( A, B )
Language Structure
Bentuk penyajian algortima ini berdasarkan struktur bahasa yang dipakaidalam sehari-hari tanpa melihat aturan-aturan yang berlaku di algortima.
Contoh : Algortima memasak telor dadar
1. Mulai
2. Siapkan bahan : telor, minyak goring, garam
3. Siapkan alat : kompor, wajan dll
4. Panaskan minyak
5. Goreng telor
6. Kalau telor sudah matang kelangkah 7, kalau belum kelangkah 5
7. Angkat telor
8. Letakan dipiring
Input (a,b,c)
Jml ß a+b+c
Rerata ß Jml / 3
Output (Rerata)
c. Algoritma dengan flowchart

2. Algoritma untuk mencari Luas Lingkaran
c.) Algoritma dengan flowchart

Selasa, 05 April 2011
Definisi Program/Pemrograman
Adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code yang dibuat oleh programmer (pembuat program)
Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan. (Menurut P. Insap Santosa)
Instruksi (statement) yang dimaksud adalah syntax (cara penulisan) sesuai dengan bahasa pemrograman yang digunakan yang mempunyai komponen-komponen : Input, Output, Proses, Percabangan dan Perulangan.
Bahasa Pemrograman Adalah alat untuk membuat program
Contoh: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dll.
Perbedaan: cara memberikan instruksi
Persamaan: bertujuan menghasilkan output yang sama
Paradigma Pemrograman
- Pemrograman Prosedural
Berdasarkan urutan-urutan, sekuensial
Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur merupakan kumpulan instruksi yang dikerjakan secara berurutan.
Harus mengingat prosedur mana yang sudah dipanggil dan apa yang sudah diubah.
- Pemrograman Fungsional
Berdasarkan teori fungsi matematika
Fungsi merupakan dasar utama program.
- Pemrograman Terstruktur
Secara berurutan dan terstrukrtur.
Program dapat dibagai-bagi menjadi prosedur dan fungsi.
Contoh: PASCAL dan C
- Pemrograman Modular
Pemrograman ini membentuk banyak modul.
Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri sendiri
Sebuah program dapat merupakan kumpulan modul-modul.
Contoh: MODULA-2 atau ADA
Paradigma Pemrograman
Pemrograman Berorientasi Obyek
Pemrograman berdasarkan prinsip obyek, dimana obyek memiliki data/variabel/property dan method/event/prosedur yang dapat dimanipulasi
Contoh: C++, Object Pascal, dan Java.
Pemrograman Berorientasi Fungsi
Pemrograman ini berfokus pada suatu fungsi tertentu saja. Sangat tergantung pada tujuan pembuatan bahasa pemrograman ini.
Contoh: SQL (Structured Query Language), HTML, XML dan lain-lain.
Pemrograman Deklaratif
Pemrograman ini mendeskripsikan suatu masalah dengan pernyataan daripada memecahkan masalah dengan implementasi algoritma.
Contoh: PROLOG
Siklus Hidup Perangkat Lunak (Software)
Dilihat dari Struktur Sistem Komputer dan Siklus diatas, Algoritma Pemrograman menempati posisi dibagian implementasi karena bagian implementasi merupakan bagian dimana pemrogram melakukan proses coding (pembuatan program).
Aksi
Kejadian yang terjadi pada waktu yang terbatas dan menghasilkan efek yang memang direncanakan
Dari t0 – t1
Contoh: "aksi Bu Tati mengupas kentang untuk makan malam"
Batasan:
Apa kentang harus dibeli dulu atau sudah ada?
Apakah mengupas berarti sampai kentang terhidang?
Apakah setelah kentang selesai dikupas, harus ada kegiatan lain seperti dibuat sup atau digoreng?
Berarti harus ada kejadian awal = start dan kejadian akhir = finish
Kejadian bu Tati dapat juga diterapkan pada ibu-ibu yang lain, yang juga akan mengupas kentang
Cara (Metode) sebisa mungkin harus bersifat universal.
Senin, 04 April 2011
PROPOSITIONAL LOGIC
then (if (P and Q)
Notasi | Notasi Konvensional |
not | ~ |
and | ∧ |
or | V |
if-then | Æ |
if-and-only-if | ↔ |
if-then-else | tidak ada |
P | ~P |
True | False |
False | True |
P | Q | P∧Q |
True | True | True |
True | False | False |
False | True | False |
False | False | False |
P | Q | P∨Q |
True | True | True |
True | False | True |
False | True | True |
False | False | False |
(PVQ)V R | = | PV(QVR) |
(PΛQ) ΛR | = | PΛ(QΛR) |
PV(QΛR) | = | (PVQ) Λ (PVR) |
PΛ(QVR) | = | (PΛQ) V (PΛR) |
Pv False | = | P |
PΛTrue | = | P |
Pv True | = | True |
PΛ False | = | False |
Pv ~P | = | True |
PΛ ~ P | = | False |
~(~ p) | = | P |
P | Q | P Æ Q |
True | True | True |
True | False | False |
False | True | True |
False | False | True |