sejarah computer science
TRANSCRIPT
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.
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
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
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
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.
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.
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
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)
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.
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.
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
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 ();
}
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.
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.
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
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;
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.
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)