Minggu, 03 November 2013

Kenapa Kita Belajar Pascal ?

Tentu pada dewasa ini sudah banyak bahasa pemrograman seperti C++, Java, yang jauh lebih mudah dalam pembuatan aplikasi karena kemampuannya yang hebat yaitu Pemrograman Berorientasi Objek.

Yang menjadi masalah adalah kenapa hampir banyak sekolah yang memiliki pelajaran komputer mengajarkan bahasa pemrograman pascal? kenapa mereka tidak mengajarkan bahasa seperti C++, bukankah C++ itu merupakan bahasa pemrograman yang lebih keren? atau lebih cepat? atau lebih banyak digunakan pada masa kini?

Jangankan itu, untuk mengikuti Olimpiade Sains Nasional pada bidang komputer dibutuhkan skill atau kemampuan untuk menguasai Pascal.

Belum lagi masalah jaman, seperti kita ketahui kalau pascal merupakan bahasa pemrograman jadul yang popular pada jaman 1980-an, wah man.. kita sudah pada abad 21 man..

Berikut adalah beberapa alasan kenapa bahasa pemrograman pascal masih  tetap Axis hingga jaman sekarang

1. Bahasa Pemrograman Pascal mudah untuk dipahami

Bahasa Pascal merupakan bahasa yang cukup mudah di pahami, karena menggunakan bahasa manusia (high Level Language) atau bahasa tingkat tinggi. Sehingga lebih mudah untuk dipelajari bagi orang-orang yang mau masuk ke dalam dunia pemrograman. Selain itu struktur yang ada pada pascal jauh lebih rapi dibandingkan bahasa pemrograman lainnya seperti C++ dan juga Java.

2. Bahasa Pascal mengajak kita untuk berpikir

Pada kecanggihan bahasa pemrograman sekarang. Bahwa kita dapat membuat sebuah program dengan mudah, saya ambil contoh simple untuk mengurutkan (sorting) bilangan, pada bahasa pemrograman C++ anda tinggal menggunakan fungsi sort(), sedangkan pada pascal ? anda harus menggunakan logika anda untuk mengurutkan bilangan tersebut.

3. Bahasa Pascal mempermudah para newbie yang ingin memasuki dunia pemrograman

Untuk para newbie atau pendatang baru yang ingin memasuki dunia pemrograman akan jauh lebih mudah apabila dia sudah menguasai bahasa pemrograman pascal kenapa? karena pascal menggunakan tipe data standar, yang juga digunakan pada bahasa pemrograman lainnya, selain itu bahasa pemrograman pascal juga memiliki fungsi perulangan dan percabangan yang mirip dengan bahasa pemrograman lainnya, jadi untuk bermigrasi bahasa pemrograman, dan jika anda sudah menguasai bahasa pascal sebelumnya, umumnya anda akan jauh lebih cepat dibandingkan orang yang belum menguasai bahasa pascal sebelumnya.

Ini menurut saya, bagaimana dengan anda?

Sabtu, 02 November 2013

Perbedaan antara Algoritma, Pseudocode dan Bahasa Pemrograman



Jika anda orang yang masih baru dalam dunia pemrograman atau anda adalah seseorang yang bisa saya sebut otodidak. Mungkin anda akan bingung dengan beberapa istilah yang umum digunakan. Kebanyakan orang tentu mengerti apa itu bahasa pemrograman, namun berbeda dengan "algoritma" dan "pseudocode" masih banyak orang yang tidak mengerti tujuan dari kedua istilah tersebut.

Algoritma, Pseudocode, dan Bahasa pemrograman adalah semua alar yang digunakan oleh programmer dalam berbagai tahap proyek. Jika anda dapat menggunakannya dengan tepat, maka anda dapat mengembangkan program lebih cepat, dan program - program tersebut akan dapat anda buat lebih mudah.

Algoritma


Algoritma hanyalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Jika Anda memberikan petunjuk kepada teman anda tentang cara untuk sampai ke rumah Anda - dimulai pada lokasi awal dan berakhir di lokasi yang Anda maksudkan- Anda bisa mengatakan bahwa itu adalah algoritma untuk sampai ke rumah Anda. Resep untuk memanggang kue atau instruksi untuk membangun tabel jugalah sebuah algoritma. Namun, pemrogram komputer menggunakan istilah khusus untuk menggambarkan langkah-langkah program komputer yang dirancang dengan baik untuk melakukan tujuan yang telah ditetapkan.

Bahasa Pemrograman

Yang menjadi masalah adalah komputer tentu tidak bisa mengerti bahasa manusia, sedangkan ada algoritma yang harus kita jelaskan kepada komputer agar komputer dapat melaksanakan tugasnya, dikarenakan komputer hanya mengenal angka 0 dan 1 sedangkan manusia tidak mungkin untuk mengetikkan angka 0 dan 1 tanpa melakukan kesalahan sedikitpun, maka diciptakanlah bahasa pemrograman yang bisa dikatakan sebuah jembatan penghubung antara bahasa manusia dengan bahasa komputer.

Pseudocode

Ketika seorang pemrogram atau programmer akan mendesain sebuah program, cukup sulit baginya untuk mengimplementasikan algoritma apabila langsung menggunakan bahasa pemrograman oleh karena itu munculah pseudocode, fungsinya adalah agar programmer lebih fokus dalam logika permasalahan yang ada dan tidak membuat programmer itu menjadi "ribet" karena aturan dari bahasa pemrograman itu sendiri.


Keuntungan dari ketiga hal tersebut

Algoritma dapat ditulis dalam bahasa manusia normal, sehingga memungkinkan para ahli yang bukan programer untuk memberikan masukan ke dalam program yang sedang dalam tahap pengembangan.

Pseudocode memungkinkan programmer yang mengkhususkan diri dalam bahasa pemrograman untuk menciptakan kode yang paling efisien, sehingga dapat menciptakan program lebih cepat.

Dan bahasa pemrograman sendiri memberikan fleksibilitas, karena beberapa bahasa yang lebih cocok untuk pekerjaan tertentu. Dengan menggunakan ketiga alat tersebut, program komputer yang lebih baik dapat dikembangkan lebih cepat dan lebih ekonomis.




Senin, 28 Oktober 2013

Tipe Data Boolean


Apa itu tipe data boolean?

Boolean atau yang biasa dikenal tipe data Logika, merupakan sebuah tipe data yang hanya memiliki 2 nilai (true dan false).

Operasi yang digunakan pada tipe boolean :

Apa anda masih ingat pelajaran kelas 1 SMA? jika tidak akan saya ingatkan

lihat tabel yang ada dibawah ini :

A Not A
True False
False True

A B A and B A or B A xor B
True True TrueTrue False
True False False True True
False TrueFalse True True
False False False False False

untuk tabel pertama, hasilnya pasti selalu bernilai berlawanan

kalau tabel yang kedua, ingat saja kalau dia 
  • and : maka nilai dari A dan B keduanya harus benar
  • or : maka minimal salah satu dari nilai A dan B harus benar
  • xor : akan bernilai benar kalau A dan B berlawanan nilainya.
Contoh Soal :
X = True; Y= False; Z = True

(X or Y) and Z = (True or False) and True
                           = True and True
                           = True

X or (Y and Z) = True or (False and True)
                           = True or False
                           = True

not (X or Z) = not (True or True)
                       = not True
                       = False.

Minggu, 13 Oktober 2013

Apa itu Tipe Data?

Dalam penulisan bahasa pemrograman selalu ada yang dinamakan tipe data. Sebenarnya apa sih itu tipe data? Akan saya bahas di artikel ini.

Ketika program komputer ingin menyimpan data dalam sebuah variabel. Maka setiap variabel harus diklasifikasikan ke dalam sebuah tipe data, seperti integer, float, char, strings, array, dan juga jenis data yang lebih spesifik, seperti dates, boolean, dan format varchar (variable character).

contoh =

a = integer, itu memberi arti bahwa a adalah variabel yang hanya akan dapat diisi dengan bilangan bulat.
apa = float, itu memberi arti bahwa "apa" adalah variabel yang hanya akan dapat diisi dengan bilangan desimal.

Biasanya nama-nama seperti integer, float dan sebagainya. Itu bergantung pada bahasa pemrograman itu sendiri. Selain itu Bahasa Pemrograman juga akan menentukan rentang dari sebuah tipe data.

Contohnya tipe data yang berkarakteristik bilangan bulat.


format :
nama tipe data (rentangnya)


Tipe data integer (bilangan bulat) pada bahasa pemrograman pascal

byte (0...255)
shortint (-128 .. 127)
word (0 .. 65535)
integer (-32768 .. 32767 )
longint (-2147483648 ... 2147483647)

Tipe data integer pada bahasa pemrograman C

unsigned char (0...255)
char (-128 .. 127)
unsigned int  (0 .. 65535)
int, short int (-32768 .. 32767 )
long int (-2147483648 ... 2147483647)

terlihat perbedaannya kan?




Sabtu, 12 Oktober 2013

Kenapa Programming itu Menyenangkan?

Pertanyaan dasar dalam artikel ini adalah kenapa programming itu menyenangkan? Mungkin bagi beberapa orang yang berprofesi programmer mengatakan kalau programming itu sulit, terlalu banyak membuang waktu, gaji yang tidak setimpal dengan apa yang kita kerjakan, hanya membuat stress dan lain-lain. Namun berbeda dengan saya, ya memang saya bukanlah seorang programmer saya masihlah seorang pelajar, namun saya merasa kalau programming benar-benar menyenangkan mengapa? berikut adalah penjelasan saya.

1. Kesenangan ketika melihat program berjalan dengan baik
dalam membuat sebuah program memang tidaklah mudah, namun ada sebuah kepuasan tersendiri ketika sesuatu yang kita kerjakan dengan susah payah berjalan dengan sangat baik.

2. Kepuasan ketika program yang dibuat bermanfaat.
ketika anda membangun sebuah program pasti ada tujuannya bukan? buat saya sebagai pelajar adalah pengkoreksi pekerjaan rumah saya yang salah. bukankah ada kepuasan tersendiri dibalik semua itu?

3. Kesenangan ketika menyelesaikan tantangan
Ketika anda diberikan problem set, ada kesenangan ketika sebuah tantangan yang sulit bisa anda selesaikan.

4. Jaringan pertemanan
Anda bisa mendapatkan dan membicarakan hal programming bersama teman, tidak hanya itu mungkin teman anda bisa membantu anda atau anda membantu teman anda, bukankah ini juga hal yang menyenangkan?

5. Kesenangan ketika Anda bisa membantu orang lain
Ketika kita sudah bisa membantu orang lain dengan program kita, bukankah ini juga sesuatu yang membanggakan?

6. Kesenangan ketika bisa menyelesaikan error.
Mungkin dalam perjalanannya kita mengalami stress tingkat tinggi, namun betapa leganya ketika itu terselesaika

Pada akhirnya menurut saya programmer adalah seorang penyair, dia mampu membangun sebuah istana lengkap dengan taman beserta udaranya, dan juga suaranya. Hanya berbekal mantra yang ia tuliskan di sebuah media yang bernama papan ketik (keyboard), yang membuat seakan akan Programmer adalah Tuhan atas komputer.

Selasa, 08 Oktober 2013

Apa Perbedaan Antara Variabel dan Konstanta?

Ada yang masih ingat pelajaran kelas 7 SMP? Mengenai konsep aljabar? ok kali ini saya akan membahas antara variabel dan juga konstanta,

Apa itu Variabel?

Variabel merupakan sebuah huruf atau abjad yang digunakan untuk mewakili sebuah nilai, dan nilai ini tidaklah tetap.

Apa itu Konstanta?

Konstanta merupakan sebuah huruf atau abjad yang digunakan untuk mewakili sebuah nilai, dan nilai ini tetap!

saya akan mengambil contoh :


c = 1; berarti c mewakili angka 1,
c = 4; berarti c mewakili angka 4
v = 12 berarti v mewakili angka 12
π(pi) = 3.14 berarti π mewakili angka 3.14

sekarang coba bedakan yang mana variabel dan konstanta?
c dan v merupakan sebuah variabel
dan π merupakan sebuah konstanta, kenapa π konstanta karena nilai dia tetap, karena nilai π dalam matematika tidak mungkin mendadak berubah menjadi 3.16. namun v (velocity) / kecepatan, dalam pelajaran fisika pasti nilainya selalu berubah ubah...

Sekian penjelasan saya mengenai perbedaan antara variabel dan konstanta



Selasa, 01 Oktober 2013

Apa itu Competitive Programming?

Istilah Competitive Programming mungkin jarang anda dengar, namun kali ini saya akan memberitahunya kepada anda apa itu Competitive Programming,

Competitive programming adalah sebuah kompetisi dimana peserta diberikan sebuah soal (problem set) yang terdiri dari input, output, dan juga permasalahannya. Nah peserta diharapkan dapat menyelesaikan permasalahan itu dengan menggunakan bahasa pemrograman.

Setelah anda membuat codenya anda harus upload, bisa saja anda upload ke Online Judge atau ke tempat yang disediakan oleh panitia yang mengadakan kompetisi.

Nanti Grader akan memasukkan input, nah apabila outputnya sesuai, maka jawaban anda benar (Accepted). Grader adalah sistem yang akan menilai apakah program yang anda buat itu benar atau tidak. 

Namun biasanya pada soal juga terdapat time limit dan juga memory limit, time limit disini berarti batas waktu program anda berjalan kalau lebih maka disebut Time Limit Exceded (TLE), selain itu ada juga yang disebut Memory Limit yaitu batas memory yang anda gunakan pada program anda, nah jika lebih maka disebut Memory Limit Exceded (MLE).

Masih ada lagi, pada soal umumnya juga diberi tahu batas inputnya, jadi pada jangkauan input sekian program anda harus bisa mengerjakannya. 

Jadi, dalam Competitive Programming anda harus membuat sebuah program dimana program itu harus bisa menyelesaikan masalah yang disediakan dengan se-efektif dan se-efisien mungkin.

Ada beberapa istilah yang sering akan anda jumpai dalam Competitive Programming yaitu :

1. Compile Error : ini memiliki arti bahwa ada kesalahan dalam bahasa pemrograman sehingga compiler tidak bisa berjalan.  jadi check lagi code anda.
2. Wrong Answer : ini memiliki arti bahwa program anda berjalan, tapi salah dalam menyelesaikan problem setnya.
3. Run Time Error : Terjadi error pada saat program yang dikumpulkan diberikan input dan dijalankan. Errortersebut mungkin saja disebabkan karena akses elemen di luar batas array, melakukanpembagian terhadap nol dalam perhitungan, terjadi stack overflow.

Sekedar Info kalau bahasa pemrograman yang sering digunakan dalam competitive programming itu adalah C++, Pascal, dan Java.

Saya juga akan menjelaskan apa itu Online Judge, Online Judge(OJ) adalah sebuah site yang berisi problem set, dimana para user yang terdaftar bisa mengerjakan problem set itu.

Contoh Alamat website Online Judge :
http://urionlinejudge.com.br 

untuk tahu lebih lanjutnya silahkan cari di Google hehehehe..

Contoh Kompetisi bergengsi :
  • Google Code Jam
  • Facebook Hacker Cup
  • Top Coder
  • IOI (International Olympiad in Informatics) untuk SMA
  • ACM ICPC
Ada yang ingin bertanya? silahkan berkomentar... 


Senin, 30 September 2013

Soal Olimpiade Nasional TIK / Informatika / Komputer

Berikut adalah soal-soal OSN yang mungkin anda butuhkan: (link Mediafire)

Olimpiade Sains Nasional Tingkat Kabupaten (OSK) :
OSK Tahun 2006
OSK Tahun 2007
OSK Tahun 2008
OSK Tahun 2009
OSK Tahun 2010
OSK Tahun 2011
OSK Tahun 2012
OSK Tahun 2013

Olimpiade Sains Nasional Tingkat Provinsi (OSP) :
OSP Tahun 2005
OSP Tahun 2006
OSP Tahun 2011
OSP Tahun 2012

Semoga ini bisa membantu kalian!!


Selasa, 24 September 2013

Cara Menerjemahkan Teks Algoritma ke dalam Bahasa Pemrograman

Seperti yang saya bahas dalam artikel sebelumnya mengenai penggunaan teks algoritma, maka saya akan melanjutkan cerita yang kemarin.

Teman saya sudah mendapatkan teks algoritma swap dari saya, sekarang dia ingin mentranslasi teks algoritma swap ke dalam bahasa pemrograman Pascal nah bigini caranya


Algoritma Swap
{ Algoritma untuk menukarkan nilai dari dua variabel. Algoritma akan menerima 2 buah input, menukarkan nilainya, lalu mencetak hasil dari penukaran tersebut. }
Deklarasi
   {variabel}
   a,b,c : integer
   {saya menggunakan 3 variabel yang bertipe bilangan bulat (integer)}
Deskripsi :
   read(a,b) {meminta input }
   c ← a {proses}
   a ← b
   b ← c
   write(a,b) {menuliskan output }


^^ adalah teks algoritma yang saya berikan,

 Ini adalah Program Pascal Yang sudah di translasi :
Program SWAP;
{ Algoritma untuk menukarkan nilai dari dua variabel. Algoritma akan menerima 2 buah input, menukarkan nilainya, lalu mencetak hasil dari penukaran tersebut. }

{* DEKLARASI*}
var
   a,b,c : integer;

{* DESKRIPSI *}
begin
   readln(a,b); {meminta input}
   c := a;
   a := b;
   b := c;
   writeln(a,b); {menuliskan output}
end.
 Nah begitu caranya mengubah ke Pascal, sekarang ternyata saya juga membutuhkannya karena dasar pemrograman saya adalah C++ maka saya akan menuliskannya dalam bahasa C++.

/* Algoritma Swap */
/* Algoritma untuk menukarkan nilai dari dua variabel. Algoritma akan menerima 2 buah input, menukarkan nilainya, lalu mencetak hasil dari penukaran tersebut. */

#include <iostream>

using namespace std;

int main()
{
/* DEKLARASI */
int a,b,c;

/* DESKRIPSI */
cin >> a;
cin >> b;
c = a;
a = b;
b = c;

cout << a ;
cout << b;
}

Begitulah salah satu cara menerjemahkan Teks algoritma ke dalam bahasa pemrograman,  mungkin kalian cukup bingung dengan tanda ← , Tenang saja nanti akan diajarkan kok, ini saya hanya memberikan gambaran bagaimana cara menerjemahkan teks algoritma. 

Senin, 23 September 2013

Aturan Penulisan Teks Algoritma / Notasi Algoritma

Apa itu Notasi Algoritma?


Seperti yang kita ketahui kalau bahasa pemrograman di dunia ini sangat banyak, nah karena cukup sulit untuk menguasai semuanya, dan juga orang-orang belum tentu menguasai bahasa pemrograman yang sama dengan kita, itulah sebabnya notasi algoritma ini ada, kalau bisa dibilang notasi algoritma ini merupakan sebuah bahasa pemersatu dari berbagai bahasa pemrograman.

Contoh ketika saya menguasai C++ dan mengetahui algoritma swap (algoritma untuk menukarkan dua buah nilai), dan saya ingin menjelaskan algoritma swap kepada teman saya yang menguasai pascal namun tidak mengetahui bahasa C++ kan tidak mungkin saya memberikan contoh kode dengan bahasa C++. Nah menggunakan notasi algoritma adalah salah satu alternatif untuk menjelaskannya.

Aturan Penulisan


Teks algoritma / notasi algoritma disusun oleh tiga bagian (blok) : Bagian kepala (header) algoritma, bagian deklarasi, dan bagian deskripsi algoritma. Nah, disetiap bagian dari setiap blok terdapat komentar yang digunakan untuk memperjelas algoritma. Komentar adalah kalimat atau pernyataan yang berada di kurung kurawal  

contoh :
Algoritma Nama_Algoritma
{ Menuliskan algoritma yang akan anda buat, atau menamai algoritma yang anda buat}
Deklarasi
{ Semua konstanta, variabel, prosedur, fungsi akan anda deklarasikan disini }
Deskripsi
{ semua langkah algoritma di tuliskan disini }

Kita mulai pembahasannya

Kepala Algoritma


Kepala algoritma adalah blok yang terdiri atas nama algoritma.. Nah dibawahnya bisa kalian isi dengan penjelasan tentang algoritma tersebut.

Contoh kepala algoritma :
Algoritma Swap
{ Algoritma untuk menukarkan nilai dari dua variabel. Algoritma akan menerima 2 buah input, menukarkan nilainya, lalu mencetak hasil dari penukaran tersebut. }

Deklarasi


Deklarasi ini akan berisi variabel, konstanta, nama prosedur dan nama fungsi.

Deklarasi :
{variabel}
a,b,c : integer
 {saya menggunakan 3 variabel yang bertipe bilangan bulat (integer)}

Deskripsi

disini akan berisi langkah-langkah penyelesaian masalah,

contoh Deskripsi :

Deksripsi:
read(a,b) {meminta input }
c ← a {proses}
a ← b
b ← c
 write(a,b) {menuliskan output }
nah apabila dijadikan satu akan menjadi sebuah algoritma swap yang sempurna :

Algoritma Swap
{ Algoritma untuk menukarkan nilai dari dua variabel. Algoritma akan menerima 2 buah input, menukarkan nilainya, lalu mencetak hasil dari penukaran tersebut. }
Deklarasi
   {variabel}
   a,b,c : integer
   {saya menggunakan 3 variabel yang bertipe bilangan bulat (integer)}
Deskripsi :
   read(a,b) {meminta input }
   c ← a {proses}
   a ← b
   b ← c
   write(a,b) {menuliskan output }
Selesai.. Selanjutnya saya akan membahas mengenai cara mentranslasinya ke bahasa pemrograman..


  



Minggu, 22 September 2013

Apa itu Algoritma?


Ketika anda akan memasak telur, apa saja yang harus anda lakukan? Pasti yang anda lakukan adalah sebagai berikut :

  1. Nyalakan api kompor.
  2. Tuangkan minyak ke dalam wajan.
  3. Pecahkan telur ayam ke dalam wadah kecil.
  4. Tambahkan garam secukupnya ke dalam wadah.
  5. Aduk campuran telur dan garam.
  6. Tuang adonan telur dalam wajan.
  7. Masak telur hingga matang.

Nah, tata cara seperti itu bisa saya sebut sebuah algoritma,

Lalu, apa yang membedakan antara algoritma dan prosedur? Bukankah memasak sebuah telur merupakan sebuah prosedur?

Sebenarnya, Algoritma itu adalah sebuah prosedur, namun sebuah prosedur belum tentu sebuah algoritma. Kenapa? Karena menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting :

  1. Algoritma harus berhenti, bayangkan ketika anda mengaduk telur tapi tidak berhenti.
  2. Setiap langkah harus didefinisikan dengan tepat dan tidak ambigu atau bermakna ganda.
  3. Algoritma harus memiliki masukan (input). contoh disini telur mentah
  4. Algoritma harus memiliki keluaran (ouput). contoh disini telur dadar
  5. Algoritma harus efektif. Setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal.

Berdasarkan penjelasan saya di atas, kita semua bisa menarik sebuah kesimpulan bahwa :


Algoritma adalah : urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.

Sabtu, 21 September 2013

Posting Pertama Saya

Maid Welcome Image
Hai! Saya Vederis! Ini adalah post pertama saya, di artikel pertama saya ini saya mungkin akan membahas lebih ke tujuan, dan apa saja yang akan saya isi dalam blog ini, ya sehingga ini bisa memberikan informasi kepada anda sekalian tentang blog ini, dan membantu saya juga dalam menulis blog.

Kita mulai dari tujuan, apa tujuan saya dalam membuat blog ini? ya jawabannya simple, hanya sebagai referensi saya di kedepannya nanti, namun kalau ini hanya sebagai referensi, saya rasa sangat disayangkan. Kenapa? Karena selama saya bisa membantu orang lain dengan artikel saya kenapa tidak? sehingga bisa saya katakan kalau blog ini digunakan untuk tutorial.

Apa saja yang akan saya bahas dalam blog ini? saya akan membahas tentang algoritma, dan juga bahasa pemrograman, tidak hanya itu mungkin saya akan memberikan selingan tips dan trik, dan komik strip.

Sekian! Semoga blog ini dapat membantu kalian semua!!



 
Copyright © Inteligence Bird | Theme by BloggerThemes & frostpress | Sponsored by BB Blogging