Tampilkan postingan dengan label Pemrograman. Tampilkan semua postingan
Tampilkan postingan dengan label Pemrograman. Tampilkan semua postingan

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

pertama-tama tuh mesti tau siapa sih WEB master itu??? web master adalah orang yg bertanggung jawab terhadap kelangsungan suatu website (admin lah contohnya).
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.... Wink

- 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... Twisted Evil lho.. ini ngomongin pemrograman apa bikin lagu..??? back to permasalahan... intinya buatlah code seminim mungkin dengan fungsionalitas sebesar mungkin... (biar g ngabisin kuota di tempat hostingan tongue)
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


 

  1. 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)

  2. FlowLayout

    Menyusun komponen-kokmponen objek dalam bentuk baris dari kiri ke kanan kemudian dari atas ke bawah menggunakan ukuran asli setiap komponen

  3. GridLayout

    Menempatkan komponen-komponen ke dalam grid / kotak-kotak sel dalam baris dan kolom

    GridLayout memperbesar setiap komponen sebesar ruangan / sel yang disediakan.

  4. 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.

  5. GridBagLayout

    Menempatkan komponen-komponen secara horizontal dan vertical secara dinamis dan tidak harus mempunyai ukuran yang sama.

  6. 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

Hacker dengan keahliannya dapat melihat & memperbaiki kelemahan perangkat lunak di komputer; biasanya kemudian di publikasikan secara terbuka di Internet agar sistem menjadi lebih baik. Sialnya, segelintir manusia berhati jahat menggunakan informasi tersebut untuk kejahatan – mereka biasanya disebut cracker. Pada dasarnya dunia hacker & cracker tidak berbeda dengan dunia seni, disini kita berbicara seni keamanan jaringan Internet.

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 ' , (2) melihat file HTML di webserver anda untuk mengidentifikasi mesin lainnya, (3) melihat berbagai dokumen di FTP server, (4) menghubungkan diri ke mail server dan menggunakan perintah 'expn ', dan (5) mem-finger user di mesin-mesin eksternal lainnya.

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

PENDAHULUAN

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 :

  1. 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.

  2. 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++.

  3. 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 :


D. Fitur Java

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

PENGERTIAN ALGORITMA

    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

Hal-hal yang harus diketahui dalam analisis masalah :
  • Kondisi awal

  • Kondisi akhir

  • Data lain yang tersedia

  • Operator yang tersedia

  • Syarat / kendala yang harus dipenuhi



Ciri - ciri algoritma yang baik

Precise (Akurat)
Jumlah langkah/step berhingga dan tertentu
Efektif
Harus terminate
Output yang dihasilkan tepat




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

(terminal symbol), menunjukkan awal dan akhir dari

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

    9. Selesai 




 Contoh Kasus
1.     Algoritma untuk mencari rata-rata dari 3 bilangan yang diinputkan
a. Algoritma dengan struktur bahasa Indonesia
Baca bilangan a, b, dan c
Jumlahkan ketiga bilangan tersebut
Bagi jumlahnya dengan 3
Tulis hasilnya


b. Algoritma dengan pseudocode

Input (a,b,c)

Jml ß a+b+c

Rerata ß Jml / 3

Output (Rerata)



c. Algoritma dengan flowchart

 

 





2. Algoritma untuk mencari Luas Lingkaran

a.) Algoritma dengan struktur bahasa Indonesia
Beri nilai phi dengan 3.14
Masukkan jari-jari lingkaran
Kalikan phi dengan kuadrat dari jari-jarinya
Tulis hasilnya


b.) Algoritma dengan pseudocode
phi ß 3.14
Input (R)
L ß phi * R^2
Output (L)


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

  1. 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.

  1. Pemrograman Fungsional

Berdasarkan teori fungsi matematika

Fungsi merupakan dasar utama program.

  1. Pemrograman Terstruktur

Secara berurutan dan terstrukrtur.

Program dapat dibagai-bagi menjadi prosedur dan fungsi.

Contoh: PASCAL dan C

  1. 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

Beberapa pernyataan (statement) dapat langsung diterima
kebenarannya tanpa harus tahu kebenaran pembentuknya
Contoh:
"Ada kehidupan di Bulan atau tidak ada kehidupan di Bulan"
"Indonesia mempunyai jumlah penduduk yang lebih besar dari Cina
atau Indonesia mempunyai jumlah penduduk yang lebih kecil atau sama
dengan Cina"
Kalimat tersebut merupakan contoh dari kalimat abstrak
P or (not P)
Kalimat abstrak adalah "valid" jika bernilai benar tanpa
mempedulikan kebenaran atau kesalahan dari proposisi- proposisi penyusunnya. Contoh:
Not (P and (not P)) or Q
Maka, kita bisa simpulkan kalimat berikut adalah valid:
Not ( [x<0] and (not [x<0] ) ) or (y>0)




Pasangan kalimat abstrak berikut "ekuivalen"
If P then Q    dan    if (not Q) then (not P)
Contoh kalimatnya:
"Jika seorang mahasiswa mengikuti ujian akhir suatu mata kuliah, maka mahasiswa tersebut akan mendapat nilai untuk mata kuliah tersebut"
dan
"Jika seorang mahasiswa tidak mendapat nilai untuk mata kuliah, maka mahasiswa tersebut tidak mengikuti ujian akhir untuk mata kuliah tersebut"
1.2 Bahasa ~Language
Proposisi ~Propositions


Logika proposisional terdiri dari kalimat-kalimat (sentences)
Kalimat dalam logika proposisional dibentuk dari simbol-simbol yang disebut proposisi


Simbol yang digunakan:
•    Simbol-simbol kebenaran (truth symbols)
true dan false
•    Simbol-simbol proposisional (propositional symbol)
P, Q, R, P1, Q1, R1, ... (huruf-huruf P, Q, R, atau S )


Diwakili oleh kalimat deklaratif, bukan kalimat terbuka
•    Kalimat Deklaratif Æ kalimat yang dapat ditentukan nilai kebenarannya, yaitu true atau false


Kalimat ~Sentences
Kalimat dalam logika proposisional dari proposisi dengan menggunakan "propositional conectives", yaitu:
not, and, or, if-then, if-and-only-if, if-then-else
Aturan pembentukan kalimat:
•    Setiap proposisi adalah kalimat
•    Apabila P kalimat, maka demikian juga negasinya ( not P )
•    Apabila P dan Q kalimat, maka demikian juga kunjungsi
(conjunction)-nya, yaitu (P and Q )
•    Apabila P dan Q kalimat, maka demikian juga disjungsi
(disjunction)-nya, yaitu (P or Q )
•    Apabila P dan Q kalimat, maka demikian juga implikasi
(implication)-nya, yaitu (if P then Q ), selanjutnya P disebut
"antecedent" dan Q disebut "consequent" dari (if P then Q) Kalimat (if Q then P )disebut "converse" dari kalimat
(if P then Q )
•    Apabila P dan Q kalimat, maka demikian juga ekuivalensi
(equivalence)-nya, yaitu (P if and only if Q )
•    Apabila P, Q dan R kalimat, maka demikian juga kondisional
(conditional)-nya, yaitu (if P then Q else R )
Notasi ~Notation
Pasangan kurung dalam kalimat bisa dihilangkan apabila tidak menunjukan struktur dari kalimat, contoh
(not (P and (not Q)))




dapat ditulis:
not (P and (not Q)



Digunakan pasangan kurung siku, [ dan ], atau kurung kurawal
{ dan } dari pada beberapa pasangan kurung ( dan ), Contoh:
(if ((P or Q) and (if Q then R)) then (if (P and Q) then (not R)))
bisa ditulis:






P or Q
if    And
if Q then R


then (if (P and Q)

then not R)








Notasi konvensional:










Notasi
Notasi Konvensional
not
~
and
or
V
if-then
Æ
if-and-only-if
if-then-else
tidak ada




Contoh penulisan dengan notasi konvensional dari kalimat
berikut:




(if ((P or Q) and (if Q then R)) then (if (P and Q) then (not R)))




adalah:


((P V Q) (Q Æ R)) (P Q) Æ (~ R)))








Latihan:
1. Berikan contoh-contoh kalimat valid
2. Berikan contoh kalimat deklaratif dan kalimat terbuka
3. Ubahlah kalimat berikut dengan simbol konvensional a. not (P and (not P)) or Q
b. if P then Q) or (if Q then P)
c. (not Q) or not[if P then (notQ) and P}
d. (if P then (not Q) if and only if not (P and Q)
e. [if (P or Q) then R] if and only if [(if P then R) and
(if Q then R)]
f.    [P if and only if (Q if and only if R)] if and only if
[(P if and only if Q) if and only if R]
g. [if P then Q and R else (not Q) and S] if and only if [if Q then P and R else (not P) and S]








1.3 Arti suatu Kalimat~Meaning of Sentence




Interpretasi~Interpretation


Adalah pemberian nilai kebenaran (true atau false) pada setiap symbol proposisi dari suatu kalimat logika.
Contoh:
P Å True
Q Å False






Aturan Semantik~Semantic Rule


Adalah suatu aturan yang digunakan untuk menentukan "truth value" dari suatu sentence, yaitu :




1.    Negation Rule (Aturan NOT)




P
~P
True
False
False
True




2.    Conjunction Rule (Aturan AND)






P
Q
PQ
True
True
True
True
False
False
False
True
False
False
False
False




3.    Disjunction Rule (Aturan OR)






P
Q
PQ
True
True
True
True
False
True
False
True
True
False
False
False








Sifat-sifat aljabar logika untuk konjungsi dan disjungsi
a.    Hukum Idempoten
PP    = P PΛP     = P




b.    Hukum Komutatif PvQ    = QvP PΛQ    = QΛP


c.    Hukum Assosiatif





(PVQ)V R
=
PV(QVR)
(PΛQ) ΛR
=
PΛ(QΛR)


d.    Hukum Distributif





PV(QΛR)
=
(PVQ) Λ (PVR)
PΛ(QVR)
=
(PΛQ) V (PΛR)


e.    Hukum Identitas







Pv False
=
P
PΛTrue
=
P
Pv True
=
True
PΛ False
=
False


f.    Hukum Komplemen






Pv ~P
=
True
PΛ ~ P
=
False
~(~ p)
=
P


g.    Hukum De Morgan
Negasi dari konjungsi dan disjungsi:
~(PVQ) = ~P Λ ~Q
~(PΛQ) = ~P V ~Q


4.    Implication Rule (Aturan IF-THEN)
Implikasi    bernilai    "salah"    bila    anteseden    benar    dan konsekuen salah.










P
Q
P Æ Q
True
True
True
True
False
False
False
True
True
False
False
True










Jika (PÆQ) adalah implikasi, maka :
(QÆP) adalah konvers
(~P Æ ~Q) adalah invers
(~Q Æ ~P) adalah kontraposisi
Jika (PÆQ) bernilai benar, maka belum tentu :
(Q Æ P), (~P Æ ~Q) ,(~Q Æ ~P) bernilai benar.




5.    Equivalence Rule (Aturan IF -AND ONLY IF -)
Biimplikasi    bernilai    "benar",    jika    penyusun    proposisi bernilai sama




















6.    Conditional Rule (Aturan IF–THEN-ELSE)
Jika p bernilai benar maka q berlaku, Jika p bernilai salah maka r berlaku








1.4 Tabel Kebenaran ~Truth Table




Adalah metode untuk menentukan nilai kebenaran dari suatu
kalimat logika yang disajikan dengan baris dan kolom dengan menginterpretasi    setiap    simbol    proposisi    dan    menggunakan
aturan semantik.
Contoh:
Diberikan kalimat logika, sebagai berikut:




(P and (if R then S)) if only if ((if R then S) and P)




Tentukan nilai kebenarannya (truth value) dari kalimat tersebut di atas.










1.5 Sifat-sifat Kalimat Logika
~Properties of Sentence




Valid
Suatu    sentence    f    disebut    valid,    jika    untuk    setiap
interpretation I for f,    maka f true
Contoh:
a.    (F and G) if and only if (G and F)
b.    F or not F
c.    (P and (if R then S)) if only if ((if R then S) and P)
d.    (P or Q) or not (P or Q)
e.    (if P then not Q) if and only if not (P and Q)




Satisfiable
Suatu    sentence    f    disebut    satisfiable,    jika    untuk    suatu
interpretation I for f,    maka f true
Contoh:
a.    If (if P then Q) then Q
b.    (if P then Q) or (R and S)
c.    (if P then Q) or R








Kontradiksi
Suatu sentence f disebut kontradiksi, jika untuk setiap
interpretation I for f, maka f false
Contoh:
a. P and not P
b. ((P or Q) and not R) if and only if ((if P then R) and (if
Q then R)