ALGORITMA DAN STRUKTUR DATA 1 KP002 3 SKS DEWI KUSUMANINGSIH, M.KOM
ALGORITMA DAN STRUKTUR DATA 1KP002 3 SKS
DEWI KUSUMANINGSIH, M.KOM
Pengenalan dosen :
Status : Dosen Tetap FTI prodi TI
Ruang : Lembaga Penjaminan Mutu Lantai 2, sebelah kanan
Sekretariat FTI
YM : kusumasankdewi
FB : DewiKusumaningsihMKom
Penilaian :
Presensi : 10%UTS : 30%Tugas : 20%UAS : 40%
Diselesaikan Oleh
KOMPUTER
Langkah-langkah harus tersusun secara LOGISdan Efisienagar dapat menyelesaikan tugas dengan benardan efisien.
ALGORITMAadalah langkah-langkah yang diambil dalam menyelesaikan suatu tugas
TEKNIK,Karena Algoritma diterapkan di Komputeryang penuh dengan TOOLdan metodologi
Seni,karena Algoritma penuh dengan kreativitas dan imajinasi yang jenius
ALGORITMAmerupakan gabungan antara SENI dan TEKNIK
RAM
ContohWINDOWS
MempunyaiProcessor contoh Intel Pentium
KOMPUTER adalah alat pengolah data, dengan konstruksi elektronik, yang mempunyai, internal storagebekerja dengan bantuan Operating Systemmenurut program yang diberikan kepadanya.
misal :Intel Pentium
PROCESSOR
MEMORY (internal Storage)
SCREENKEYBOARD
HARDDISK(external storage)
RAMmisal
kapasitas64 MB
Input device
Misalkapasitas
10 GB
Outputdevice
Input & Outputdevice
misal :Intel Pentium Data
OperatingSystem
OPERATINGSYSTEM
PROGRAM------------------------------------------------
data
PROCESSOR
MEMORY (internal Storage)
SCREENKEYBOARD
HARDDISK(external storage)
data data
Program
RAMmisal
kapasitas64 MB
Input device
Misalkapasitas
10 GB
Outputdevice
Input & Outputdevice
memory
no: 0 1 2 3
No :64 * 1024 * 1024 - 1(Untuk memory 64 MB)
1 BYTE = 8 bit (binary digit)
X X X X X X X X
1 2 3 4 5 6 7 8
Bila memory dianggap sebagai sebidang tanah,maka 1 BYTE dapat dianggap sebagai 1 meter persegi
Satuan lain :WORD ( 4 Byte)HALF WORD ( 2 Byte)DOUBLE WORD ( 8 Byte)SECTOR (512 Byte)
BYTE adalah satuan memory (storage) terkecil yang masih bisa diberi alamat
MEMORY dan satuan BYTE
Memory, bila dibayangkan sebagai sebidang tanah, maka satu BYTE adalah area sebesar satu meter persegi, yang dapat menyimpan satu buah huruf
Bila dibayangkan sebagai sebuah ruangan, maka satu BYTE adalah sebuah ubin yang dapat menampung sebuah huruf
RANDOM ACCESS (Akses secara Acak)
0 1 2 3 4 5 . . . . . .
Komputer dapat mengakses (menuju, mencapai, mendapatkan) sebuah Byte dalam memory, secara langsung, tanpa harus menelusuri satu per satu mulai Byte 0,1,2,3, dan seterusnya. Bagi komputer, untuk mengakses Byte no 1000, sama mudahnya dengan mengakses Byte nomor 1, atau nomor lainnya
Sebuah Byte terdiri dari 8 komponen yang disebut bit.Sulit menerangkan benda yang disebut bit tersebut secara fisik. Hanya dapat diilustrasikan sebagai sebuah bohlam lampu yang dapat menyala atau padam.Bila menyala disebut ON, dan padam disebut OFFContoh sebuah huruf Abila disimpan dalam satu BYTE memory
ON
OFF
1 BYTE = 8 bit (binary digit atau angka biner)
ilustrasi sebuah BYTE yang terdiri dari 8 buah bohlam lampu.
Catatan :
ON
OFF
disini sengaja dibuat jarak, hanya agar mudah melihat jumlah bitnya ada 8 buah.
Binary digit (angka biner)Untuk keperluan komputasi secara digital,maka : bit yang ON dinyatakan dengan angka 1, dan bit yang OFF dinyatakan dengan angka 0
Sehingga huruf Ayang dinyatakan dengan ON dan OFF nya bit-bit sebagaiberikut :
ON
OFF
selanjutnya dinyatakan dengan :
0 1 0 0 0 0 0 1
Binary digit (angka biner)
Bilangan Binary, Basis (Radix) = 2, karena hanya mengenal 2 notasi atau simbol yaitu:0 dan 1
x x x x x x32 16 8 4 2 1
Bilangan DecimalBasis (Radix) = 10,karena mengenal 10 notasi atau simbol yaitu : 0, 1, 2, 3, . . . 9
x x x x 1000 100 10 1
Binary digit (angka biner)
01
1 01 1
1 0 01 0 11 1 01 1 1
1 0 0 01 0 0 1
= 0= 1= 2= 3= 4= 5= 6= 7= 8= 9
Nilai yang terkandung dalam sebuah BYTE
Setiap bit yang ON mempunyai nilai sesuai dengan posisinya dalam sebuah BYTE yang dapat digambarkan sebagai berikut :
128 64 32 16 8 4 2 1
Nilai karakter A
Ilustrasi huruf A yang disimpan dalam BYTE
128 64 32 16 8 4 2 1
Sehingga karakter A, atau huruf Ayang disimpan dalam satu BYTE memory akan bernilai = 65karena bit yang ON bernilai 64 dan 1.
Yang dinyatakan dengan angka biner (binary digit)menjadi :
0 1 0 0 0 0 0 1128 64 32 16 8 4 2 1
128 64 32 16 8 4 2 1
A
B
C
D
E
HURUFatauKARAKTER : = 65
= 66
= 67
= 68
= 69
Daya Tampung Satuan memory
B singkatan untuk Byte
1 KB (Kilo Byte ) = 1024 Byte
B Byte
1 KB (Kilo Byte ) = 1024 Byte
1 MB (Mega Byte ) = 1024 KB
B Byte
1 KB (Kilo Byte ) = 1024 Byte
1 MB (Mega Byte ) = 1024 KB
1 GB (Giga Byte ) = 1024 MB
1 KB (Kilo Byte ) = 1024 Byte
1 MB (Mega Byte ) = 1024 KB
1 GB (Giga Byte ) = 1024 MB
1 TB (Tera Byte ) = 1024 GB1 PB (Peta Byte ) = 1024 TB
1 EB (Exa Byte ) = 1024 PB
1 ZB (Zetta Byte ) = 1024 EB
1 YB (Yotta Byte ) = 1024 ZB
Mengapa
mengapa bukan10001 kg = 1000 g
1 km = 1000 m
Karena komputer menggunakan
124816326412825651210242048...
ini yang dipakai untuk kilo
1024 = nilai yang paling mendekati 1000
mengapa
KOMPUTER adalah alat pengolah data, dengan konstruksi elektronik, yang mempunyai, internal storagebekerja dengan bantuan Operating Systemmenurut program yang diberikan kepadanya.
Operating Systemadalah software yang dibuat untukmengendalikan bekerjanya komputer.
Semua pekerjaan didalam komputer dikendalikan (di-control) oleh Operating System
Beberapa Contoh Operating System :
DOSWINDOWSWINDOWS NTUNIXLINUXXENIXMACINTOSHSUN SOLARIS
KOMPUTER adalah alat pengolah data, dengan konstruksi elektronik, yang mempunyai, internal storagebekerja dengan bantuan Operating Systemmenurut program yang diberikan kepadanya.
= Langkah-langkah dalam Alagoritma
Instruksi-instruksiharus tersusunsecara logis
MemerlukanLOGIKA
yang benar
PROGRAM adalah kumpulan instruksi-instruksiyang diberikan kepada komputer untuk menyelesaikan suatu tugas
PROGRAMditulis dalam suatu bahasa yang disebut Bahasa Pemrograman (Programming Language)
Contoh BahasaPemrograman :COBOLFORTRANPascalBASICCJavadan sebagainya
Bahaca C ini yang kitagunakan untukmenerapkan Algoritmadi komputer
Contoh Persoalan yang akan diselesaikan :
Mencari Total dua buah bilangan(Misal dua buah bilangan tersebut masing masing bernilai 5 dan 2).
diselesaikandengan
menggunakan SIPOA, SWIPOA,
SEMPOA
diselesaikan dengan
menggunakanKALKULATOR
diselesaikan dengan
menggunakanKOMPUTER
Contoh Persoalan yang akan diselesaikan dengan menggunakan komputer :
Mencari Total dua buah bilangan(Misal dua buah bilangan tersebut masing masing bernilai 5 dan 2).
diselesaikandengan menggunakan
program yang sudah jadimisalnya EXCEL
diselesaikan dengan membuat
PROGRAM sendiri
Contoh Soal :Diketahui dua buah bilangan masing masing bernilai 5 dan 2.Susun program dalam Bahasa Cuntuk mencetak hasil penambahan kedua buah bilangan tersebut.
Algoritmasecara Umum A 5 B 2 T A + B WRITE(T)
Algoritma dalam Bahasa C#include<stdio.h>void main(){ int A,B,T; A = 5; B = 2; T = A + B; printf(“%i”, T);}
Variabeltidak didefine/ dideklarasi/ dinyatakan/ dipesanlebih dulu
Variabel perlu didefine/ dideklarasi/lebih dulu
VARIABLE----------
VARIABEL- Tipe (Type)- Nama- Isi Mewakili
ALAMAT(address)
#include<stdio.h> main() { int A,B,T; A=5; B=2; T=A+B: printf(“%I”, T);}
Ccompiler windows
#include<stdio.h>main(){ int A,B,T; A = 5; B = 2; T = A + B; printf(“%i”, T);}
5 2 7
A B T7
5 + 2 = 7C PU
MEMORY
SCREENKEYBOARD
WindowsC
compiler
HARDDISK
2
1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
23
4
Kembali ke Soal :Diketahui dua buah bilangan masing-masing bernilai 5 dan 2.Susun program dalam Bahasa C untuk mencetak hasil penambahan kedua bilangan tersebut.
Cara-1 : #include <stdio.h>main(){ int A, B, T; A = 5; B = 2; T = A + B; printf(“%i”, T);}
Disiapkan 3 buah variabelmasing-masing bertipe integer.Dapat juga ditulis sbb: int A; int B; int T;
Variabel Adiisi dengannilai 5
Isi variabel A ditambah dengan isi variabel Bhasil penambahannya disimpan dalam variabel T
Yang dicetak nilai TInstruksi
Mencetak
Format “%i”untuk nilai integer
#include <stdio.h>main(){ int A, B, T; A = 5; B = 2; T = A + B; printf(“%i”, T);}
Program diatas dapat juga ditulis sbb:
Satu baris statement dapat terdiri dari lebihdari satu instruksi
#include <stdio.h>main(){ int A, B, T; A = 5; B = 2; T = A + B; printf(“%i”, T);}
Atau sebagai berikut :
#include <stdio.h>main(){ int A, B, T; A = 5; B = 2; T = A + B; printf(“%i”, T);}
#include <stdio.h>main(){ int A = 5, B = 2, T; T = A + B; printf(“%i”, T);}
#include <stdio.h>main(){ int A, B; A = 5; B = 2; printf(“%i”, A+B);}
Total tidak disimpan dalam sebuah variabel,tapi hasil penambahan A+B bisa langsung dicetak
Cara - 2.
#include <stdio.h>main(){ printf(“%i”, 5 + 2);}
Nilai 5 dan 2 begitu juga Total,tidak dismpan dalam variabel.Tapi hasil 5 + 2langsung bisa dicetak
Cara - 3
#include <stdio.h>main(){ printf(“%i”, 7 );}
Walaupun ini juga program,tapi BUKAN program yang dimaksud untuk menghitung 5 + 2tapi hanya sekedar mencetak nilai 7 yang telah kita hitungsendiri.Nilai 7 bukan dihitung oleh komputer
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
int A, B, T;Meminta atau memerintahkan Komputer untuk :
Menyiapkan 3 buah tempat (area) bertipe integer dalam memory komputer, masing-masing dengan nama : A, B dan T.
Teori :
Setiap data yang disimpan di dalam memory komputer, harus mengikuti bentuk atau format tertentu yang disebut : Tipe DataTipe data dalam Bahasa C/C++ :
charintlong intfloatdoublelong double
Tipe Data.
Tipe data dasar (primitif) yang digunakan oleh Bahasa C.
1. Character
2. Integer
3. Floating point (single precision)
4. Double precision
char atau signed charunsigned char
int atau signed int atau signed
unsigned int atau unsigned
long atau long int atau signed long atau signed long int
unsigned long atau unsigned long int
float
double
long double
SebutanTipe Data
Bentuk penulisandalam Bahasa C
Jumlah Byteyang
diperlukan
Jangkauan nilainumerik
1
1
2
2
4
4
4
8
10
-128 s.d. 127
0 s.d. 255
-32768 s.d. 32767
0 s.d. 65535
-2147483648 s.d. 2147483647
0 s.d. 4294967295
3.4E-38 s.d. 3.4E38positip atau negatip
1.7E-308 s.d. 1.7E308positip atau negatip
3.4E-4932 s.d 1.1E4932positip atau negatip
vary&
able
Secara teknis : Variabel adalah suatu area dalam memory yang isinya dapat diubah-ubah
. nama . isi . tipe
Terlihat nanti, nama ini mewakili alamat variabel tersebut dalam memory
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
int A, B, T;
A B T
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
A = 5;5A B T
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
B = 4;5A
4B T
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
T = A + B5A
4B
9
T
CPU5 + 4 = 9
Nilai A dan B dibawa ke CPU,Dilakukan proses penembahan,Hasilnya disimpan ke T
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
printf(“%i”, T );5A
4B
9
T
9
%i : format untuk nilai integer
Yang dicetak isi variabel T
#include <stdio.h>void main(){ int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T);}
Apa guna instruksi ini ?
Ini sudah diterangkan
#include<stdio.h>
Untuk apa ?
fungsi pustaka (Library Function) yang ada dalam file stdio.h :clearr()fclose()fccloseall()fdopen()fflush()fgetc()fgetchar()fgetpos()fgets()
flushall()fopen()fprint()fputc()fputchar()fputs()fread()free()freopen()
fscan()fseek()fsetpos()ftell()fwrite()gets()getw()perror()printf()
puts()putw()rename()rewind()scanf()unlink()
printf ()
Lihat di buku teori :
Salah satunya adalah :
Terlihat nanti :
Kalau menggunakan instruksi untuk input :
scanf( ………);
Jugaharus meng-includekan stdio.h
Kerjakan soal ini :
Diketahui dua buah bilangan masing masing bernilai 5 dan 4.Susun program dalam Bahasa C untuk mencetak total kedua buah bilangan tersebut.
Soal
Banyak macam
algoritma pemrograman
untuk menyelesaikan suatu persoalan dengan menghasilkan hasil yang sama
#include <stdio.h> void main() { int A, B, T; A = 5; B = 4; T = A + B; printf(“%i”, T); }
Misal program :
Mencetak total 5 + 4.
Selain program cara diatas,Untuk mencetak total 5 + 4, banyak cara penulisan program antara lain :
Cara-1.
#include <stdio.h> void main() { int A, B; A = 5; B = 4; printf(“%i”, A + B); }
Cara-2.
#include <stdio.h> void main() { int T; T = 5 + 4; printf(“%i”, T); }
Cara-3.
#include <stdio.h> void main() { printf(“%i”, 5 + 4 ); }
Cara-4.
Dan sebagainya
#include <stdio.h>void main(){ printf(“%i”, 9 );}
Walaupun ini juga program,tapi BUKAN program yang dimaksud untuk menghitung 5 + 4tapi hanya sekedar mencetak nilai 9 yang telah kita hitungsendiri.Nilai 9 bukan dihitung oleh komputer
Struktur Bahasa C
----void main() { statement statement statement statement }
----
Keywords dan Library Functions.
#include <stdio.h>void main(){ int A, B, T; scanf(“ %i ”, &A); scanf(“ %i ”, &B); T = A + B; printf(“ %i ”, T);}
#include <iostream.h>void main(){ int A, B, T; cin >> A; cin >> B; T = A + B; cout << T;}
Turbo C C++
Perhatikan kata-kata (words) yang ada dalam kedua program tersebut, yaitu :
include stdio.hstream.h
main()scanf()printf()cincout
voidint
a.
Keywords dalam ANSI C(ANSI = American National Standards Institute)
autobreakcasecharconstcontinuedefault
dodoubleelseenumexternfloatfor
gotoifintlongregisterreturn
shortsignedsizeofstaticstructswitch
typedefunionunsignedvoidvolatilewhile
Keyword dalam Bahasa C
Keywords tambahan dalam TURBO C
Selain keywords yang ada pada ANSI C, Turbo C menambah beberapa keywords yaitu :
asmcdeclfarhuge
interuptnearpascal
Selain keywords yang ada pada ANSI C, C++ menambah beberapa keywords yaitu :
asmclassdeletefriendinline
newoperatorprivateprotectedpublic
templatethisvirtual
b. Library Functions dan Library Macroes dalam Turbo C.
1) Dalam stdio.hLibrary Functionsclearr()fclose()fccloseall()fdopen()fflush()fgetc()fgetchar()fgetpos()fgets()
flushall()fopen()fprint()fputc()fputchar()fputs()fread()free()freopen()
fscan()fseek()fsetpos()ftell()fwrite()gets()getw()perror()printf()
puts()putw()rename()rewind()scanf()unlink()
1) Dalam stdio.h
Library Macroes
feof(f)ferror(f)fileno(f)getch(f)getchar(f)putchar( f)remove(path)
2) Dalam math.h
Library Functions
abs()acosh()asin()atan()atan2()atof()
ceil()cos()cosh()exp()fabs()floor()fmod()
labs()ldexp()log()log10()pow()sin()sinh()
sqrt()tan()tanh()
3) Dalam stdlib.h
Library Functions
abs()atof()atoi()atol()div()exit()
free()ldiv()malloc()rand()srand()system()
abs(x)atoi(s)random(num)randomize()
Library Macroes
4) Dalam string.h
Library Functions
strcpy()strcat()strchr()strcmp()strlen()
5) Dalam conio.h
Library Functions
clrscr()getch()getche()gotoxy()khbit()putch()
6) Dalam io.h
Library Functions
access()_close()close()_creat()eof()
filelength()_ope()open()_read()read()_write()write()
6) Dalam ctype.h
Library Functions
stlower()toupper()
Library Macroes
isalnum( c)isalpha( c)isascii( c)iscntrl( c)isdigit( c)
isgraph( c)islower ( c)isprint( c)ispunct( c)isspace( c)
isupper( c)isxdigit( c)toascii( c)_tolower( c)_toupper( c)