bab01_pengenalan1
TRANSCRIPT
-
8/17/2019 Bab01_Pengenalan1
1/27
Pengenalan
Bahasa C
Deby Tri Widia Lestari
XII IPA 5
SMA Negeri 39 1
-
8/17/2019 Bab01_Pengenalan1
2/27
Paradigma Pemrograman
• Pemrograman Deklarati!"#ngsional
$ Persoalan diselesaikan denganmengeks%resikan logika %ersoalan
• Pemrograman Prosed#ral!Terstr#kt#r
$ Persoalan diselesaikan denganmenent#kan langka& %er langka&
• Pemrograman 'erorientasi (b)ek$ Penyelesaian %ersoalan dilak#kan dengan
membagi men)adi ob)ek*ob)ek
2
-
8/17/2019 Bab01_Pengenalan1
3/27
Pemrograman Prosed#ral
• Pemrograman terstr#kt#r mer#%akanbagian dari %emrograman %rosed#ral+
• Pemrograman %rosed#ralmem#ngkinkan seorang %emrogrammende,nisikan se-ara te%at langka&*langka& %enyelesaian %ersoalan+
• "ok#snya adala& membagi %ersoalanmen)adi k#m%#lan .ariabel/ str#kt#rdata/ dan s#br#tin+
3
-
8/17/2019 Bab01_Pengenalan1
4/27
0om%onen Pemrograman
Terstr#kt#r• Se1#en-e 2#r#tan 4$ ksek#si statement!instr#ksi se-ara
ter#r#t
• Sele-tion 2seleksi 4
$ ksek#si sala& sat# statementbergant#ng %ada kondisi tertent#
• 6e%etition 2%eng#langan 4$ ksek#si seb#a& statement &ingga
men-a%ai kondisi tertent#
4
-
8/17/2019 Bab01_Pengenalan1
5/27
Se)ara& 'a&asa 7
• Akar dari ba&asa 7 adala& ba&asa '7PL*'asi- 7ombine Programming Lang#age2dikembangkan se)ak t&+ 89:
• Pada tan 89:;/ 0en T&om%sonmengembangkan ba&asa '+
• 'a&asa 7 %ertama kali dig#nakan %ada
kom%#ter Digital 1#i%ment7or%oration 2D7 PDP*88 yangmengg#nakan s+o
-
8/17/2019 Bab01_Pengenalan1
6/27
Se)ara& 'a&asa 7
**lanjutan• Standar 'a&asa 7 yang asliadala& standar dari 3 yang kem#dianmeneta%kan standar ANSI#nt#k ba&asa 7+
6
P "
-
8/17/2019 Bab01_Pengenalan1
7/27
Per e aan ar "#ngsIn%#tan!Mas#kan %ada 'a&asa
7• getchar() Sintak: int getchar(void):"#ngsi4$ mengembalikan seb#a& karakter 2nilai AS7IIberik#tnya dari b#@er keyboard+
$ 0arakter ditam%ilkan di layar monitor$ Men#ngg# sam%ai ada NT6$ eader ,le ada di stdio+&
• getch() Sintak: int getch(void):"#ngsi
$ mengembalikan sat# karakter dari b#@er keyboard$ karakter tidak ditam%ilkan di layar monitor 2no e-&o$ Tidak men#ngg# sam%ai ada NT6$ 7o-ok #nt#k memb#at %assBord$ eader ,le ada di -onio+&
-
8/17/2019 Bab01_Pengenalan1
8/27
Perbedaan dari "#ngsiIn%#tan!Mas#kan %ada 'a&asa
7• getche() Sintak : int getche(void)"#ngsi 4$ mengembalikan sat# karakter dari keyboard$ 0arakter ditam%ilkan di layar 2e-&o$ Tidak men#ngg# sam%ai ada NT6$ eader ,le ada di -onio+&
• gets() Sintak : char *gets(char *bufer)"#ngsi4
$ memba-a string dari keyboard sam%ai ketem# neB*line dan disim%an %ada b#@er+$ 0em#dian neB*line di re%la-e dengan n#ll -&ara-ter$ Mengembalikan nilai N
-
8/17/2019 Bab01_Pengenalan1
9/27
0arakteristik 7
• Digolongkan ba&asa tingkat menenga&• Lebi& s#lit dari ba&asa Pas-al dan 'asi-
yang termas#k tingkat tinggi
• 7 mengkombinasikan ba&asa tingkattinggi dan tingkat renda&+ T#)#annya#nt#k mengambil kelebi&an dari
masing*masing tingkat ba&asa+$ Tingkat tinggi 4 lebi& m#da& %en#lisan$ Tingkat renda& 4 lebi& -e%at eksek#sinya
9
-
8/17/2019 Bab01_Pengenalan1
10/27
0elebi&an 'a&asa 7
• Tersedia &am%ir di sem#a )enis kom%#ter
• 0odenya %ortabel yait# da%at dig#nakanantar kom%#ter dengan sedikit %er#ba&an
• Str#kt#r ba&asanya baik/ se&ingga m#da&di%ela)ari dan di%a&ami
• Dibanding ba&asa mesin/ 7 lebi& m#da&
di%a&ami• Da%at memani%#lasi bit dan alamat %ointer
10
-
8/17/2019 Bab01_Pengenalan1
11/27
0elema&an 7
• 'anyaknya o%erator sertaCeksibilitas %en#lisan yang kadangmembing#ngkan %engg#na
• Pointer+ Pemrogram %em#la#m#mnya tidak terbiasamengg#nakan %ointer+
11
-
8/17/2019 Bab01_Pengenalan1
12/27
Proses 7om%ile Linking
12
-
8/17/2019 Bab01_Pengenalan1
13/27
7om%iler dan Linking
• Sebel#m %rogram 7 da%at di)alankan/ &ar#sdi -om%ile dan di linking terlebi& dal#+
• 7om%ile adala& %roses menter)ema&kan
sel#r#& %rogram ke dalam ba&asa mesinsekalig#s+
• 7om%ile da%at ber&asil )ika dalam %rogramtidak ada kesala&an kaida& sama sekali+
• List %rogram asli da%at dira&asiakan
• Linking adala& %roses #nt#k menggab#ngkanbebera%a ,le %rogram &asil kom%ilasi+
13
-
8/17/2019 Bab01_Pengenalan1
14/27
Str#kt#r Pen#lisan
Program 7• Program 7 ters#s#n atas se)#mla&#ngsi+
• Paling tidak ada sat# #ngsi #tamayait# #ngsi bernama main+
• Setia% #ngsi ters#s#n atas bebera%astatement!%ernyataan+
• Pen#lisan setia% #ngsi diaBali dengantanda EFE dan diak&iri dengan tanda EGH
14
-
8/17/2019 Bab01_Pengenalan1
15/27
0erangka Program 7
15
-
8/17/2019 Bab01_Pengenalan1
16/27
Pre%ro-essor 4 de,ne
• Dig#nakan #nt#k mende,nisikankonstanta ata# makro+
• 6#m#s 4 #define
Contoh :
#define TRUE 1
#define FALSE !TRUE#define P "1
16
-
8/17/2019 Bab01_Pengenalan1
17/27
Pre%ro-essor 4 in-l#de
• #incl$de mer#%akan sala& sat# %engara&%ra%rosesor 2%re%ro-essor dire-ti.e
• Di%akai #nt#k memba-a ,le yang
diantaranya berisi deklarasi #ngsi dankonstanta+
• "ile yang diba-a adala& ,le berekstensi .h
2istila&nya ,le &eader• 7 menyediakan bebera%a ,le &eader sia%
%akai/ -onto& stdio+&/ stlib+&/ dll
17
-
8/17/2019 Bab01_Pengenalan1
18/27
7onto& Pengg#naan
Dire-ti.e• #incl$de
-
8/17/2019 Bab01_Pengenalan1
19/27
Pola Deklarasi "#ngsi
ti%eJdata namaJ#ngsi 2 parameter F
!!letakkan variabel lokal di sini
!!letakkan pernyataan C di sini
G
19
-
8/17/2019 Bab01_Pengenalan1
20/27
"#ngsi main2
• Mer#%akan #ngsi #tama yang &ar#sada %ada %rogram 7+
• "#ngsi ini men)adi titik aBal dan titikak&ir eksek#si %rogram+
• 'iasanya ditem%atkan di %aling ataskode/ #nt#k mem#da&kan%enel#s#ran+
20
-
8/17/2019 Bab01_Pengenalan1
21/27
"#ngsi main2 ** lan)#tan
• Sintaks 4'oid main ()*+, t$-$h f$n.%i ,+
/
• 'oid men#n)#kkan ba&Ba #ngsi
main tidak mengembalikan nilaia%a%#n
21
-
8/17/2019 Bab01_Pengenalan1
22/27
"#ngsi %rint2
• Mer#%akan #ngsi standar 7 #nt#kmenam%ilkan s#at# kel#aran %adalayar!monitor
• 'ent#k #m#m 4– printf(“string keluaran”, daftar
argumen)
22
-
8/17/2019 Bab01_Pengenalan1
23/27
"#ngsi %rint2 ** lan)#tan
• String kel#aran da%at ber#%a 4
$ Kd #nt#k menam%ilkan bil+ b#lat2integer
$ K #nt#k menam%ilkan bil+%e-a&an
$ K- #nt#k menam%ilkan karakter$ Ks #nt#k menam%ilkan string!teks
• 7onto& 4
#incl$de
-
8/17/2019 Bab01_Pengenalan1
24/27
"#ngsi %rint2 ** lan)#tan
• Menam%ilkan t#lisan ello World– printf(“Hello World”);
•Pengg#naan tanda EH 4$ menyatakan karakter %etik ganda$ menyatakan karakter ba-kslas&
$ t menyatakan karakter tab
24
-
8/17/2019 Bab01_Pengenalan1
25/27
0omentar %ada Program
• Dig#nakan #nt#k ke%erl#andok#mentasi
• DiaBali dengan tanda !O dandiak&iri dengan tanda O!
•
-
8/17/2019 Bab01_Pengenalan1
26/27
7onto& 0omentar
++pen..$naan directi'e
#include
-
8/17/2019 Bab01_Pengenalan1
27/27
Datar P#staka
• &tt%4!!kam%oeng*it+blogs%ot+-om!;;9!;>!kelebi&an*kek#rangan*ba&asa*-+&tml
• &tt%4!!kam%oeng*it+blogs%ot+-om!;8!
8!%erbedaan*get-&ar*get-&*get-&e*gets+&tml
• &tt%4!!kam%oeng*it+blogs%ot+-om!;8!
8;!ba&asa*-*str#kt#r*%rogram*-+&tml
http://kampoeng-it.blogspot.com/2009/08/kelebihan-kekurangan-bahasa-c.htmlhttp://kampoeng-it.blogspot.com/2009/08/kelebihan-kekurangan-bahasa-c.htmlhttp://kampoeng-it.blogspot.com/2012/12/perbedaan-getchar-getch-getche-gets.htmlhttp://kampoeng-it.blogspot.com/2012/12/perbedaan-getchar-getch-getche-gets.htmlhttp://kampoeng-it.blogspot.com/2012/12/perbedaan-getchar-getch-getche-gets.htmlhttp://kampoeng-it.blogspot.com/2012/10/bahasa-c-struktur-program-c.htmlhttp://kampoeng-it.blogspot.com/2012/10/bahasa-c-struktur-program-c.htmlhttp://kampoeng-it.blogspot.com/2012/10/bahasa-c-struktur-program-c.htmlhttp://kampoeng-it.blogspot.com/2012/10/bahasa-c-struktur-program-c.htmlhttp://kampoeng-it.blogspot.com/2012/12/perbedaan-getchar-getch-getche-gets.htmlhttp://kampoeng-it.blogspot.com/2012/12/perbedaan-getchar-getch-getche-gets.htmlhttp://kampoeng-it.blogspot.com/2012/12/perbedaan-getchar-getch-getche-gets.htmlhttp://kampoeng-it.blogspot.com/2009/08/kelebihan-kekurangan-bahasa-c.htmlhttp://kampoeng-it.blogspot.com/2009/08/kelebihan-kekurangan-bahasa-c.html