sejarah computer science

18
 Sejarah Program, pemrograman dan algoritma adalah bagian fundamental dari Computer science. Computer science sudah muncul sejak 1940, seiring dengan berpadunya teori algoritma dan logika matematika, serta ditemukannya komputer elektronik dengan kemampuan penyimpanan program. Alan Turing dan Kurt Godel pada tahun 1930-an berhasil memadukan algoritma, logika, dan penghitungan matematika serta merealisasikannya dalam sebuah alat atau rule system. Prinsip algoritma yang digunakan adalah dari algoritma Ada yg ditemukan oleh Ada Lovelace, yang dikembangkan 60 tahun sebelumnya. Penemu algoritma bernama Abu Abdullah Muhammad Ibn Musa al Khwarizmi. Al Khwarizmi adalah seorang ahli matematika dari Uzbekistan yang hidup tahun 770-840 Masehi. Dalam literatur barat ia dikenal dengan nama Algorizm. Kata algoritma sendiri berasal dari sebutannya ini. Sedangkan komputer analog diciptakan oleh Vannevar Bush pada tahun 1920, dan disusul dengan komputer elektronik yang dikembangkan oleh Howard Aiken dan Konrad Zuse tahun 1930.

Upload: verry-benge

Post on 18-Jul-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 1/18

Sejarah

Program, pemrograman dan algoritma adalahbagian fundamental dari Computer science. Computerscience sudah muncul sejak 1940, seiring denganberpadunya teori algoritma dan logika matematika, sertaditemukannya komputer elektronik dengan kemampuanpenyimpanan program. Alan Turing dan Kurt Godel padatahun 1930-an berhasil memadukan algoritma, logika, danpenghitungan matematika serta merealisasikannya dalamsebuah alat atau rule system. Prinsip algoritma yangdigunakan adalah dari algoritma Ada yg ditemukan oleh AdaLovelace, yang dikembangkan 60 tahun sebelumnya.

Penemu algoritma bernama Abu AbdullahMuhammad Ibn Musa al Khwarizmi. Al Khwarizmi adalahseorang ahli matematika dari Uzbekistan yang hidup tahun770-840 Masehi. Dalam literatur barat ia dikenal dengannama Algorizm. Kata algoritma sendiri berasal darisebutannya ini. Sedangkan komputer analog diciptakan olehVannevar Bush pada tahun 1920, dan disusul dengankomputer elektronik yang dikembangkan oleh Howard Aikendan Konrad Zuse tahun 1930.

Page 2: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 2/18

John Von Neumann mendemonstrasikan salahsatu karya fenomenalnya pada tahun 1945, yaitu sebuaharsitektur komputer yang disebut "von Neumann machine",dimana program disimpan di memori. Arsitektur komputerinilah yang kemudian digunakan oleh komputer modernsampai sekarang.

Pada tahun 1960 adalah babak baru dimulainya formalisasiComputer Science, sehingga Jurusan Ilmu Komputer pada

universitas-universitas mulai marak dibangun. Disiplin ilmubaru ini kemudian terkenal dengan sebutan Ilmu Komputer(Computer Science), Teknik Komputer (ComputerEngineering), Komputing (Computing), atau Informatika(Informatics).

Definisi Computer Science

Dengan berkembangnya Ilmu Komputer, dewasa ini banyak

sekali peneliti yang mencoba membuat kajian danmelakukan pendefinisian terhadap Ilmu Komputer.Bagaimanapun juga, dasar Ilmu Komputer adalahmatematika dan engineering (teknik). Matematikamenyumbangkan metode analisa, dan engineeringmenyumbangkan metode desain pada bidang ini.

CSAB [3] (Computing Sciences Accreditation Board,http://www.csab.org) membuat definisi menarik tentang

Ilmu Komputer:

Ilmu Komputer adalah ilmu pengetahuan yangberhubungan dengan komputer dan komputasi. Di dalamnya terdapat teoritika, eksperimen, dan pendesainan komponen, serta termasuk 

Page 3: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 3/18

didalamnya hal-hal yang berhubungan dengan:

1. Teori-teori untuk memahami komputer device, program, dan sistem

2. Eksperimen untuk pengembangan dan pengetesan konsep

3. Metodologi desain, algoritma, dan tool untuk merealisasikannya

4. Metode analisa untuk melakukan pembuktianbahwa realisasi sudah sesuai denganrequirement yang diminta

Denning mendefinisikan Ilmu Komputer dalammakalahnya yang cukup terkenal tentang disiplin ilmukomputer [1]. Makalah ini adalah laporan akhir dari proyekdan task force tentang the Core of Computer Science yangdibentuk oleh dua society ilmiah terbesar bidang komputer,yaitu ACM [4] (http://acm.org) dan IEEE Computer Society

[5] (http://computer.org).

Ilmu Komputer adalah studi sistematik tentang proses algoritmik yang mengjelaskan danmentrasformasikan informasi: baik itu berhubungan

Page 4: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 4/18

dengan teori-teori, analisa, desain, efisiensi,implementasi, ataupun aplikasi-aplikasi yang ada padanya. Pertanyaan mendasar berhubungan denganIlmu Komputer adalah, "Apa yang bisa

diotomatisasikan secara efisien". 

Sehingga dapat disimpulkan dari persamaan pemakaianterminologi dan hakekat makna dalam definisi yangdigunakan para peneliti diatas, bahwa:

Computer science adalah ilmu pengetahuan yangberisi tentang teori, metodologi, desain danimplementasi, berhubungan dengan komputasi,

komputer, dan algoritmanya dalam perspektif  perangkat lunak (software) maupun perangkat keras (hardware), sehingga algoritma, program dan pemrograman adalah bagian fundamental yg adadidalamnya. 

Definisi Algoritma

Algoritma adalah logika, metode dan tahapan (urutan) sistematisyang digunakan untuk memecahkan suatu permasalahan.Menurut kamus besar bahasa Indonesia (Balai Pustaka 1988):

Algoritma adalah urutan logis pengambilan putusan untukpemecahan masalah.

Beda Algoritma dan Program

Program adalah kompulan instruksi komputer, sedangkan metodedan tahapan sistematis dalam program adalah algoritma.Program ini ditulis dengan menggunakan bahasa pemrograman.Jadi bisa kita sebut bahwa program adalah suatu implementasidari bahasa pemrograman. Beberapa pakar memberi formulabahwa: program = struktur data + algoritma

Page 5: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 5/18

Bagaimanapun juga struktur data dan algoritma berhubungansangat erat pada sebuah program. Algoritma yang baik tanpapemilihan struktur data yang tepat akan membuat programmenjadi kurang baik, semikian juga sebaliknya. Struktur data

disini bisa berupa list , tree, graph, dsb.

Menilai Sebuah Algoritma

Ketika manusia berusaha memecahkan masalah, metode atauteknik yang digunakan untuk memecahkan masalah itu adakemungkinan bisa banyak (tidak hanya satu). Dan kita memilihmana yang terbaik diantara teknik-teknik itu. Hal ini sama jugadengan algoritma, yang memungkinkan suatu permasalahan

dipecahkan dengan metode dan logika yang berlainan.

Lalu bagaimana mengukur mana algoritma yang terbaik ?

Beberapa persyaratan untuk menjadi algoritma yang baik adalah:

• Tingkat kepercayaannya tinggi (realibility). Hasil yangdiperoleh dari proses harus berakurasi tinggi dan benar.• Pemrosesan yang efisien (cost rendah). Proses harus

diselesaikan secepat mungkin dan frekuensi kalkulasi yangsependek mungkin.• Sifatnya general. Bukan sesuatu yang hanya untukmenyelesaikan satu kasus saja, tapi juga untuk kasus lain yanglebih general.• Bisa Dikembangkan (expandable). Haruslah sesuatu yangdapat kita kembangkan lebih jauh berdasarkan perubahanrequirement yang ada.

• Mudah dimengerti. Siapapun yang melihat, dia akan bisa

memahami algoritma anda. Susah dimengertinya suatu programakan membuat susah di maintenance (kelola).• Portabilitas yang tinggi (Portability). Bisa dengan mudahdiimplementasikan di berbagai platform komputer.

Page 6: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 6/18

Contoh Algoritma dan Implementasinya

Sebagai contoh sederhana, mari kita berlatih melihatpermasalahan, mencoba menyusun algoritma, dan meng-

implementasikan dalam bahasa C.

Contoh Permasalahan

1) Seorang guru yang ingin membuat rangking dari nilai ujian 9orang muridnya. Nilai ujian murid-muridnya adalah sebagaiberikut: 56 78 43 96 67 83 51 74 32

Bagaimana algoritma dalam pembuatan rangking nilai tersebut ?

Untuk memecahkan masalah diatas, kita bisa susun algoritmaseperti dibawah:

1. Buat satu variable (misalnya rangking)2. Set variable rangking = 13. Ambil satu nilai sebagai data yang ke a, misalnya 564. Chek nilai dari paling depan (56) sampai paling belakang (32)

(b=0-8). Apabila nilai tersebut lebih tinggi daripada nilai ke a (56), maka set variable rangking = ranking + 1.

5. Ulangi proses nomor 2 dengan mengambil data ke (a)berikutnya.

Page 7: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 7/18

Kemudian mari kita implementasikan algoritma diatas dalamprogram bahasa C.

Listing Program/Source code: Rangking Nilai Ujian

#include <stdio.h>#define banyaknya_nilai 9main(){

static int nilai[]={56, 78, 43, 96, 67, 83, 51, 74, 32};int rangking[banyaknya_nilai];int a,b;

for (a=0;a<banyaknya_nilai;a++){rangking[a]=1;for (b=0;b<banyaknya_nilai;b++){

if (nilai[a]>nilai[b])rangking[a]++;

}}printf("Nilai Ujian \t Rangking\n");for (a=0;a<banyaknya_nilai;a++){

printf("%d \t\t %d\n",nilai[a], rangking[a]);}

}

HasilNilai Ujian Rangking

56 478 743 2

96 967 583 851 374 632 1

Page 8: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 8/18

2)  Konversi Basis Bilangan Biasanya dalam berinteraksi dalam dunia nyata , kitamenggunakan bilangan dengan basis 10 (Desimal) sebagaiperantaranya. Tapi karena satu dan lain hal kita perlu juga

menggunakan basis bilangan lain . Dalam dunia digital misalnya.Ukuran terkecil untuk menyatakan satuan data dalam duniadigital ialah bit. 1 Bit terdiri dari 2 buah keadaan yaitu 1 atau 0 ,low atau high dsbnya. Mengingat pentingnya proses konversitersebut maka kali ini kita akan membahas caramengkonversi bilangan dengan basis dasar 10 menjadibilangan dengan basis 2 sampai 16. Dan dengan algoritmayang sama anda bisa kembangkan sendiri untukmengkonversi sampai basis ke N. Kita akan menggunakan

Metode rekursif untuk pembentukan algoritmanya.

Metode KonvensionalOke sebelum menginjak kepada metode konvensional , adabeberapa hal yang perlu kita ketahui. Maksud dari basis bilangan10 ialah karakter bilangan yang tersedia ialah dari ‘0’  sampaidengan ‘9’ . maksud dari basis bilangan 2 , karakter yangtersedia ialah dari ‘0’  sampai ‘1’ . Nah bagaimana dengan basisyang lebih besar dari 10 ? . Jika basis lebih besar dari 10

digunakan karakter abjad . Misalkan basis 16 . Maka karakterbilangan yang tersedia yaitu dari ‘0’ .. ‘9’ , ‘A’ , ‘B’,’C’,’D’,’E’,’F’.Begitu seterusnya untuk bilangan diatas basis 10.

Dibawah ini ialah salah satu metode konvensional untuk merubahbilangan dengan basis dasar 10 ke basis lainnya; Misalkan kitaingin mencari berapakah nilai bilangan 10 dalam basis 10 jika dikonversi ke basis 2 (biner) . Untuk itu perhatikan gambar berikut

10 sisa 05 sisa 12 sisa 01 sisa 10

Pada gambar tersebut didapat bahwa 10(10) = 1010 (2)

Page 9: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 9/18

Algoritma pada gambar 1 dapat dijelaskan sebagai berikut . Nilai10 kita bagi dengan basis tujuan yang kita mau (dalam hal ini 2 )maka akan dihasilkan 5 , dengan sisa 0 . Kemudian 5 kitakembali bagi dengan basis yang kita tuju , sehingga 5 dibagi

dengan 2 . Maka akan didapat 2 dengan sisa 1 begitu seterusnya.Langkah ini diulangan terus sampai hasil dari pembagian ialah 0. Hasil konversinya didapat dari merunut sisa hasil pembagiandari yang paling bawah ke atas ( lihat gambar ) Dari gambardiperoleh 1010 sebagai hasil.

Listing ProgramSetelah kita tahu cara metode pengkonversiannya , makatentunya tidak sulit lagi untuk membuatnya kedalam bahasa

pemrograman C.

Berikut ialah listing program dg Bahasa C :#include <stdio.h>char ch[17] = "0123456789ABCDEF";void CetakBaseN(int base,int nilai){if (nilai == 0) //jika nilai sudah 0 maka keluar

return;

CetakBaseN(base,nilai / base);printf("%c",ch[nilai % base]);

}void main(void){CetakBaseN(2,255); printf("\n");CetakBaseN(8,255); printf("\n");CetakBaseN(10,255); printf("\n");CetakBaseN(16,255); printf("\n");

}

Algoritma dengan Flowchart/bagan aliran

Flowchart adalah skema/bagan (chart) yg menunjukkanaliran (flow) di dalam suatu program secara logika.

Page 10: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 10/18

Beberapa symbol penting pada Flowchart

Notasi Symbol Flowchart Arti Notasi

Terminator: untukmenunjukka

awal dan akhir suatu algoritma

Data: untukmewakili data inpuatau output. Atau berarti jugauntukmenyatakan operasi

pemasukkan data danpencetakan hasil

Process: mewakili suatu proses

Decision: Sbg penyeleksian,pemilihan kondisi pd suatu

program

Preparation: untuk member nil

awal,nilai akhir, penambahan,

pengurangan, utk variablecounter.

Predefined Process:suatu operayg rinciannya ditunjukkan

ditempat lain (prosedur, sub-prosedur, fungsi)

Connector: Sambunganflowchart dihalaman yg

sama/halaman berikutnya.Arrow: menunjukkan arus dataatau aliran data dari proses sat

ke proses lain.

Page 11: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 11/18

Contoh kasus: Buatlah algoritma dalam bentuk

flowchart untuk permasalahan di bawah ini:1)  "Inputkan umur Budi dan Heru, tentukan selisih

umur mereka dan tampilkan diantara mereka

yang lebih tua."

Gambar Algoritma Flowchart selisih umur budi & heru

Page 12: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 12/18

Dibawah ini adalah script pemrograman diatas.

#include <stdio.h>main (){

int umur_budi;int umur_heru;int selisih;

clrscr ();printf ("inputkan umur budi:");scanf ("%d", &umur_budi);

printf ("inputkan umur heru:");scanf ("%d", &umur_heru);

if (umur_budi>umur_heru)

{printf ("\nbudi paling tua");selisih = umur_budi - umur_heru;

printf ("\nselisih umur mereka = %d", selisih);

}else{

printf ("\nheru paling tua");selisih = umur_heru - umur_budi;printf ("\nselisih umur mereka = %d", selisih);}

getch ();

}

Page 13: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 13/18

Sekarang kita bisa mengcompile program tersebut.Berikut ini keterangan dari program diatas.

#include <stdio.h>

Script diatas bertujuan untuk mengundang librarystandard input output dari Turbo C.

int umur_budi;int umur_heru;

int selisih;

Script diatas menggunakan integer sebagai tipe data

"umur_budi, umur_heru, selisih". Saya menggunakaninteger karena dia memiliki range antara -32768 ...32767.

printf ("inputkan umur budi:");scanf ("%d", &umur_budi);

Fungsi "printf ()" merupakan fungsi yang paling umumdigunakan dalam menampilkan data

. Fungsi "scanf ()" berguna untuk membaca input yangtelah diberikan dan tersimpan pada variabel umur_budi.

Page 14: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 14/18

if (umur_budi>umur_heru){printf ("\nbudi paling tua");selisih = umur_budi - umur_heru;

printf ("\nselisih umur mereka = %d", selisih);}else{

printf ("\nheru paling tua");selisih = umur_heru - umur_budi;printf ("\nselisih umur mereka = %d", selisih);

}Script diatas dapat diartikan sebagai berikut jika umur

budi lebih besar dari umur heru maka program akanmenapilkan "umur budi paling tua". Perintah lain programakan menghitung selisih umur mereka "selisih =

umur_budi - umur_heru" lalu menampikan dengan fungsiprintf. Jika umur_budi tidak lebih besar dari umur herumaka program akan menampikan " heru paling tua" dan"selisih umur mereka".

Berikut ini tampilan screenshoot program yang dijalankandi Turbo C.

Page 15: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 15/18

2)  Buatlah Flowchart untuk algoritma Luas segitiga

Listing Program Luas Segitiga dengan Turbo C 

Cara yang paling ampuh untuk belajar pemrogramanadalah praktek. Berikut script pemrograman Luassegitiga.

#include <stdio.h>#include <math.h>main ()

{

float sisi1;float sisi2;

Mulai

Read alas, tinggi

Luas =

0.5*alas*tinggi

Print Luas

Selesai

Page 16: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 16/18

float sisi3;float s;float l;float luas;

float x;float p;float t;

clrscr ();printf ("Inputkan sisi pertama:");scanf ("%f", &sisi1);

printf ("Inputkan sisi kedua :");scanf ("%f", &sisi2);printf ("Inputkan sisi ketiga :");scanf ("%f", &sisi3);

textcolor(2);if(sisi1==0 || sisi2==0 || sisi3==0)

{

cprintf ("bukan segitiga");}else if (sisi1==sisi2 && sisi1==sisi3 && sisi2==sisi3)

{cprintf ("segitiga sama sisi");luas = sisi1 * sisi2 * sisi3 / 4 * sqrt (3);cprintf ("luas segitiga %f satuan", luas);

}

else if(sisi1!=sisi2 && sisi2!=sisi3 && sisi1!=sisi3){

cprintf ("segitiga sembarang");s = 0.5 * (sisi1 + sisi2 + sisi3);p = (s * (s - sisi1) * (s - sisi2) * (s - sisi3));if (p<=0) { l = p * (-1); } else { l = p;

Page 17: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 17/18

} luas = sqrt (l); cprintf ("luas segitiga %f satuan",luas); } else { cprintf ("segitiga sama kaki"); if (sisi1==sisi2) { p = sisi1/2; x = pow (sisi2,2) - pow(p,2); if (x<=0) { s = x * (-1); } else { s

= x; } t = sqrt (s); cprintf ("luas segitiga %f satuan", t); } else if (sisi1==sisi3) { p = sisi2/2; x= pow (sisi1,2) - pow (p,2); if (x<=0) { s = x * (-1); } else { s = x; } t = sqrt (s); cprintf 

("luas segitiga %f satuan", t); } else if (sisi2==sisi3){ p = sisi1/2; x = pow (sisi2,2) - pow (p,2); if (x<=0) { s = x * (-1); } else { s = x; }

t = sqrt (s); cprintf ("luas segitiga %f satuan", t); } }getch (); }

Hasil screenshoot program tersebut adalah sebagaiberikut.

Page 18: Sejarah Computer Science

5/16/2018 Sejarah Computer Science - slidepdf.com

http://slidepdf.com/reader/full/sejarah-computer-science 18/18

File bisa didownload:

http://www.ziddu.com/download/14478381/pascal.zip.html 

http://www.ziddu.com/download/14478659/TurboC.zip.html 

Tugas 1

1) Buat makalah dengan tema bahasa pemrograman (selainbahasa C), minimal 15 halaman.

2) Buat Algoritma untuk:a)  Menentukan deret bilangan prima

b)  Menukar dua nilai bilanganc)  Menghitung sepuluh bilangand)  Menentukan FPB dari 2 bilangane)  Flowchart algoritma Menjumlahkan dua bilangan bulatf)  Flowchart algoritma Mahasiswa sukses

Tugas dikirim via email ke [email protected] (wajib pakeemail sendiri dan tidak diwakilkan, setelah itu absen tugas di

asisten dengan mencantumkan alamat email)