Petunjuk Praktikum Algoritma Dan Pemrogr
Petunjuk Praktikum Algoritma Dan Pemrogr
PETUNJUK PRAKTIKUM
S1 TEKNIK ELEKTRO NIM : 2016-11-060
2017
KAMPUS STT-PLN
MENARA PLN
JL.LINGKAR LUAR BARAT
DURI KOSAMBI, CENGKARENG
JAKARTA BARAT 11750
TELP. 021 5440342
TATA TERTIB
LABORATORIUM ALGORITMA DAN PEMROGRAMAN
1. Modul praktikum harus sudah dipelajari. Jika terbukti belum dipelajari, inrtruktur lab. berhak
melarang Anda untuk mengikuti praktikum.
2. Praktikan wajib memakai kemeja berkerah, sepatu, dan almamater.
3. Anda harus sudah ada di laboratorium 15 menit sebelum praktikum dimulai.
4. Kartu praktikum harus sudah dibawa pada saat praktikum, tanpa kartu praktikum, Anda tidak
dapat diperkenankan mengikuti praktikum. Kartu praktikum harus diberi foto dan diisi
lengkap.
5. Sebelum praktikum dimulai praktikan wajib mengikuti tes awal. Nilai tes awal minimal 40.
(Nilai tes awal <40 mengikuti tes lisan. Jika tetap tidak lulus maka praktikan tidak bisa
mengikuti praktikum)
6. Laporan praktikum harus ditulis tangan dan diserahkan sesuai jadwal yang telah diberikan
oleh instuktur lab penyerahan tidak bisa diwakilkan, karena anda harus siap untuk
menghadapi tes akhir atau presentasi.
7. Acc laporan maksimal 3 hari setelah praktikum terakhir.
8. Pada saat pengumpulan laporan harus berpakaian rapih memakai kemeja, almamater dan
tidak memakai sandal jepit.
9. Keterlambatan penyerahan laporan praktikum, akan mengakibatkan nilai laporan anda
berkurang 1/7 untuk satu hari keterlambatan dari total nilai, terlambat satu minggu berarti
nilai laporan anda sama dengan nol.
10. Laporan dijilid SPIRAL PLASTIK, COVER BUFFALO SESUAI WARNA MAP.
11. Instruktur lab tidak akan memberikan jadwal pengganti/susulan jika praktikan tidak
mengikuti praktikum kecuali sudah mendapat izin dari instruktur lab. Jika berhalangan hadir
harus ada pemberitahuan maks. 2 hari sebelum praktikum.
12. Praktikan diperbolehkan pindah jadwal praktikum setelah diizinkan oleh instruktur lab yang
bersangkutan, dengan ketentuan :
Praktikan mengisi lembar izin pada jadwal yang disediakan instruktur lab yang
bersangkutan dan mendapat persetujuan dari kepala laboraturium.
Setelah mendapat tanda tangan dari instruktur dan kepala laboraturium, praktikan
baru boleh mengikuti praktikum.
Instruktur lab berhak memberi sanksi jika ketentuan yang ada tidak dipenuhi.
PENULISAN LAPORAN
LANGKAH KERJA
1. MEMBUAT FOLDER
klik folder Prak Algo pilih Folder kelas buat folder baru dengan format :
nim_Nama lengkap
2. MEMBUKA APLIKASI TURBO C
klik aplikasi Turbo C yang tersedia pada desktop
3. MEMBUAT FILE BARU
Klik File klik New ketik program yang tertera di modul
4. ME-RUNNING DAN COMPILE PROGRAM
Setelah program selesai diketik klik icon atau CTRL+F9 output program akan
keluar bila program sudah benar jika tidak akan tampil laman error seperti:
DAFTAR ISI
TATA TERTIB.........................................................................................................................2
PENULISAN LAPORAN........................................................................................................3
NAMA KEPALA LAB, INSTRUKTUR, DAN ASISTEN.................................................... 4
LANGKAH KERJA.................................................................................................................5
DAFTAR ISI.............................................................................................................................7
MODUL I PENGENALAN BAHASA ………………………………………………………8
MODUL II STRUKTUR DASAR BAHASA ………………………………………….…...21
MODUL III PERCABANGAN DAN PERULANGAN…………………………………….36
MODUL IV ARRAY DAN FUNGSI……………………………………………………….52
MODUL V OPERASI FILE,STRUKTUR,MANIPULASI BIT, DAN KONSTANTA…....65
MODUL I
PENGENALAN BAHASA C
I. TUJUAN
a. Praktikan dapat menganalisa kesalahan sederhana pada program bahasa C
b. Praktikan dapat meng-compile, me-running serta menyimpan program
c. Praktikan dapat membuat program beserta flowchartnya
II. TEORI
2.1 FLOWCHART
2.1.1 Pengertian dan Definisi Flowchart
Flowchart atau Bagan alir adalah bagan (chart) yang menunjukkan alir (flow) di
dalam program atau prosedur sistem secara logika. Bagan alir (flowchart) digunakan
terutama untuk alat bantu komunikasi dan untuk dokumentasi.
2.1.2 Jenis jenis Flowchart
Ada beberapa jenis flowchart diantaranya yaitu :
a. System Flowchart
System flowchart dapat didefinisikan sebagai bagan yang menunjukkan arus
pekerjaan secara keseluruhan dari sistem.Bagan ini menjelaskan urut-urutan dari
prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem menunjukkan apa
yang dikerjakan di sistem.
b. Document Flowchart
Bagan alir dokumen (document flowchart) atau disebut juga bagan alir formulir
(form flowchart) atau paperwork flowchart merupakan bagan alir yang
menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya.
c. Schematic Flowchart
Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip
dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam
sistem.Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-
simbol bagan alir sistem, juga menggunakan gambar-gambar komputer dan
peralatan lainnya yang digunakan.Maksud penggunaan gambar-gambar ini adalah
untuk memudahkan komunikasi kepada orang yang kurang paham dengan simbol-
simbol bagan alir. Penggunaan gambar-gambar ini memudahkan untuk dipahami,
tetapi sulit dan lama menggambarnya.
d. Program Flowchart
Bagan alir program (program flowchart) merupakan bagan yang menjelaskan
secara rinci langkah-langkah dari proses program. Bagan alir program dibuat dari
derivikasi bagan alir sistem.
Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika program
(program logic flowchart) dan bagan alir program komputer terinci (detailed
computer program flowchart). Bagan alir logika program digunakan untuk
menggambarkan tiap-tiap langkah di dalam program komputer secara logika.Bagan
alat- logika program ini dipersiapkan oleh analis sistem.Gambar berikut
menunjukkan bagan alir logika program. Bagan alir program komputer terinci
(detailed computer program flow-chart) digunakan untuk menggambarkan
instruksi-instruksi program komputer secara terinci. Bagan alir ini dipersiapkan
oleh pemrogram.
e. Process Flowchart
Bagan alir proses (process flowchart) merupakan bagan alir yang banyak
digunakan di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk
menggambarkan proses dalam suatu prosedur.
♦ Processing symbols ♦
Menunjukkan jenis operasi pengolahan dalam suatu prosedur
Symbol Process (Simbol yang menunjukkan pengolahan yang dilakukan
oleh komputer)
Symbol Terminal (Simbol untuk permulaan atau akhir dari suatu program
Symbol Manual Input (Simbol untuk pemasukan data secara manual on-
line keyboard)
♦ Input-output symbols ♦
menyatakan jenis peralatan yang digunakan sebagai media input atau output.
Symbol punched card (Symbol yang menyatakan input berasal dari kartu
atau output ditulis ke kartu)
Symbol disk and on-line storage (Symbol untuk menyatakan input berasal
dari disk atau output disimpan ke disk)
Kekurangan Bahasa C
1. Banyaknya operator serta fleksibilitas penulisan program kadang kadang
membingungkan pemakai.
2. Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
b. Me-running Program
Berikut ini langkah-langkah untuk me-Running program :
Pilih menu Run atau menekan tombol Ctrl+F9
Program :
#include<stdio.h>
#include<conio.h>
main();
{
int bilangan;
printf("Masukkan bilangan : ");
scanf("%d",&bilangan);
if(bilangan%2==0)
{
printf("Bilangan tersebut adalah Bilangan Genap");
}
else
printf("Bilangan tersebut adalah Bilangan Ganjil");
getch();
}
Menghitung hambatan pengganti pada rangkaian seri
Flowchart :
Program :
#include<stdio.h>
#include<conio.h>
main()
float r1,r2,rp;
printf("Menghitung Hambatan Pengganti Pada Rangkaian Seri");
printf("\nMasukan Nilai Hambatan 1 : ");
scanf("%f",&r1);
printf("Masukan Nilai Hambatan 2 : ");
scanf("%f",&r2);
rp=r1+r2;
printf("Nilai Hambatan Penggantiny Adalah : %f",rp);
}
Program :
#include”stdio.h>
#include<conio.h>
main()
{
int v,i,r;
clrscr();
printf("\t\t\t\t------------------ HUKUM OHM-----------------\n\n");
printf("\t\t\t\tMasukkan nilai arus: ");
scanf("%d",&i);
printf("\t\t\t\tMasukkan nilai hambatan: ");
scanf("%d",&r);
v=i*r
printf("\t\t\t\tJadi nilai Tegangan adalah: %d ",v);
getch();
}
Program :
#include<stdio.h>
include<conio.h>
main()
{
int i,induktor,jumlah,total;
total=0
printf("Masukkan jumlah induktor: ");
scanf("%d",&jumlah);
printf("\n");
for(i=1;i<=jumlah;i++)
{
printf("induktor %d : ",i);
scanf("%d",&induktor);
total=total+induktor;
}
printf("Nilai induktor pengganti seri adalah %d",total);
getch();}
Program :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int pilihan,v,i,r,r1,r2,r3,rs;
printf("MENU PILIHAN\n\n");
printf("1. Menghitung Tegangan\n");
printf("2. Menghitung Rangkaian Seri\n");
while(pilihan>=0)
{
printf("\npilihan anda (1/2): ");
scanf("%d",&pilihan);
if(pilihan==1)
{
printf("Menghitung Tegangan\n");
printf("Masukan Arus : ");
scanf("%d",&i);
printf("Masukan Hambatan : ");
scanf("%d",&r);
v=i*r;
printf("Jadi Tegangannya adalah %d ",v);
}
else
if (pilihan==2)
{
printf("Menghitung Rangkaian Seri\n");
printf("hambatan1 :");
scanf("%d",&r1);
printf("hambatan2 :");
scanf("%d",&r2);
printf("hambatan3 :");
scanf("%d",&r3);
rs=r1+r2+r3;
printf("Jadi Rnilai rangkaian seri tersebut adalah %d \n",rs);
}
else
if(pilihan==3)
{
printf(“pilihan yang anda masukan salah”);
}
}
Getch0;
V. TUGAS AKHIR
1. Jelaskan fungsi dari (;) ({) (}) !
2. Sebutkan dan jelaskan 8 simbol dalam penulisan flowchart !
3. Buatlah flowchart untuk menghitung nilai arus dengan rumus I = q/t !
4. Secara garis besar terdapat 3 bagian utama dalam pembuatan flowchart, sebutkan dan
jelaskan bagian tersebut !
MODUL II
STRUKTUR BAHASA C
I. TUJUAN
a. Praktikan dapat memahami Struktur Dasar Bahasa C
b. Praktikan dapat mengenal dan memahami tipe data yang ada dalam bahasa C
c. Praktikan dapat memahami variable, aturan penamaannya dan pendeklarasainnya
d. Praktikan dapat memahami format data input dan output
II. TEORI
2.1 TIPE DATA
Tipe data merupakan bagian program yang paling penting karena tipe data
mempengaruhi setiap instruktur yang akan dilaksanakan oleh komputer. Misalnya saja
5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5
dan 2 bertipe integer maka akan menghasilkan nilai 2. Namun jika keduanya bertipe
float maka akan menghasilkan nilai 2..5000000. Pemilihan tipe sata yang tepat akan
membuat proses operasi data menjadi lebih efisien dan efektif.
Dalam bahasa C terdapat tujuh tipe data dasar, yaitu :
Tipe
No Ukuran Range (Jangkauan) Format Keterangan
Data
1 Char 1 byte -128 s/d 127 %c Karakter/String
2 Oktadesimal %o Bilangan Oktadesimal
3 Int 2 byte -32768 s/d 32767 %i, %d Integer/Bilangan Bulat
4 Hexadesimal %x Bilangan Hexadesimal
5 Float 4 byte -3.4E-38 s/d 3.4E+38 %f float/Bilangan pecahan
6 Void - - - Tidak bertipr data
7 Double 8 byte -1.7E-308 s/d 1.7E+308 %lf Pecahan presisi ganda
2.2 KONSTANTA
Konstanta adalah suatu nilai yang sifatnya tetap, misal angka ‘1’ adalah angka ‘1’
bukan angka ‘2’. Contoh lain adalah huruf ‘a’ adalah ‘a’ bukan ‘b’ atau yang lainnya.
Sebagai ilustrasi, kita lihat a=2, ‘a’ disini bukan lagi merupakan konstanta. Karena
pada saat ini ‘a’ bernilai 2 dan pada kesempatan lain bias saja ‘a’ bernilai 3 atau 100.
Jadi ‘a’ disini terlepas dari hakekat artinya (‘a’ adalah ‘a’) dalam hal ini ‘a’ bukan lagi
konstanta, melainkan suatu variable.
Secara garis besar konstanta dapat kita bagi atas dua bagian :
a. Bilangan (numerik)
i. Bilangan bulat (integer)
ii. Bilangan decimal berpresisi tunggal(floating point), dengan 2 tampilan :
1. Bentuk desimal, contoh : 1.23
2. Bentuk eksponen, contoh : 1.234e2 artinya 1.234 x 102
iii. Bilangan desimal berpresisi ganda, sama dengan point(ii) tapi dengan
ketelitian lebihtinggi.
b. Teks (string)
i. Data karakter
Data yang terdiri dari sebuah karakter (huruf), ditandai dengan tanda kutip
tunggal (‘), dapat berupa huruf kecil, huruf besar, angka, dan notasi lainnya.
contoh : ‘A’, ‘a’, ‘1’, ‘&’, ‘*’, dan lain-lain.
ii. Data string
Rangkaian dari beberapa karakter dan ditandai dengan tanda kutip ganda (“).
Contoh : “saya”, “17 tahun”, “081111111” dan lain-lain.
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program
berlangsung. Konstanta harus didefinisikan terlebih dahulu diawal
program.Konstanta dapat bernilai integer, pecahan, karakter dan string.
Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’.
Selain itu, bahasa c juga menyediakan beberapa karakter khusus yang disebut
karakter escape, antara lain :
\a : untuk bunyi bell (alert)
\b : mundur satu spasi
(backspace) \f : ganti halaman
(form feed)
\n: ganti baris baru (new line)
\r: ke kolom pertama, baris yang sama (carriage
return) \v: tabulasi vertical
\0: nilai kosong (null)
2.3 VARIABEL
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu didalam proses program. Variabel digunakan bila Anda ingin bekerja dengan
data yang dapat berubah-ubah dari waktu ke waktu dan data tersebut ingin
ditempatkan pada lokasi memori yang sama. Variabel dapat kita andalkan sebagai
sebuah tempat penampungan data atau konstanta pada memori.Sedangkan nilai yang
selalu tetap, variabel dapat berubah-ubah.Sebuah variabel dapat mengandung data
yang berbeda pada saat yang berbeda.
Contoh :
Variable Konstant
a
c) Tidak boleh diawali dengan angka, contoh nama variabel yang salah:
100bilangan
2005_tahun
d) Hanya boleh terdiri dari abjad, bilangan dan tanda hubung( _ ) , contoh :
bilangan1
sum
hasil_bagi
e) Tidak boleh diawali dengan angka, contoh nama variabel yang salah:
100bilangan
2005_tahun
f) Tidak boleh menggunakan operator aritmatika (+-/#%), contoh variabel yang
salah :
min+nilai
gaji-pajak
nama/nim
g) Tidak boleh menggunakan karakter khusus, yaitu : ;, :, #, @, $, ^, !, &, dan
titik (.)., contoh variabel yang salah :
luas; segitiga
#perintah
tempat&tgllahir
h) Nama variabel tidak boleh menggunakan karakter khusu, yaitu : ;, :, #, @, $, ^,
!, &, dan titik (. ), contoh variabel yang salah :
nama lengkap
program keahlian
i) Jangan menggunakan nama fungsi atau perintah lain yang mempunyai arti
khusus dalam Turbo C (reserved word). Contoh nama variabel yang salah :
main
printf
return 0
j) Nama variabel boleh terdiri dari reseved word yang digabung dengan kata
lain, contoh :
main1
printf_karakter
b. Variabel Teks:
i. Karakter terdiri dari 1 huruf, angka, atau simbol
ii. String terdiri dari beberapa karakter
2.4 DEKLARASI
Sebelum sebuah variabel digunakan, variabel tersebut harus “diperkenalkan” lebih
dahulu kepada Turbo C. Deklarasi diperlukan bila kita akan menggunakan pengenal
(identifier) alam program. Identifier dapat berupa variabel , konstanta dan fungsi.
2.5 OPERATOR
2.5.1 Operator Penugasan
Operator penugasan (Assignment operator) dalam bahasa C berupa tanda sama
dengan (“=”).
Contoh :
nilai = 80;
A= x*y;
Artinya : variabel “nilai” diisi dengan 80 dan variabel “A” diisi dengan hasil perkalian
anatara x dan y.
2.6 Komentar
Komentar program hanya diperlukan untuk memudahkan pembacaan danpemahaman
suatu program (untuk keperluan dokumentasi program). Dengan kata lain, komentar
program hanya merupakan keterangan atau penjelasan program. Untuk memberikan
komentar atau penjelasan dalam bahasa C digunakan pembatas /* dan */ atau
menggunakan tanda // untuk komentar yang hanya terdiri dari satu baris. Komentar
program tidak akan ikut diproses dalam program (akan diabaikan).
2.7.2 Gets()
Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat
digunakan untuk memasukkan data numerik.Harus diakhiri dengan penekan tombo
enter Cursor secara otomatis akan pindah baris tidak memerlukan penentu format.
2.7.3 getchar()
Fungsi getchar() digunakan untuk membaca data yang bertipe karakterHarus diakhiri
dengan penekanan tombol enter Karakter yang dimasukkan terlihat pada layar
Pergantian baris secara otomatis
2.7.4 getch() dan getche()
Fungsi getch() dan getche() digunakan membaca data karakterKarakter yang
dimasukkan tidak perlu diakhiri dengan penekanan tombol enter Tidak memberikan
efek pergantian secara otomatisJika menggunakan fungsi getch() karakter yang
dimasukkan tidak akan ditampilkan pada layar sehingga sering digunakan untuk
meminta input berupa password. Sedangkan pada getche() karakter yang
dimaksudkan akan ditampilkan pada layar.
CATATAN :
Jika terdapat beberapa input(memasukkan data)sekaligus , maka sebaiknya
ditambahkan fungsi fflush(stdin); setelah fungsi scanf(). Fungsi fflush
(stdin)berfungsi mengahapus buffer di dalam alat I/O.
III. PROGRAM
Contoh program tipe data
#include <stdio.h>
#include <conio.h>
void main();
{
int tegangan_1_fasa;
float phi;
char v_kali_i;
double phi_1;
clrscr();
Printf("=====================================");
Printf("\nProgram penggunaan tipe data");
printf("\n=====================================\n");
tegangan_1_fasa =220;
phi=3.14;
v_kali_i='p';
phi_1 =3.14;
printf("Nilai dari tegangan_1_fasa adalah :%d\n",tegangan_1_fasa);
printf("Nilai dari phi adalah :%f\n",phi);
printf("Nilai dari v x i adalah :%c\n",v_kali_i);
printf("Nilai dari phi adalah :%lf\n",phi_1);
getch();
}
#include <stdio.h>
#include <conio.h>
main();
{
printf("=====================================");
printf("\nProgram Yang Menampilkan Value Konstan String");
printf("\n=====================================\n");
putchar('L');
putchar('I');
putchar('S');
putchar('T');
putchar('R');
putchar('I');
putchar('k');
printf("\n\n=====================================");
printf("\nProgram Yang Menampilkan Value Konstan Integer");
#include <stdio.h>
#include <conio.h>
main()
{
printf("\n\n=====================================");
printf("\nPerbedaan Daya Listrik Antara Kost Kahfi dan Kost Kintan");
printf("\n=====================================\n");
printf("\nKost A: ");
printf("\n1 Kipas Angin = %d Watt ",60);
printf("\n1 Rice Cooker = %d Watt ",400);
printf("\n2 Lampu = %d Watt ",2*18);
printf("\nKost B: ");
printf("\n1 AC = %d Watt ",820);
printf("\n1 Rice Cooker = %d Watt ",400);
printf("\n2 Lampu = %d Watt ",2*18);
printf("\n\nTotal Daya Kost A : %d",60+400+(2*18));
printf("\nTotal Daya Kost B : %d",820+400+(2*18));
printf("\nSelisih Total Daya antara kost A dan B: %d",1256-496);
printf("\nRata-Rata Total Daya antara kost A dan B: %.0f",(1256.0+496.0) /2.0);
getch();
return 0;
}
printf("\nArus v1 : %d ",Arus);
Arus=x++;
printf("\nArus v2 : %d ",Arus);
}
#include"stdio.h"
#include"conio.h"
main()
{
char nama[20];
printf("Masukan nama alat pengukur arus : ");
gets(nama);
printf("Nama alat pengukur arus adalah %s",nama);
getch();}
#include"stdio.h"
#include"conio.h"
main()
{
char huruf1,huruf2;
printf("Masukan simbol tegangan : ");
huruf1=getche();
printf("\njawaban yang anda masukan adalah %c\\n",huruf1);
printf("\nMasukan simbol daya : ");
huruf2= getch();
printf("\njawaban yang anda masukan adalah :%%c",huruf2);
getch();}
V. TUGAS AKHIR
1. Apa perbedaan dari konstanta dan variable berikan masing masing contohnya…!
2. Apa perbedaan dari string dan char ?
3. Apa perbedaan dari fungsi scanf() dan gets() ?
4. Apa perbedaan dari fungsi getche() dan getch() ?
5. Jelaskan perbedaan dari operator (%) dan operator (/) berikan masing masing
contohnya…!
MODUL III
STRUKTUR BAHASA C
I. TUJUAN
b. Membuat dan memahami proses perulangan dengan : struktur while ,do…while,for.
c. Membuat dan memahami proses percabangan dengan : struktur if, if….else,nested if,
switch….case.
II. TEORI
2.1 PERCABANGAN
Percabangan bersyarat memungkinkan anda untuk memilih suatu pilihan dari
beberapa pilihan yang disediakan berdasarkan kondisi yang sesuai. Kondisi dapat
diperoleh dengan operasi perbandingan maupun operasi logika.
2.1.1. Pernyataan IF
Pernyataan IF membagi suatu alur proses menjadi dua cabang , berdasarkan
persyaratan yang diberikan. Cabang pertama dijalankan bila persyaratan
terpenuhi,sedangkan cabang yang kedua akan dipilih bila persyaratan tidak dipenuhi.
Bentuk dasar pernyataan if adalah:
If (ekspresi kondisional)
Statemen ;
Penjelasana diatas jika hanya terdiri dari satu statement, Bagaimana Jika lebih dari 1 ?
Jika lebih dari satu makan statemennya harus berada dalam { }.
If (ekspresi kondisional)
{
Statemen 1
……..
Statemen_n
}
Penjelasannya jika ekspresi kondisional di dalam tanda kurung benar, maka statemen
atau grup statemen dibawahnya akan dieksekusi, sebaliknya jika ekspresi
kondisionalnya salah maka statemen/grup statemen di bawahnya tidak akan
dieksekusi (fungsi if tidak menghasilkan apa-apa). Ekpresi kondional adalah ekspresi
yang menjadi dasar bagi pernyataan yang berkondisi (selau dipakai pada fungsi if),
yang memberikan nilai benar atau salah.
If(syarat)
{
…………………perintah;
…………………perintah;
}
else
{
……………perintah;
……………perintah;
}
If(syarat)
{
…..perintah;
}
else
If(syarat)
{
…..perintah;
}
else
{
….perintah;
}
...perintah;
...perintah;
break;}
2.2 . PERULANGAN
Dalam Bahasa C tersedia suatu fasilitas yang digunakan untuk melakukan proses yang
berulang ulang sebanyak keinginan kita. Misalnya saja,bila kita menginginkan
menginput dan mencetak bilangan satu sampai dengan 100 bahkan 1000 tentunya kita
akan merasa kesulitan namun dengan struktur perulangan proses kita tidak perlu
menuliskan perintah sampai 100 atau 1000 kali cukup dengan beberapa perintah saja.
2.2.1. Struktur Perulangan WHILE
Pernyataan while merupakan salah satu pernyataan yang berguna untuk memproses
suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while
memungkinkan statement-statement yang ada didalamnya tidak dilakukan sama
sekali. Perulangan while merupakan perulangan dengan pengecekan kondisi
dilakukan di awal perulanggan.
Bentuk umum daristruktur perulangan while adalah:
Inisialisasi;
while (kondisi)
{
Pernyataan;
Langkah;
}
Seperti yang telah dijelaskan diatas bahwa kondisi while pengujian kondisi dilakukan
pada awal, sehingga apabila kondisi bernilai salah maka pernyataan tidak akan
dijalankan sama sekali.
2.2.2. Struktur Perulangan DO…WHILE…
Pernyataan do while mirip seperti pernyataan while, hanya saja pada struktur
perulangan do while pengecekan kondisi perulangan dilakukan di akhir perulangan.
III. PROGRAM
Contoh Program IF
Menentukan tarif harga listrik per 1 Kwh
#include<stdio.h>
#include<conio.h>
main()
{
int daya;
printf("menentukan tarif harga listrik per 1 Kwh");
printf("\nMasukkan Daya yag dipakai dirumah anda : ");
scanf("%d",&daya);
if(daya<=450)
printf("--------------------------------------\n");
printf("tarif listrik per Kwh anda : Rp. 1000");
}
getch0;
}
getch();
}
else;
{
printf("jawaban anda salah");
}
getch();
}
Menghitung 2 hambatan dipasang seri dan parallel
#include<stdio.h>
#include<conio.h>
main()
{
char kondisi;
float r1,r2,rs,resistor1,resistor2,rp;
printf("Menghitung 2 hambatan dipasang seri dan parallel\n");
printf("s = Seri\n");
printf("p = Parallel\n");
printf("\nPilih kondisi hambatan : ");
kondisi=getche();
if(kondisi==s||kondisi==S)
{
printf("\n-------------------------------------------------\n");
printf("Menghitung 3 Hambatan dipasang secara seri\n");
printf("hambatan 1 : ");
scanf("%f",&r1);
printf("hambatan 2 : ");
scanf("%f",&r2);
rs=r1+r2;
printf("Nilai Hambatan Penggantinnya : %.2f ohm",rs);
}
else
printf("\n-------------------------------------------------\n");
printf("Menghitung 2 Hambatan dipasang secara parallel\n");
printf("hambatan 1 : ");
scanf("%f",&resistor1);
printf("hambatan 2 : ");
scanf("%f",&resistor2);
rp=(resistor1*resistor2)/(resistor1+resistor2);
printf("Nilai Hambatan Penggantinnya : %f ohm",rp);
}
getch();
}
main()
{
int fasa;
float tegangan1,arus1,daya1,tegangan3,arus3,daya3;
printf("Menghitung daya 3 fasa dan 1 fasa");
printf("\nPilih sistem fasa : ");
scanf("%d",&fasa);
if(fasa==1)
{
printf("----------------------------------\n");
printf("Menghitung daya 1 fasa");
printf("\nMasukkan tegangan : ");
scanf("%f",&tegangan1);
printf("Masukkan Arus : ");
scanf("%f",&arus1);
daya1=tegangan1*arus1;
printf("Nilai dayanya adalah : %.2f watt",daya1);
}
else
{
if(fasa==3)
{
printf("----------------------------------\n");
printf("--------------------------------------\n");
printf("tarif listrik per Kwh anda : Rp. 2000");
}
getch();
}
case 2 :
printf("\nMenghitung Kuat Arus");
printf("\nMasukkan tegangan : ");
scanf("%f", &tegangan2);
printf("Masukkan Hambatan : ");
scanf("%f", &hambatan2);
arus2=tegangan2/hambatan2;
printf("\n Jumlah Arus yang berada pada rangkaian yaitu : %5.2f ampere\n\n",
arus2);
printf("=====================================================
==================");
break;
case 3 :
printf("\nMenghitung Hambatan");
printf("\nMasukkan tegangan : ");
scanf("%f", &tegangan3);
printf("Masukkan Arus : ");
scanf("%f", &arus3);
hambatan3=tegangan3/arus3;
printf("\n Jumlah hambatan yang berada pada rangkaian yaitu : %5.2f ohm\n\n",
hambatan3);
printf("=====================================================
==================");
break;
default:
printf("\nPilihan Yang Dimasukkan Salah..!!!!");
}
getch0;
}
printf("Hambatan %d : ",i);
scanf("%d",&hambatan);
i+;
total=total+hambatan;
{
printf("kapasitor %d : ",i);
scanf("%d",&kapasitor);
i++;
total=total+kapasitor;
while(i=jumlah);
printf("Nilai kapasitor pengganti parallelnya adalah : %d farad",total);
getch();
}
{
printf("%d, Sekolah Tinggi Teknik PLN\n",i);
}
getch();
}
Menginput nilai induktor dalam satuan hendry dan hambatan pengganti serinya
#include<stdio.h>
#include<conio.h>
main()
{
int i,induktor,jumlah,total;
total=0;
printf("Menginput nilai induktor dalam satuan hendry\n");
printf("------------------------------------------------\n\n");
printf("masukkan jumlah induktor : ");
scanf("%d",&jumlah);
printf("\n");
for(i=1;i<=jumlah;i++)
printf("induktor %d : ",i);
scanf("%d",&induktor);
total=total+induktor;
V. TUGAS AKHIR
1. Apa kegunaan dari instruksi break dan case ?
2. Apakah instruksi while dapat digantikan do while maupun for ? Jelaskan !
3. Apa yang dicetak dari program dibawah ini :
a. Jika nilai akhir diisi dengan 40 ? 50 ? 60 ? 70 ? 80 ? 90 ?
#include<stdio.h>
#include<conio.h>
main()
{
char grade;
int na;
printf(“ Nilai akhir : “);
scanf(“%d”,&na);
if(na>84);grade=’A’;
{
printf(“ Grade = %c ,grade);
}
Else
if(na>74&&na<85);grade=’B’;
{
printf(“ Grade = %c ,grade);
}
else
if(na>64&&na<75);grade=’C’;
{
printf(“ Grade = %c ,grade);
}
else
if(na>54&&na<65);grade=’D’;
{
printf(“ Grade = %c ,grade);
}
else
if(na<50);grade=’E’;
{
printf(“ Grade = %c ,grade);
}
getch();
}
MODUL IV
ARRAY DAN FUNGSI
I. TUJUAN
a. Memahami struktur array.
b. Memahami fungsi yang ada dalam header.
c. Membuat fungsi sendiri dan menggunakan fungsi tersebut dalam program.
II. TEORI
2.1. Array
Array merupakan kumpulan dari beberapa nilai data yang bertipe sama dalam urutan
tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array
ditunjukkan oleh suatu index. Diilihat dari dimensinya array terbagi menjadi array
dimensi satu, array dimensi dua dan array multi dimensi.
Deklarasi array :
Tipe_array nama_array[ukuran];
Contoh :
int nilai[5];
Contoh:
int x[3][4];
2.2.FUNGSI
Fungsi merupakan suatu bagian dari program yang dimaksudkan untuk mengerjakan
suatu tugas tertentu dan letaknya terpisah dari program yang memanggilnya. Fungsi
merupakan elemen utama dalam bahasa C karena bahasa C sendiri terbentuk dari
kumpulan fungsi fungsi. Dalam setiap program bahasa C, minimal terdapat saatu
fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-program C yang
terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan
memiliki struktur yang jelas( mempunyai readability yang tinggi) dan juga akan
menghindari penulisan bagian program yang sama. Dalam bahasa C fungsi dapat
dibagi menjadi dua,yaitu fungsi pustaka atau fungsi yang telah tersedia dalam turbo C
dan fungsi yang didefinisikan atau dibuat oleh programmer.
Beberapa Fungsi pustaka dalam C :
o Fungsi Opersai String(tersimpan dalam file string.h)
- strcpy():
berfungsi untuk menyalin suatu string asal ke variable string tujuan.
bentuk umum: strcpy(var_tujuan,string_asal);
- strlen():
berfungsi untuk memperoleh jumlah karakter dalam suatu string.
bentuk umum: strlen(string);
- strcat():
berfungsi untuk menambahkan string sumber ke bagian akhir dari string tujuan.
bentuk umum :strcat(tujuan,sumber);
- strupr();
digunakan untuk mengubah setap huruf dari suatu string menjadi huruf capital.
bentuk umum : strupr(string);
- strlwr():
digunakan untuk mengubah setuao huruf dari suatu string menjadi huruf kecil semua
bentuk umum :strlwr(string);
- strcmp();
digunakan untuk membandingkan dua buah string . hasil dari fungsi ini bertipe
integer dengan nilai:
- atoi();
digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer bentuk
umum : atoi(char x);
- div():
digunakan untuk menghitung hasil pembagian dan sisa pembagian Bentuk umum:
div_t div(int x,int y);
- max();
digunakan untuk menentukan nilai maksimal dua buah bilangan bentuk umum :
max(bilangan1,bilangan2);
- min():
digunakan untuk menentukan bilangan terkecil dari dua buah bilangan bentuk umum :
min(bilangan1,bilangan2);
2.2.1. Membuat Fungsi Sendiri
Deklarasi fungsi sebelum digunakan , suatu fungsi harus dideklarasikan dan
didefinisikan terlebih dahulu Bentuk umum pendeklarasian fungsi adalah :
Tipe_fungsi nama_fungsi(parameter_fungsi);
Sedangkan bentuk umum pendefinisian fungsi adalah:
Tipe_fungsi nama_fungsi(parameter_fungsi)
{
Statement;
Statement;
…..
…..
}
Hal hal yang perlu diperhatikan dalam penggunaan fungsi:
• Jikalau tipe fugnsi tidak disebutkan maka akan dianggap sebagai fungsi dengan
nilai keluaran bertipe integer.
• Untuk fungsi yang memiliki keluaran bertipe bukan integer,maka diperlukan
pendefinisian penentu tipe fungsi.
• Untuk fungsi yang tidak mempunyai nilai keluaran maka dimasukkan ke dalam
tipe void Pernyataan yang diberikan untuk memberikan nilai akhir fungsi berupa
pernyataan return Suatu fungsi dapat menghasilkan nilai balik bagi fungsi
pemanggilnya.
III. PROGRAM
Contoh program array dimensi 1
#include<stdio.h>
#include<conio.h>
void main();
{
int index,nilai[10];
clrscr();
printf(“Input nilai 10 daya pabrik : “ );
for(index=0;index<10;index++)
{
printf(“Nilai %i : ”,index+1):
scanf(“%i”,&nilai[index]);
}
printf(“Nilai daya pabrik yang telah diinput “);
for(index=0;index<10;index++);
{
printf(“%5.0i”,nilai[index]);
}
getch();
}
{
strcpy(jenjang,”Strata-1”);
}
else
{
if(nim[4]==’7’)
{
strcpy(jenjang,”Diploma-3”);
}
else
printf(“Anda salah memasukkan NIM.Coba periksa lagi!”);
}
printf(“<< BOLEH UGA NIH>>”);
printf(“<< Data Mahasiswa STT-PLN>>”);
printf(“Nama : %s”,nama);
printf(“NIM : %s”,nim);
printf(“Jurusan:%s”,jurusan);
printf(“Jenjang:%s”,jenjang);
getch();
}
}
}
printf("\n");
}
getch ();
}
for(i=0;i<2;i++){
for(j=0;j<8;j++){
for(k=0;k<8;k++)
if(data_huruf[i][j][k])
putchar(‘\xDB’);
else
putchar(“ “);
puts(“ “ );}
puts( “ “);}
getch();
else if(islower(karakter))
{
puts(“adalah huruf kecil”);
printf(“huruf besarnya adalah: %c”,toupper(karakter));
}
else if(ifdigit(karakter))
{
puts(“adalah karakter digit”); else
puts(“bukan huruf besar,huruf kecil atau digit); getch();
}
MODUL V
OPERASI FILE, STRULTUR DAN MANIPULASI BIT
I. TUJUAN
a. Memahami operasi file, struktur, manipulasi bit, dan konstanta enumerasi
b. Membaca File : membuka dan menutup file
c. Membaca dan menulis ke dalam file
II. TEORI
2.1 OPERASI FILE
File adalah sebuah organisasi dari sejumlah record. Masing-masing record bisa terdiri
dari satu beberapa field. Setiap field terdiri dari satu atau beberapa byte.
2.1.1 MEMBUKA FILE
Untuk membuka atau mengaktifkan file, fungsi yang digunakan adalah fungsi fopen().
File dapat berupa file biner atau file tesk. File biner adalah file pola penyimpanan di
dalam disk dalam bentuk biner, seperti bentuk pada memori (RAM) computer . File
tesk adalah file yang pola penyimpanan datanya dalam bentuk karakter . Penambahan
yang perlu dilakukan untuk menentukan mode teks atau biner dalam bentuk karakter.
Penambahan yang perludilakukan untuk menentukan mode teks atau biner adalah t
file teks dan b untuk biner. Prototype fungsi fopen() ada di header fungsi stdio.h
Bentuk umum :
file *fopen(char*namafile, char *mode)
Keterangan :
Namafile adalah nama dari file yang akan dibuka/diaktifkan. Mode adalah jenis
operasi file yang akan dilakukan terhadap file.
Jenis-jenis operasi file :
r : menyarankan file hanya dapat dibaca (file harus sudah ada)
w : menyatakan file baru akan dibuat/diciptakan (file yang sudah ada akan
dihapus)
a : Untuk membuka file yang sudah ada dan akan dilakukan proses penambahan
data (Jika file belum ada, otomatis akan dibuat)
r+ : untuk membuka file yang sudah ada dan akan dilakukan proses pembacaan
dan penulisan.
w+ : untuk membuka file dengan tujuan untuk pembacaan atau penulisan . Jika file
sudah ada isinya kan dihapus.
a+ : untuk membuka file, dengan operasi yang akan dilakukan berupa perekaman
maupun pembacaan. Jika file sudah ada, isinya akan dihapus
Contoh : pf= fopen(“COBA.TXT”, “w”);
2.2. STRUCT
Struct adalah suatu struktur data yang menggabungkan beberapa data yang berbeda
tipe (heterogen) tetapi berkaitan. Misalnya data mengenai NIM, Nama, dan IPK
seorang mahasiswa. Ketiga data ini mempunyai tipe data yang berbeda tetapi masih
berhubungan yaitu data akademik seorang mahasiswa. Dengan menggunakan struct
maka data ini bisa diolah per elemen (per field) atau secara keseluruhan (per struct,
per record).
2.2.1 Pointer to strukture
Sebagaimana pointer dapat mengacu ke alamat data tunggal (int, char, float) dan
jamak(array),pointer juga dapat mengacu ke struc. Pengaksesan field satu struct
melaluipointer yang mengacu ke struktur ini dapat dilakukan dengan menggunakan
indirection operator* dan indirect membership operator->.
Struct t_ujian
{
Char nim[11];
Char mtk[26];
Int nilai;
};
Void main(){
Struct t_ujian ujian, *p_ujian;
....
P_ujian=&ujian;
Scanf(“%s”,&(*p_ujian).nim);
Flushall(); gets(p_ujian->mtk);
Scanf(“%d”,&(*p_ujian).nilai);
Printf(“%s %s %d”, ujian.nim, p_ujian->mtk,(*p_ujian).nilai);
}
Operator-operator Bitwise
2.3.2.KODE ASCII
Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard
Code for Information Interchange) merupakan suatu standar internasional dalam kode
huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal,
contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat
komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki
komposisi bilangan biner sebanyak 7 bit. Namun, ASCII disimpan sebagai sandi 8 bit
dengan menambakan satu angka 0 sebagai bit significant paling tinggi. Bit tambahan
ini sering digunakan untuk uji prioritas. Karakter control pada ASCII dibedakan
menjadi 5 kelompok sesuai dengan penggunaan yaitu berturut-turut meliputi logical
communication, Device control, Information separator, Code extention, dan physical
communication. Code ASCII ini banyak dijumpai pada papan ketik (keyboard)
computer atau instrument-instrument digital.
Jumlah kode ASCII adalah 255 kode. Kode ASCII 0..127 merupakan kode ASCII
untuk manipulasi teks; sedangkan kode ASCII 128..255 merupakan kode ASCII untuk
manipulasi grafik. Kode ASCII sendiri dapat dikelompokkan lagi kedalam beberapa
bagian:
Kode yang tidak terlihat simbolnya seperti Kode 10(Line Feed), 13(Carriage Return),
8(Tab), 32(Space)
Kode yang terlihat simbolnya seperti abjad (A..Z), numerik (0..9), karakter khusus
(~!@#$%^&*()_+?:”{})
Kode yang tidak ada di keyboard namun dapat ditampilkan. Kode ini umumnya untuk
kode-kode grafik.
Dalam pengkodean kode ASCII memanfaatkan 8 bit. Pada saat ini kode ASCII telah
tergantikan oleh kode UNICODE (Universal Code). UNICODE dalam
pengkodeannya memanfaatkan 16 bit sehingga memungkinkan untuk menyimpan
kode-kode lainnya seperti kode bahasa Jepang, Cina, Thailand dan sebagainya.
Pada papan keyboard, aktifkan numlock, tekan tombol ALT secara bersamaan dengan
kode karakter maka akan dihasilkan karakter tertentu. Misalnya: ALT + 44 maka akan
muncul karakter koma (,). Mengetahui kode-kode ASCII sangat bermanfaat misalnya
untuk membuat karakter-karakter tertentu yang tidak ada di keyboard.
2.3.3. KONSTANTA
Konstanta adalah pengenal (identifier) yang nilainya tetap selama program
berjalan/dieksekusi. Cara untuk mengubahnya hanya melalui source code-nya saja
seperti halnya variabel, konstanta juga memiliki tipe. Penulisan konstanta mempunyai
aturan tersendiri, sesuai dengan tipe masing-masing.
1. Konstanta karakter misalnya ditulis dengandiawali dan diakhiri dengan tanda petik
tunggal, contohnya : ‘A’ dan ‘@’.
2. Konstanta integer ditulis dengan angka. Contohnya : –1, 2.5 dan 32767.
3. Konstanta real (float dan double) bias mengandung pecahan (dengan tanda berupa
titik) dan nilainya bisa ditulis dalam bentuk eksponensial (menggunakan tanda e),
contohnya 27.5f (untuk tipe float) atau 27.5 (untuk tipe double) dan 2.1e+5
(maksudnya 2,1 x 105 ).
4. Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petikganda (“), contohnya : “Pemrograman Dasar C”.
III. PROGRAM
Contoh program Menulis Karakter
#include <stdio.h>
#include <conio.h>
#Define CTRL_Z 26
main()
{
file *pf;
Char kar;
printf("masukan Rumus Listrik yang anda ketahui : \n")
IF((pf=fopen("rumus.TXT", "w"))==NULL)
{
puts(File tak dapt diciptakan !\r\n");
}
while((kar=getche()) !=CTRL_Z))
putc(kar, pf);
fclose(fp);
}
};
void main()
{
Struct t_koord tA, tB;
float dist;
clrscr();
printf("Titik A : \n");
printf("posisi x dan y?"); scanf("%d %d", &tA.x, &tA.y):
printf("\n Titik B: \n");
printf ("posisi x dan y?"); scanf("%d%d", &tB.x, &tB.y));
dist= sqrt(pow((tA.x-tB.x), 2) + paw ((tA.y-tB.y),2));
printf("/n Jarak A dan B = %.2f unit",dist);
}}
#include <stdio.h>
#include <conio.h>
main ()
{
unsigned NILAI_1 = 5; Unsigned NILAI_2 = 4;
unsigned A, B, C
A = NILAI_1 | NILAI_2;
B = NILAI_1 & NILAI_2;
O = NILAI_1 ^ NILAI_2;
printf ("A = %u, B = %d, C = &u\n", A, B, C);
getch();
}
Contoh 2
#include <stdio.h>
#include <conio.h>
main ()
{
unsigned x=8, x1 = 8;
printf ("NILAI x AWAL = %d\n",, x);
x = x << 2;
x1 = X1 >> 2;
printf ("NILAI x akhir = %d\n", x);
printf (‘NILAI x akhir = %d’, x1);
getch();
}}
Main()
{
unsigned int angka,x,y;
angka=50;
x=angka << 2;
y=angka >,> 2;
clrscr();
printf("Angka : %5u : %x\n",angka,angka);
printf("x=angka << 2 : %5u : %x\n",x,x);
printf("y=angka >> 2 : %5u : %x\n",y.y);
getch();
return0;
}}
Contoh 2
#include <stdio.h>
#include <conio.h>
main()
{
khar c;
integer i;
float f;
f=65.9;
i=f;
c=I;
printf("F : %f\n",f);
printf("I : %d\n",i);
Printf("C : %c\n",c);
getch();
return 0;}
float radius=10,keliling,luas;
keliling=2*PI*radius;
luas=PI*radius*raduis;
printf("Perhitungan Lingkaran\n”);
printf("======================\n");
printf("Radius : %6.2f\n",radius);
printf("Keliling : %6,2f\n",keliling);
printf("Luas : %6.2f\n",luas);
getch(“ ”);
return 0;
}
};
mahasiswa mahasiswa1; //mendeklarasikan variabel peg1 bertipe pegawai
printf("Masukkan nama anda :");
scanf("%s",&&nama);
mahasiswa1.jurusan=elektro;
mahasiswa1.jenjang=starta;
//Menampilkan nilai yang diisikan kelayar
printf("nama mahasiswa: %s\n",nama);
printf("jurusan: %d\n",mahasiswa1.jurusan);
printf("jenjang: %d\n",mahasiswa1.jenjang);
getch();
}
V. TUGAS AKHIR
1. Jelaskan penggunaan fopen() dan fclose() pada program yang Anda gunakan!
2. Jelaskan tentang program struct yang mempunyai proses berikut :
Dist= sqrt(pow((tA.x-tB.x), 2) + pow ((tA.y-tB.y),2));
3. Jelaskan tentang proses program konstanta Desimal, Octal,dan Hexa Desimal
pada modul!
4. Jelaskan tentang void dectobin, unsigned, dan enum!
5. Betulkan program salah dibawah ini serta betulkan hasil output yg benar
seperti gambar dibawah :