KARTU PRAKTEK
LABORATORIUM ALGORITMA DAN PEMROGRAMAN
Pas Foto
NAMA : 3x4
NIM :
KELOMPOK :
PRAKTIKUM :
JURUSAN :
PROG. STUDI :
SEMESTER :
CATATAN :
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
………………………………………
Jakarta, ...............................,20..
Praktikan
(.......................................)
KATA PENGANTAR
Puji syukur kepada Allah SWT yang telah menyebarkan berjuta-juta nikmat kesehatan,
kesempatan, serta ketabahan kepada penulis dalam menyelesaikan modul praktikum ini, yang
merupakan kegiatan dari Kerja Laboratorium untuk menunjang kemampuan mahasiswa dalam
menerapkan teori secara aplikatif. Dalam menyelesaikan modul ini penulis tidak luput dari
kesulitan, namun berkat kesungguhan, ketekunan, ketabahan, serta dukungan dan bimbingan
dari teman-teman maupun semua pihak baik secara langsung maupun tidak langsung, akhirnya
dapat diselesaikan dengan baik. Kami menyadari sepenuhnya bahwa modul ini masih belum
dapat memenuhi seluruh harapan, sehingga beberapa perbaikan dan penyempurnaan masih
diperlukan. Oleh karena itu, saran-saran perbaikan dan masukan untuk menyempurnakan
modul ini, dalam waktuwaktu berikutnya, sangat diharapkan. Akhirnya, kami mengucapkan
terima kasih kepada semua pihak yang telah memberikan sumbangan terhadap penulisan modul
ini. Harapan kami agar modul ini dapat memberikan manfaat bagi perluasan wawasan kita
bersama mewujudkan peranan pendidikan dalam mengembangkan kualitas Sumber Daya
Manusia Indonesia menghadapi era persaingan globalisasi di masa mendatang.
Penulis
DAFTAR ISI
KATA PENGANTAR.....................................................................................................................3
DAFTAR ISI ..................................................................................................................................4
TATA TERTIB ...............................................................................................................................6
PENULISAN LAPORAN ...............................................................................................................7
SUSUNAN LAPORAN ..................................................................................................................7
PENDAHULUAN ........................................................................................................................12
MODUL I .....................................................................................................................................14
PENGENALAN BAHASA C DAN TIPE DATA DASAR ...........................................................14
MODUL II ....................................................................................................................................23
FUNGSI DAN OPERATOR .........................................................................................................23
MODUL III...................................................................................................................................36
PERCABANGAN DAN PERULANGAN ....................................................................................36
MODUL IV ..................................................................................................................................47
FLOWCHART DAN STRUKTUR PENULISAN .........................................................................47
MODUL V ....................................................................................................................................61
TIPE DATA TURUNAN (ARRAY, STRUCT DAN POINTER) ..................................................61
MODUL VI ..................................................................................................................................73
TIPE DATA ENUMERASI DAN OPERASI FILE .......................................................................73
MODUL VII .................................................................................................................................87
MANIPULASI BIT.......................................................................................................................87
1. Praktikan WAJIB memakai pakaian rapih dan sopan (kemeja berkerah, sepatu bertali
+ kaos kaki) dan jas laboratorium (digunakan sebelum memasuki laboratorium) serta
WAJIB membawa modul, flashdisk, tugas rumah, dan cicilan laporan (teori tambahan
dan tugas akhir) pada modul yang akan kalian praktikumkan.
3. Praktikan harus mempersiapkan diri dengan baik sebelum dan pada saat mengikuti
praktikum.
4. Sebelum praktikum dimulai, praktikan WAJIB mengikuti tes awal (pre-test). Nilai tes
awal minimal 50. Nilai tes awal <50 praktikan tidak bisa mengikuti praktikum.
6. Instruktur lab tidak akan memberikan jadwal pengganti/susulan jika praktikan tidak
mengikuti praktikum kecuali sudah mendapatkan izin dari instruktur lab. Jika
berhalangan hadir, harus ada pemberitahuan maks. 2 hari sebelum praktikum.
Praktikan mengisi lembar izin pada jadwal yang disediakan instruktur lab
yang bersangkutan dan mendapat persetujuan dari kepala laboraturium.
Instruktur lab berhak memberi sanksi jika ketentuan yang ada tidak
dipenuhi.
1) Laporan ditulis tangan dengan rapi dan menggunakan tinta warna biru pada kertas A4
putih 70 gram dengan margin : kiri 3 cm, kanan 1.5 cm, atas 2 cm, bawah 2 cm, Font :
Times new Roman, Justify (rata kanan kiri)
2) Praktikan Wajib Mengumpulkan cicilan laporan H-2 praktikum.
3) Acc Laporan + Jurnal (Hard File) maksimal 3 hari setelah praktikum terakhir.
4) Laporan dijilid SPIRAL PLASTIK dengan cover laporan menggunakan KERTAS
BUFFALO SESUAI WARNA MAP.
5) Laporan diserahkan pada saat presentasi sesuai jadwal yang telah diberikan olehasisten.
6) 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.
7) Joki = E
Susunan Laporan
a) Cover
b) Isi Laporan per modul :
Judul + Tujuan (1 halaman di print)
Teori Tambahan (maksimal 5 lembar print & gambar maksimal 3)
Teori Modul (print)
Program (diprint & disusun permodul)
Analisa (minimal setengah lembar , diketik & ditulis perprogram)
Tugas Akhir(soal di print jawaban ditulis tangan dan disusun permodul)
Kesimpulan (ditulis tangan dan disusun permodul)
c) Tugas Program (diprint & tidak dianalisa)
1. MEMBUAT FOLDER
Klik folder Prak Algo pilih Folder kelas buat folder baru dengan format : nim_Nama
lengkap
2. MEMBUKA APLIKASI DEV C++
Klik aplikasi Dev C++ yang tersedia pada desktop
3. MEMBUAT FILE BARU
Klik File klik New Source File
Compile (F9) program untuk memeriksa apakah terdapat kesalahan penulisan atau tidak.
Kemudian Run (F10) untuk menjalankan program yang telah di compile. Untuk kemudahan
dapat melakukan keduanya bersamaan Compile & Run (F11).
PENGENALAN BAHASA C
Sejarah bahasa C pada awalnya merupakan salah satu bahasa pemrograman komputer yang
Dibuat pada tahun 1972 oleh Dennis Ritchie untuk Sistem Operasi Unix di Bell Telephone
Laboratories. Sebelum Bahasa C dikembangkan, terdapat bahasa-bahasa awal terbentuknya
bahasa C. Apa aja tuh??
I. TUJUAN
a. Praktikan dapat membuat dan memahami struktur dari penulisan Bahasa C
b. Praktikan dapat mengenal dan memahami beberapa tipe data dasar yang terdapat pada
bahasa C.
c. Praktikan dapat memahami variable, aturan penamaannya dan pendeklarasainnya.
d. Praktikan dapat memahami konstanta, aturan penamaanya dan pendeklarasiannya.
II. TEORI
1. Bagian include
#include berfungsi untuk mengimpor fungsi-fungsi yang sudah didefinisikan pada header file.
Header file adalah file yang berisi definisi fungsi yang sudah dibuat. Tujuannya agar bisa
digunakan pada program C yang lainnya.
Seperti pada contoh diatas kita mengimpor file stdio.h dimana file ini berisi deklarasi fungsi
dasar yang kita butuhkan untuk membuat program, seperti printf(). Printf() adalah fungsi
yang digunakan untuk mencetak.
Tipe contoh
No Ukuran Range (Jangkauan) Format Keterangan
Data
1 Char 1 byte -128 s/d 127 %c .%s Karakter/String ‘A’
2 Int 4 byte -2,147,483,648 s/d %i Integer 100
2,147,483,647
Float/Bilangan 0.123456
-3.4E-38 s/d
3 Float 4 byte %f pecahan (6 angka
3.4E+38
dibelakang koma)
Bilangan Pecahan 0.0123456789
-1.7E-308 s/d
4 Double 8 byte %lf Komplek (lebih dari
1.7E+308
float)
int main
int a;
char b;
float c;
return 0;
}
Penjelasan: Disini perintah int a akan membuat variabel a dengan tipe data int. Artinya variabel
a hanya bisa diisi dengan angka bulat. Variabel b bertipe char, sehingga hanya bisa menampung
huruf. Sedangkan variabel c bertipe data float yang hanya bisa diisi dengan angka pecahan.
Nama Variabel
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu
di dalam proses program. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan
aturan sebagai berikut :
• Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. Bahasa C
bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda.
• Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang
termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, =
dsb .
Seperti halnya konstanta, variabel juga terbagi menjadi dua kelompok, yaitu:
a) Variabel Numerik :
1. Bilangan bulat (integer) menampung bilangan berkisar antara 32768 hingga 32768.
Pendeklarasian Variabel
Untuk mengenalkan suatu fungsi pada program maka diperlukan pemanggilan variabel.
Bentuk umum pendeklarasian suatu variabel adalah:
Tipe data_ nama_variabel;
Contoh :
int x; //Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variabel bertipe char float nilai; // Deklarasi variabel bertipe float
double beta; // Deklarasi variabel bertipe double int array[5][4]; // Deklarasi array bertipe integer
char
*p; //Deklarasi pointer p bertipe char *
Keterangan : Pada contoh-contoh diatas kita mendeklarasikan sebuah variabel dengan beberapa
tipe data. Melalui cara ini, variabel tersebut sudah dapat digunakan untuk menampung nilai-nilai
sesuai dengan fungsi dari pemanggilan tipe datanya.
1. Bilangan (numerik)
i. Bilangan bulat (integer)
ii. Bilangan decimal berpresisi tunggal (floating point), dengan 2 tampilan :
- Bentuk desimal, contoh : 1.23
Program 1.2
#include <stdio.h> int
main()
{
char huruf;
huruf = 'A';
printf("Huruf Awalan dari Algoritma adalah: %c", huruf);
printf("\n");
return 0;
}
Program 1.3
#include <stdio.h> int
main()
{
char karakter1, karakter2;
printf(“Input 2 karakter bebas\n”);
printf(“========================== \n”);
printf(“\n”);
printf(“karakter pertama: “);
scanf(“ %c”,&karakter1);
printf(“Karakter kedua: “);
scanf(“ %c”,&karakter2);
printf(“\n”);
printf(“karakter yang diinput adalah: %c %c”, karakter1, karakter2);
printf(“\n”);
return 0;
}
Program 1.4
#include<stdio.h>int
main()
{
int v,i,r;
SMART ELECTRONIC SYSTEM LABORATORY Page 21
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
printf("======HUKUM OHM======\n\n");
printf("Masukkan nilai arus: "); scanf("%d",&i);
printf("Masukkan nilai hambatan: "); scanf("%d",&r);
v=i*r;
printf("Jadi nilai Tegangan adalah: %d ",v);
return 0;
}
Program 1.5
#include <stdio.h> int
main ()
{
int a = 10; char b
= 'B'; float c =
3.14;
printf("%i",a);
printf("\n");
printf("%c",b);
printf("\n");
printf("%f",c);
printf("\n");
return 0;
}
V. TUGAS AKHIR
1. Apabila hasil “run” program ternyata salah atau “error”, bagaimana menemukan tahapan
penyebab kesalahan tersebut ? Jelaskan !
2. Bagaimana cara mengatur banyaknya angka di belakang koma pada bilangan decimal?
3. Bagaimana cara mengenalkan suatu variable kepada bahasa programing?
4. Apakah string merupakan tipe data? Jelaskan!
5. Apa perbedaan int main() {} dengan int variabel() {} ?
II. TEORI
2.1 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 satu fungsi yaitu fungsi
main(). Fungsi ini memang wajib ada di setiap program C karena akan dieksekusi pertama
kali,Fungsi biasanya akan mengembalikan sebuah nilai dari hasilprosesnya. Karena itu, kita
harus menentukan tipe data untuk nilai yang akandikembalikan.Apabila fungsi tersebut
tidak memiliki nilai kembalian, maka kita harus menggunakan tipe void untuk menyatakan
kalau fungsi tersebut tidak akan mengembalikan nilai apa-apa. Fungsi banyak diterapkan
dalam program-program C yang terstruktur.
Keuntungan penggunaan fungsi dalam program yaitu program akan memiliki
struktur yang jelas ( mempunyai tingkat kemudahan dibaca serta dipahami yang tinggi) dan
juga akan menghindari penulisan bagian program yang sama. Dalam bahasa C fungsi dapat
dibagi menjadi dua,yaitu fungsi pustaka (telah tersedia dalam Dev C) dan yang kedua yaitu
fungsi yang didefinisikan (dibuat oleh programmer).
Beberapa Fungsi pustaka dalam C :
o “string.h” (Menyimpan Fungsi Operasi String)
- 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 setiap huruf dari suatu string menjadi huruf capital.
bentuk umum : strupr(string);
- strlwr():
digunakan untuk mengubah setiap 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
2.2.1 scanf()
Fungsi pustaka scanf() digunakan untuk menginput data berupa data numeric, karakter
dan string secara terformat.
Hal-hal yang perlu diperhatikan dalam pemakain fungsi scanf() :
Fungsi scanf() memakai penentu format.
SMART ELECTRONIC SYSTEM LABORATORY Page 25
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Fungsi scanf() memberi pergantian baris secara otomatis.
Fungsi scanf() tidak memerlukan penentu field.
Variabelnya harus menggunakan operator alamat &.
2.2.2 gets()
Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat
digunakan untuk memasukkan data numerik. Harus diakhiri dengan penekan tombolenter,
Cursor secara otomatis akan pindah baris tidak memerlukan penentu format.
2.2.3 getchar()
Fungsi getchar() digunakan untuk membaca data yang bertipe karakter harus diakhiri
dengan penekanan tombol enter. Karakter yang dimasukkan terlihat pada layar Pergantian
baris secara otomatis.
2.4 OPERATOR
Terhadap data sejenis dapat dilakukan pengolahan, misalnya sebuah integer dapat
ditambahkan dengan sebuah integer, sebuah float dapat dibagi oleh sebuah float.
Pengolahan ini disebut operasi. Setiap jenis tipe data mempunyai jenis-jenis operasinya
SMART ELECTRONIC SYSTEM LABORATORY Page 26
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
masing-masing. Simbol untuk jenis operasi disebut operator sedangkan data (variabel atau
konstanta) yang dioperasikan disebut operan.
Bahasa C memiliki banyak sekali operator, hal ini merupakan salah satu kekuatan
bahasa pemrograman ini untuk menyelesaikan berbagai persoalan. Berdasarkan jenis
operasinya, operator dalam bahasa C dapat dikelompokkan sebagai berikut:
1. Operator unary
2. Operator aritmatika
3. Operator relasi
4. Operator logika
Sebelum dan
++ Penambahan nilai 1 sesudah A++ A=A+1
Sebelum dan
-- Pengurangan nilai 1 Sesudah A-- A=A-1
Catatan : x++ dan ++x menyatakan dua operasi yang berbeda. Pada x++ variabel x diproses
(misalnya nilainya disalin kepada variabel lain) setelah itu nilai variabel x ditambah satu.
Pada ++x nilai x ditambah satu sebelum x diproses selanjutnya.
Contoh:
CONTOH 1:
int x = 0;
int y = 0;
y = ++x; // hasil : y =1, x=1
Dari contoh 1 ini, nilai X ditambah 1 sebelum dicopy ke variable Y.
enggunaan tanda ‘=’ untuk memberikan nilai ke dalam suatu variabel , BERBEDA dengan
tanda ‘==’ dimana berfungsi untuk sebagai pengecekan kesamaan nilai dari kedua atau lebih
variabel. Kita ambil contoh untuk X+5 = y+10 berarti bahwa nilai dari variabel X+5 itu
nilainya SAMA DENGAN nilai variabel Y+10 sedangkan X+5 == y+10 berarti mengecek
kesamaan nilai untuk memenuhi ekspresi relasional. Dimana apabila nilai yang dihasilkan
BENAR pada ekspresi tersebut (selalu diwakili oleh bilangan 1). Sebaliknya nilai - nilai
yang tidak memenuhi ekspresi relasional, akan menghasilkan nilai SALAH (selalu diwakili
oleh 0).
2.4.4 OPERATOR LOGIKA
SMART ELECTRONIC SYSTEM LABORATORY Page 28
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Operator logika adalah operator yang berkaitan dengan operasi logika, seperti:
konjungsi (dan), dan disjungsi (atau), negasi (ingkaran). Jika operator hubungan
membandingkan hubungan antara dua buah operan, maka operator logika digunakanuntuk
membandingkan logika hasil dari operator-operator hubungan. Operator logika ada tiga
macam:
1) && : Logika AND (DAN), Operator logika juga digunakan untuk memberikan nilai
atau kondisi true dan false. Biasanya operator logika dipakai untuk membandingkan dua
kondisi. Misalnya: ((5==5) && (3>6)) mengembalikan nilai false, karena (true && false)
untuk logika NOT (!),
Contoh :
#include"stdio.h"
int main(){
printf("Ekspresi Relasinya : %d\n",(5==5 && 3<6));
printf("Ekspresi Relasinya : %d",(5==5 && 3>6));
return 0;
}
2) || : Logika OR (ATAU) ,operasi logika OR hanya akan menghasilkan nilai 0 (salah)
jika semua ekspresi relasi yang dihubungkan bernilai salah, namun jika tidak, maka operasi
tersebut akan menghasilkan nilai 1 (benar).
Contoh :
#include"stdio.h"
int main(){
printf("Ekspresi Relasinya : %d\n",(5==5 || 3<6));
printf("Ekspresi Relasinya : %d",(5==5 || 3>6));
return 0;
}
3) ! : Logika NOT (INGKARAN) , Operator logika NOT berfungsi membalikan
nilai sebenarnya. contohnya !(5==5) akan mengembalikan nilai false, karena !(true).
Contoh :
#include"stdio.h"
int main(){
printf("!1 Adalah : %d\n\n",!1);
printf("!0 Adalah : %d\n\n",!0);
printf("!(5==5) Adalah : %d",!(5==5));
return 0;
}
Tabel Kebenaran 2 variabel
A B !A A&&B A||B
True True False True True
True False False False True
False True True False True
False False True False False
void clearscreen(){
system("cls");
}
void biodata(){
printf("Nama Anda : ");
gets(nama);
printf("Jurusan : ");
scanf("%[^\n]",&jurusan);
clearscreen();
printf("HII :) %s\n",strupr(nama));
printf("Jumlah Karakter Nama anda : %d",strlen(nama));
getch();
clearscreen();
}
float balok(){
p=3;
t=4.2;
l=p*t;
return l;
}
void lingkaran(float r){
l=(pow(r,2))*phi;
printf("%.2f",l);
}
float segitiga(float a, float t){
l=a*t/2;
return l;
}
int main(){
biodata();
printf("luas Balok : %.2f",balok());
Program 2.2
#include<stdio.h>
#include<windows.h>
#include<conio.h>
int a=5,b=5,c=5;
void preIncrement(){
printf("pre increment\n");//++a
printf("%d\n",a);
printf("%d\n",++a);
printf("%d\n",a);
printf("%d\n",++a);
printf("%d\n",a);
}
void postIncrement(){
printf("Post increment\n");//b++
printf("%d\n",b);
printf("%d\n",b++);
printf("%d\n",b);
printf("%d\n",b++);
printf("%d\n",b);
}
void Gabungan(){
printf("C= %d\n",c);// Ditampilkan = 5, Nilai c = 5
printf("%d\n",++c);// Ditampilkan c+1= 6, Nilai c = 6
printf("%d\n",c++);// Ditampilkan = 6 , Nilai c+1 = 7
printf("%d\n",++c);// Ditampilkan c+1= 8, Nilai c = 8
printf("%d\n",c--);// Ditampilkan = 8, Nilai c-1 = 7
printf("%d\n",--c);// Ditampilkan c-1= 6, Nilai c = 6
}
int main(){
int input;
printf("Masukkan sebuah angka :");
scanf("%d",&input);
if (input<0 || input>100){
printf("%d Bilangan negatif atau lebih besar dari 100",input);
}
else if(input>=1 && input<=100 && input%2==0){
printf("%d Bilangan genap dari 0 - 100",input);
}
else{
printf("%d Bilangan ganjil dari 0 - 100",input);
}
return 0;
}
I. TUJUAN
a. Membuat dan memahami proses perulangan dengan : struktur while, do while, for.
b. Membuat dan memahami proses percabangan dengan : struktur if, if else, nested if, switch
case.
II. TEORI
2.1 Percabangan
2.1.1 Pengertian Percabangan
Percabangan adalah perintah yang memungkinkan pemilihan atas perintah yang akan
dijalankan sesuai dengan kondisi tertentu. Dalam kehidupan sehari-hari kita tidak lepas dari
pilihan bahkan terkadang menghadapi pilihan yang begitu banyak yang bercabang-cabang
sehingga kita diharuskan untuk memilih diantara banyaknya pilihan tersebut dengan
menyeleksi dan memutuskan pilihan mana yang harus kita ambil. Begitu juga halnya dalam
membuat sebuah program saat kita dihadapi banyak pilihan dalam menyelesaikannya kita
diharuskan membuat pernyataan- pernyataan dan menyeleksi pernyataan tersebut apakah
pilihan kita benar atau salah sehingga memudahkan kita menyelesai masalah dengan sebuah
program.
2.1.2 Percabangan IF
Pernyataan IF merupakan bentuk pernyataan yang paling sederhana karena hanya
memiliki satu cabang dengan persyaratannya sendiri. Ketika syaratnya terpenuhi maka
akan menjalankan cabang tersebut. Pada percabangan if ini pemeriksaan kondisi akan
berakhir jika ternyata kondisi yang diperiksa salah atau perintah ini tidak akanmengerjakan
apa-apa.
Bentuk dasar pernyataan if adalah:
If (ekspresi kondisional) Statemen ;
Penjelasan : diatas jika hanya terdiri dari satu statement, Bagaimana Jika lebih dari 1 ? Jika
lebih dari satu maka statemennya harus berada dalam { }.
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.
Sedangkan pada IF-Else ini hanya untuk dua kondisi, strukturnya yaitu :
If(kondisi)
{
pernyataan atau statement;
}
else
{
pernyataan atau statement;
If(kondisi)
{
if(kondisi)
{
pernyataan atau statement;
}
else
{
pernyataan atau statement;
}
}
Strukturnya yaitu :
switch(kondisi)
{
case 1 : pernyataan atau statement; break;
case 2 : pernyataan atau statement; break;
case 3 : pernyataan atau statement; break;
default : pernyataan atau statement; break;
}
2.2 Perulangan
2.2.1 Pengertian 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.
Pengulangan(looping) adalah suatu bagian yang bertugas melakukan kegiatan mengulang
suatu proses sesuai dengan yang diinginkan. Banyak dari aplikasi perangkat lunak yang
melakukan pekerjaan berulang sampai sebuah kondisi yang diinginkan, oleh karena itu
pengulangan merupakan bagian yang penting dalam pemrograman karena dengan adanya
pengulangan pembuat program tidak perlu menulis kode program sebanyak pengulangan
yang diinginkan. pengulangan mempunyai beberapa bagian yang harus dipenuhi yaitu :
- Inisialisasi adalah tahap persiapan membuat kondisi awal sel melakukan
pengulangan, misalnya mengisi variabel dengan nilai awal. Tahap ini dilakukan sebelum
memasuki bagian pengulangan.
- Kondisi adalah kondisi berhenti dari pengulangan, kondisi berhenti sangat penting
dalam pengulangan agar pengulangan dapat berhenti, tidak menjadi pengulangan yangtanpa
henti. Kondisi pengulangan adalah kondisi yang dipenuhi oleh kondisi jalannya algoritma
untuk masuk ke dalam blok pengulangan.
- Penambahan adalah menambahkan atau mengurangkan nilai dari baris ke baris
dengan nilai 1 tiap barisnya, misal saja x++ maka pada baris pertama adalah x+1, pada
baris kedua ( x+1) +1, dan pada baris ketiga (x+1+1) +1, kemudian seterusnya hingga
memenuhi kondisi dari perulangan tersebut.
while(kondisi)
{
statement;
}
Contoh Kode Program while: #include "stdio.h"
int main()
{
int x;
x=1;
while(x<=10)
{
printf("%d. Belajar Pengulangan While\n", x);
x++;
}
}
do
{
statement;
}
while(kondisi);
{
statement;
}
2.3 Peloncatan
Statemen peloncatan pada umumnya digunakan dalam sebuah proses pengulangan,
yang menentukan apakah pengulangan akan diteruskan, dihentikan atau dipindahkan ke
statemen lain di dalam program. Atau Statemen peloncatan merupakan statemen yang
digunakan untuk memaksa program agar meloncat atau menuju ke statemen-statemen
tertentu yang kita inginkan. Dalam Bahasa C terdapat sebuah statemen yang sering
digunakan untuk melakukan hal ini, yaitu statemen goto, break, continue. Berikut ini
penjelasan dari masing-masing statemen prosedur tersebut.
1. Label dan statemen goto
Untuk menggunakan statemen goto, sebelumnya kita harus mendefinisikan sebuah label
dengan menggunakan kata kunci label. Disini, label akan berperan sebagai baris yang akan
dituju. Dengan kata lain, statemen goto akan memindahkan program secara langsung ke
lokasi yang ditandai oleh label yang telah didefinisikan.
2. Prosedur break
Prosedur ini digunakan untuk meloncat dari proses pengulangan. Artinya, prosedur break
akan memaksa program untuk menghentikan pengulangan dan akan langsung menuju ke
statemen selanjutnya yang terdapat dibawah blok pengulangan (jika ada).
3. Prosedur continue
Prosedur ini merupakan kebalikan dari prosedur break, yaitu berguna untuk melanjutkan
pengulangan dengan cara meloncat kebagian awal pengulangan. Pada umumnya prosedur
ini digunakan dalam kasus dimana kondisi pengulangannya selalu bernilai true.
Program 3.2
#include<stdio.h>
int main()
{
int a;
printf("Masukkan Bilangan negatif : ");
scanf("%d", &a);
if(a<0){
printf("%d",a);
printf("\t adalah Bilangan negatif");
}
else printf("maaf, itu bukan bilangan negatif");
return 0;
}
Program 3.3
#include<stdio.h>
int main()
{
int a;
printf("Masukkan Bilangan Bulat : "); scanf("%d", &a);
if(a>=0 && a<=100)
{
if(a<=50)
{
printf("Nilai a kurang dari sama dengan 50");
}
Program 3.3
#include<stdio.h>
int main()
{
char nilai;
Program 3.4
#include <stdio.h>
int main(){
int i;
for(i = 1; i <= 20 ; i++){
if(i%2==0)
continue;
printf("%d \t",i);
}
return 0;
SMART ELECTRONIC SYSTEM LABORATORY Page 44
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
}
Program 3.5
#include<stdio.h>
int main()
{
int x,a; x = 1;
printf("mengulangan kata :\n"); printf("\"dila\"");
printf("\nmasukkan banyaknya perulangan:\n\n"); scanf("%d",&a);
while (x<=a)
{
printf("\"dila\"\n");
++x;
}
return 0;
}
Program 3.6
#include<stdio.h> int main()
{
int x,a; x = 1;
printf("mengulangan kata :\n"); printf("\"rizka\"");
printf("\nmasukkan banyaknya perulangan:\n\n"); scanf("%d",&a);
do
{
printf("\"rizka\"\n");
x++;
}
while (x<=a);
return 0;
}
Program 3.7
#include <stdio.h>
int main(){
goto cetak;
printf("Hmm");
cetak:
printf("Hai\n");
return 0;
}
I. TUJUAN
a. Praktikan dapat membuat program beserta flowchartnya
b. Praktikan dapat memahami jenis-jenis, symbol dan notasi flowchart
c. Praktikan dapat membuat dan memahami struktur dari penulisan Bahasa C
II. TEORI
4.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 yang digunakan terutama untuk alat
bantu komunikasi dan untuk dokumentasi, flowchart menggunakan anotasi bidang-bidang
geometri, seperti lingkaran, persegi empat, wajik, oval, sebagainya untuk
mempresentasikan urutan suatu langkah-langkah prosedur sistem dengan menghubungkan
masing – masing langkah tersebut menggunakan tanda panah.
4.1.2. Jenis-Jenis Flowchart
Ada beberapa jenis flowchart diantaranya yaitu :
1. 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.
Berikut contoh flowchart sistem pemesanan makanan di café.
2. 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.
3. Schematic Flowchart
Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip denganbagan
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.
4. 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 logicflowchart) dan bagan alir program komputer terinci (detailed computer
program flowchart). Bagan alirlogika 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.
Symbol Terminal (Simbol untuk permulaan atau akhir dari suatu program
♦ Input-output symbols ♦
Menyatakan jenis peralatan yang digunakan sebagai media input atau output.
Symbol input-output (Symbol yang menyatakan proses input dan output
tanpa tergantungdengan jenis peralatannya)
Symbol punched card (Symbol yang menyatakan input berasal dari kartu atau
output dituliske kartu)
Symbol disk and on-line storage (Symbol untuk menyatakan input berasal
dari disk atauoutput disimpan ke disk)
a. Penulisan Flowchart
Hal-hal yang perlu diperhatikan pada penulisan flowchart :
1. Flowchart dimulai dari atas ke bawah
2. Intruksi dalam bagan alir harus jelas dengan menggunakan kata kerja dan memiliki alur
data yang rinci dan jelas
3. Dimulai dengan awal dan diakhiri dengan akhir
4. Harus memiliki input dan output
5. Menggunakan penghubung atau flow direction symbol untuk instruksi yang terpotong
6. Flowchart memiliki 3 struktur penulisan yaitu diantaranya:
Struktur sequence/sederhana
Merupakan flowchart yang alurnya mengalir secara berurutan dari atas ke bawah atau
dengan kata lain tidak adanya percabangan atau perulangan.
Struktur branching
Merupakan flowchart dengan struktur percabangan yang digunakan untuk menyeleksi
kondisi dan menentukan pilihan proses selanjutnya.
Contoh: flowchart dari algoritma menentukan apakah bilangan yang dimasukkan ganjil
atau genap.
Struktur looping
Merupakan flowchart dengan struktur perulangan yang digunakan untuk mengulangi
langkah-langkah sebelumnya sampai suatu kondisi terpenuhi.
for(x=1;x<=a;x++)
{
printf("\"Algoritma dan Pemograman\"\n");
}
return 0;
}
return 0;
}
I. TUJUAN
a. Memahami struktur array,struct dan pointer.
b. Memahami penggunaan array dalam kehidupan sehari-hari.
c. Memahami cara penggunaan struct dan pointer untuk mempermudah penulisan dalam
program.
II. TEORI
1.1 Array
Array merupakan kumpulan dari beberapa nilai data yang bertipe sama dalam urutan tertentu
yang menggunakan nama yang sama. Letak atau urutan data dari elemen array ditunjukkan
oleh suatu index. Dilihat dari dimensinya array terbagi menjadi array dimensi satu, array
dimensi dua dan array multi dimensi. Dengan array, proses penyimpanan data ke dalam
variabel menjadi lebih efisien dan mudah, terutama jika kita memiliki data dalam jumlah
banyak. Anggota atau isi dari array itu sendiri harus satu jenis tipe data, misalkan terdiri dari
kumpulan angka bulat saja (integer), kumpulan karakter saja (char), maupun kumpulanangka
pecahan saja (float). Di dalam bahasa C, kita tidak bisa membuat 1 array dengan berbagai tipe
data (harus 1 jenis saja).
Deklarasi array :
Tipe_array nama_array[indeks 1];
Contoh :
int nilai[5];
70 70 55 97 80
CATATAN : String juga sebenarnya merupakan array yang bertipe karakter. Jumlah elemen
array menyatakan jumlah string.
Contoh :
#include <stdio.h>
#include <string.h>
struct Mahasiswa
{
char name[20];
char address[20];
int age;
};
int main()
{
// menggunakan array
Mahasiswa mhs[2];
strcpy(mhs[1].name, "Bambang");
strcpy(mhs[1].address, "surabaya");
mhs[1].age = 23;
return 0;
}
1.3 POINTER
Pointer adalah suatu tipe data turunan yang digunakan untuk menyalin alamat sebuah varibel
dengan tipe data sama. Pointer harus dideklarasikan atau dibuat dulu sebelum dapat digunakan.
int *nama_pointer; double *nama_pointer; float *nama_pointer; char *nama_pointer;
Pointer selalu diawali dengan tanda bintang (*) di depannya yang dinamakan Asteris. Simbol ini
akan menandakan, kalau ini adalah sebuah pointer. Tipe data yang digunakan pada pointer
tergantung dari tipe data variabel yang akan menjadi referensinya.
Contoh:
float a = 4.12; float *pa = &a;
Pointer *pa akan menyimpan alamat memori dari variabel a. Pointer *pa juga akan bisa
mengakses dan mengubah nilai dari variabel a.
Kita juga dapat mengubah variabel pada tengah program menggunakan pointer yaitu dengan
cara mendefinisikan nya lagi contoh :
*px=48;
ASCII adalah singkatan dari American Standard Code for Information Interchange.
Rentangnya dari 0 hingga 255 dalam Desimal atau 00 hingga FF dalam Heksadesimal. Kode
ASCII dapat dibagi menjadi dua set - Standard ASCII Chart dan Extended ASCII Chart.Standard
ASCII Chart berkisar dari 0 hingga 127 dalam Desimal atau 00 hingga 7F dalam Heksadesimal,
kode ini terutama digunakan untuk mewakili karakter, seperti karakter "a" hingga "z" dan angka
"0" hingga "9", ini disebut karakter yang dapat dicetak , perhatikan bahwa kode 0 hingga 31
(Desimal) dalam Standard ASCII Chart tidak dapat dicetak, kode tersebut ditetapkan untuk
karakter kontrol yang digunakan untuk mengontrol beberapa perangkat periferal seperti printer,
misalnya, 12 mewakili fungsi Umpan Formulir / Halaman Baru. Perintah ini menginstruksikan
printer untuk melompat ke atas halaman berikutnya. Extended ASCII Chart berkisar dari 128
hingga 255 dalam Desimal atau 80 hingga FF dalam Heksadesimal. Mereka memenuhi
permintaan akan lebih banyak karakter dan simbol yang digunakan untuk banyak bahasa.
Bersama dengan kode kontrol (0 hingga 31) dalam Standard ASCII Chart, Extended ASCII Char
juga banyak digunakan dalam protokol komunikasi, seperti
Tabel ASCII
Program 5.1
#include<stdio.h>
#include<conio.h>
int main(){
return 0;
}
Program 5.2
#include <stdio.h>
int main(){
// membuat array kosong
int nilai[5];
// mengisi array
nilai[0] = 32;
nilai[1] = 42;
nilai[2] = 76;
nilai[3] = 31;
nilai[4] = 57;
return 0;
}
Program 5.3
#include<stdio.h>
#include<conio.h>
int main(){
int b,k,A[3][3],B[3][3],jum[3][3];
printf("\n\tPENJUMLAHAN MATRIKS\n\n");
printf("Masukkan jumlah baris dan kolom\n");
printf("Baris?");scanf("%d",&b);
printf("Kolom?");scanf("%d",&k);
printf("\n");
printf("Masukkan Elemen Matriks A\n");
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
printf("A[%d][%d]=",i,j);scanf("%d",&A[i][j]);
}
}
printf("\n");
printf("Masukkan Elemen Matriks B\n");
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
printf("B[%d][%d]=",i,j);scanf("%d",&B[i][j]);
}
}
/////////////////////////////////////////////penjumlahan matriks
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
jum[i][j]=A[i][j]+B[i][j];
}
}
printf("\nPenjumlahan matriks A & B\n");
for(int i=0;i<b;i++){
for(int j=0;j<k;j++){
printf("%d",jum[i][j]);
}
printf("\n");
}
return 0;
}
SMART ELECTRONIC SYSTEM LABORATORY Page 68
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Program 5.4
#include<stdio.h>
#include<conio.h>
int main()
{
int i,j,k;
static int data_huruf[3][8][8]=
{{
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,1,1},
{1,1,0,0,0,0,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,1,1},
{1,1,0,0,0,0,1,1},
},
{
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,1,1},
{1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},
{1,1,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0},
},
{
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,1,1,1,0,1,1,1},
{1,1,0,1,1,0,0,1},
{1,1,1,0,0,0,1,1},
{0,1,1,0,0,1,1,0},
{0,0,1,1,1,1,0,0},
}
};
for(i=0;i<3;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("");
}
return 0;
}
SMART ELECTRONIC SYSTEM LABORATORY Page 69
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Program 5.5
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct Mahasiswa{
char NIM[12];
char nama[30];
float ipk;
};
int main(){
Mahasiswa mhs;
system("cls");
printf("NIM=");scanf("%s",mhs.NIM);
printf("Nama=");scanf("%s",mhs.nama);
printf("IPK=");scanf("%f",&mhs.ipk);
Program 5.6
#include<stdio.h>
int main(){
int hurufKecil = 97;
int hurufBesar = 65;
int n;
I. TUJUAN
a. Praktikan dapat memahami tipe data enumerasi
b. Praktikan dapat mengetahui cara membuka file dan menutup file
c. Praktikan dapat memahami penggunaan operasi file
II. TEORI
2.1 Pengertian Tipe Data Enumerasi
Enumerasi merupakan suatu tipe data yang nilainya telah didefinisikan secara pasti pada saat
pembuatan tipe data tersebut. Tipe data umumnya digunakan untuk menyatakan sesuatu yang
nilainya sudah pasti, seperti nama hari, nama bulan, jenis kelamin dan lain sebagainya. Adapun
untuk membuat sebuah enumerasi di dalam Bahasa C adalah dengan menggunakan kata kunci
enum. Bentuk umum untuk mendefinisikannya adalah sebagai berikut.
enum (tag) { nilai1, nilai2, nilai3, … };
Penjelasan :
- tag adalah nama tipe data enumerasi
Untuk mengakses nilai dari enumerasi ini kita dapat langsung mengisikan nilainya ataupun
dengan menggunakan nilai integer yang secara default indeksnya dimulai dari 0. Pada contoh
enumerasi jenis kelamin diatas, nilai 0 berarti pria dan nilai 1 berarti wanita. Begitu juga untuk
enumerasi WarnaPrimer, nilai 0 berarti merah, nilai 1 berarti hijau dan nilai 2 berarti biru.
Dengan demikian, kita juga bisa mendefinisikan nilai dari enumerasi sesuai keinginan kita,
artinya nilai indeks tidak selalu diawali dengan nilai 0.
Contoh program enumerasi :
#include <stdio.h>
#include <conio.h>
#include <string.h>
SMART ELECTRONIC SYSTEM LABORATORY Page 73
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
// Mendefinisikan enumerasi yang bernama JenisKelamin
enum JenisKelamin { pria, wanita };
int main() {
getch();
return 0;
}
Hasilnya :
Nama : Rani
Jenis Kelamin : 1
Dalam pembahasan pada modul sebelumnya, telah diketahui bagaimana car a kita dapat
memasukkan data dan membaca data yang telah dimasukkan dengan menggunakan perintah
scanf, printf dan sebagainya. Program akan secara otomatis menuggu masukan dari keyboard
jika kita menggunakan scanf dan secara otomatis pula memindahkan data yang kita masukkan
kedalam variable yang dituju dan selanjutnya akan dieksekusi untuk ditampilkan
Untuk dapat menggunakan operasi file, kita harus mengetahui beberapa macam operasi yang
dapat kita lakukan terhadap file yang kita buka. Berikut beberapa operasi file :
a) r : Membuka file yang telah ada untuk dibaca
c) a : Membuat atau membuka file yang sudah ada untuk ditambah record
f) a+ : Membuka file yang sudah ada untuk dibaca dan ditambah record
Setelah kita membuat file pointer, file tersebut belum dapat dialokasikan karena kita
Nama file dapat diketik sesuai keinginan kita dengan diakhiri (.txt) yang mengindikasikan
bahwa file tesebut adalah file text
- Jenis_Operasi
Jenis operasi disini tergantung tujuan kita membuka file, jika ingin membaca maka isi dengan
(r).
Setelah file tersebut kita buat dan kita lakukan berbagai operasi sesuai kebutuhan, kita
harus menutup file agar data yang kita buat secara otomatis tersimpan atau file berhasil
dibuat. Perintah untuk menutup file adalah sebagai berikut :
fclose(Nama_Pointer);
Untuk beberapa jenis operasi yang digunakan, dalam satu file dapat dilakukan
pembacaan dan penulisan, maka diharuskan membuat kursor kembali ke awal data, oleh
karenannya dibutuhkan fungsi pembalik kursor yaitu rewind(Nama_Pointer);
Untuk dapat menulis file, kita dapat menggunakan dua macam perintah sebagai berikut :
a. fprintf
fprintf ( ) digunakan untuk mencetak data kedalam file. Bebeda dengan fungsi printf yang
digunakan untuk mencetak ke layer executable. Instruksi fprintf sebagai berikut :
fprintf(Nama_Pointer,”Statement”);
b. fputs
fputs merupakan perintah untuk memasukkan string kedalam file, instruksinya sebagai
berikut :
fputs(“string”,Nama_Pointer);
c. putc
putc merupakan perintah yang juga berfungsi mencetak data kedalam file, hanya saja putc
hanya mencetak sebatas satu karakter. Instruksinya sebagai berikut :
putc(’Karakter’,Nama_Pointer);
SMART ELECTRONIC SYSTEM LABORATORY Page 77
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.5 Membaca File
Untuk dapat membaca data yang dimasukkan kedalam file, kita dapat menggunakan
perintah sebagai berikut :
a. fscanf
fscanf merupakan fungsi untuk membaca file. Cara kerja fscanf adalah mengcopy data
dalam file kesebuah variable, oleh karena itu variable yang kita gunakan harus sesuai
dengan jenis data yang ingin dibaca. fscanf membaca data hanya sebatas spasi pertama
dengan instruksi sebagai berikut:
fscanf(Nama_Pointer,”format_tipe_data”,Nama variable);
contohnya
fscanf(pf,”%d”,&nilai);
b. getc
Berbeda dengan scanf yang dapat membaca data sebagai satu kesatuan hingga spasi
pertama, getc membaca data satu persatu karakter, dengan instruksi sebagai berikut:
getc(Nama_Pointer);
c. fgets
fgets merupakan fungsi untuk membaca string. String yang dibaca hanya sebatas satu
baris atau jumlah nilai buffer yang diberikan. Instruksinya sebagai berikut :
fgets(Nama_Variable,Nilai_Buffer,Nama_Pointer);
contohnya :
fgets(nama,255,fp);
Dalam membaca data, terdapat sebuah kondisi yang menandakan bahwa file tersebut
telah berakhir atau ketika melakukan proses pembacaan apabila gagal akan
mengembalikan sebuah nilai berupa EOF.
Program 6.1
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main(){
struct pegawai{
char nama[100];
int nik;
int gaji;
int usia;
Jenis_kelamin jk;
pilihan kode;
};
pegawai peg;
//mendeklarasikan variabel peg1 bertipe pegawai
strcpy(peg.nama, "Joni");
peg.gaji = 6000000;
peg.nik = 1107130612;
peg.usia = 25;
peg.jk = Pria;
peg.kode = EMPAT;
Program 6.2
#include <stdio.h>
int main()
{
enum pecahan{
limaPuluh = 50,
seRatus = 100,
limaRatus = 500,
seRibu = 1000,
limaRibu = 5000,
sePuluhRibu = 10000,
duaPuluhRibu = 20000
};
int pecahanUang[7] = {
duaPuluhRibu,
sePuluhRibu,
limaRibu,
seRibu,
limaRatus,
seRatus,
limaPuluh};
char namaPecahan[7][20] = {
"Dua Puluh Ribuan",
"Sepuluh Ribuan",
"Lima Ribuan",
"Seribuan",
"Lima Ratusan",
"Seratusan",
"Lima Puluhan"};
int Rupiah,tmp,i,j;
printf("Masukkan nilai = ");
Program 6.3
/*
catatan :
#include<stdio.h>
SMART ELECTRONIC SYSTEM LABORATORY Page 82
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
#include<string.h>
int main(){
FILE *tulis=fopen("Tulis.txt","w");
char kalimat[1000];
int n=0,jumlah;
printf("Masukkan data :");
gets(kalimat);
Program 6.4
/*
catatan :
#include<stdio.h>
int main(){
FILE *baca=fopen("Tulis.txt","r");
char kalimat[1000],kar;
if(baca==NULL)
printf("Gagal Brooo :(\n");
fclose(baca);
return 0;
}
Program 6.5
#include<stdio.h>
#include<stdlib.h>
SMART ELECTRONIC SYSTEM LABORATORY Page 84
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
struct data_diri{
char nama[100];
char agama[100];
};
int main(){
FILE *data=fopen("Data_Diri.txt","a+");
struct data_diri Input[100];
char kalimat[1000];
int n,i;
for(i=0;i<n;i++){
printf("Data ke - %d\n",i+1);
printf("Masukkan nama : ");
scanf(" %[^\n]",Input[i].nama); //untuk [^\n] digunakan agar scanf mampu
membaca inputan dengan spasi ksusus string
printf("Masukkan agama : ");
scanf(" %s",Input[i].agama);
fprintf(data,"Nama\t: %s\n",Input[i].nama);
fprintf(data,"Agama\t: %s\n\n",Input[i].agama);
system("cls"); //menghapus layar
}
fclose(data);
return 0;
}
SMART ELECTRONIC SYSTEM LABORATORY Page 85
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
V. TUGAS AKHIR
1. Tuliskan perbedaan r+ dengan r !
2. Jelaskan logika :
while((kar = getc(baca))!=EOF)
printf("%c",kar);
2. Tuliskan perbedaan fscanf, fgets dan getc!
3. Jelaskan perbedaan tipe data enumerasi dengan tipe data lainnya pada modul ini!
#include<stdio.h>
int main () {
enum t_warna warna;
II. TEORI
2.1 Pengertian Manipulasi Bit
Manipulasi bit adalah tindakan memanipulasi bit atau potongan data
lainnya secara algoritmik lebih pendek dari kata. Seluruh data yang
ditampilkan oleh komputer merupakan representasi dari kumpulan bit. Bahasa
C menyediakan kemampuan untuk memanipulasi bit (Binary Integer). Pada
dasarnya untuk manipulasi bit juga memanfaatkan Operator Bitwise. Operator
Bitwise digunakan untuk memanipulasi bit-bit.
Keterangan :
1. Operator Bitwise Shift Left/Geser Kiri (<<)
Operator Bitwise Shift Left digunakan untuk menggeser sejumlah bit kekiri.
Contoh :
0000000011001001 = 201 //digeser 1 bit ke kiri
Dibagian kanan disisipkan 0, sebanyak bit yang digeser
0000000110010010 = 402
2. Operator Bitwise Shift Right/Geser Kanan (>>)
Operator Bitwise Shift Right digunakan untuk menggeser sejumlah bit kanan.
Contoh :
0000000011001001 = 201
//geser ke kanan 1 bit dari operan pertama dengan bit yang ditentukan oleh
operan kedua.
0000000001100100 = 100
3. Operator Bitwise Dan/AND (&)
Operator Bitwise & ( And ) digunakan untuk membandingkan bit dari dua
operand, Akan bernilai benar (1) jika semua operand yang digabungkan
01000000 = 64
4. Operator Bitwise Atau/OR (|)
11101101 = 237
5. Operator Bitwise XOR/Exclusive OR (^)
Operator Bitwise ^ ( XOr ) digunakan untuk membandingkan bit dari dua operand,
Akan bernilai benar (1) jika dari dua bit yang dibandingkan hanya sebuah bernilai
benar.
11001001 = 201
01100100 = 100
XOR
10101101 = 173
6. Operator Bitwise NOT/Komplemen (~)
int main()
{
int num, decimal, remainder, basis=1,
biner=0; printf("masukkan
bilangan desimal=");
scanf("%d",&num);
decimal=num;
while(num>0)
{
remainder = num%2;
biner = biner + remainder*basis;
num = num/2;
basis = basis*10;
}
printf("input angka adalah = %d\n",decimal);
printf("sama dengan angka biner = %d\n",biner);
return 0;
}
Program 7.2
#include<stdio.h>
#include<conio.h>
int main()
{
int bbil,bil,temp,biner,basis; biner = 0;
basis = 1;
printf("masukkan bilangan biner:");scanf("%d",&bil);
bbil=bil; while(bil>0)
{
temp=bil%10;
biner=biner+ temp*basis; bil=bil/10;
basis=b asis*2;
}
Program 7.3
#include<stdio.h>
#include<conio.h>
SMART ELECTRONIC SYSTEM LABORATORY Page 99
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
int main()
{
int a=4, b=5;
printf("Hasil Menggunakan Operator AND\t\t= %d", a&b);
printf("\nHasil Menggunakan Operator OR\t\t= %d", a|b);
printf("\nHasil Menggunakan Operator XOR\t\t= %d",a^b);
printf("\nHasil Menggunakan Operator NOT\t\t= %d", a=~a);
printf("\nHasil Menggunakan Operator Shift Left\t=%d", a<<2);
printf("\nHasil Menggunakan Operator Shift Right\t=%d", a>>2);
return 0;
}
Program 7.4
#include<conio.h>
int main()
{
int a,b,c,d;
a = 100; //bilangan desimal b = 040; //bilangan oktal
c = 0x10; //bilangan hexadesimal d = 0x20; //bilangan hexadesimal
printf("Nilai a dalam oktal\t\t= %o", a);
printf("\nNilai b dalam hexadesimal\t= %x", b);
printf("\nNilai c dalam desimal\t\t= %d", c);
printf("\nNilai d dalam desimal\t\t= %d", d);
return 0;
}