Anda di halaman 1dari 94

20

KARTU PRAKTEK
LABORATORIUM ALGORITMA DAN PEMROGRAMAN

Pas Foto
NAMA : 3x4
NIM :
KELOMPOK :
PRAKTIKUM :
JURUSAN :
PROG. STUDI :
SEMESTER :

MODUL TANGGAL PRAKTEK NAMA ASISTEN PARAF ASISTEN

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

SMART ELECTRONIC SYSTEM LABORATORY Page 4


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
STRUKTUR LABORATORIUM
PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
UNTUK S1 TEKNIK ELEKTRO IT-PLN

Edisi Revisi Maret 2021,


Diedit Oleh Asisten Algoritma dan Pemrograman tahun 2020-2021
Kepala Laboratorium : Ir. Tasdik Darmana, M.T
Instruktur Laboratorium : Meyhart Torsna Bangkit Sitorus, S.T, M.Eng
M. Nur Qosim, S.T, M.T
Koordinator Asisten Laboratorium : Fathur Dwipa S
Asisten Laboratorium 2019/2020 :
1. Akbarsyah Firman Prasetyo
2. Heny Prilia Panjaitan
3. Muh. Fauzan Alfarisi R.
4. Rahmat Kurniawan
5. Siti Nurfadillah Salsabila A
6. Zaky Syamsuddin
7. Jodhi Krisantus Sihalbu
8. Rega Nadifulloh Bimaulid
9. Geby Sintya Palohi Situmorang
10. Muhammad Fadl Rafi Ubadilah
11. Cindi Audina
12. Rizka Nurfadilah
13. Asep Alvian Fahmi Lubis
14. Nurul Muthia Anggraeni Yasin

SMART ELECTRONIC SYSTEM LABORATORY Page 5


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
TATA TERTIB
LABORATORIUM ALGORITMA DAN PEMROGRAMAN

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.

2. Praktikan harus sudah ada di laboratorium 15 menit sebelum praktikum dimulai.

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.

5. Selama pelaksanaan sampai selesai atau berakhirnya praktikum sangat diharapkan


untuk tidak melakukan kegiatan yang mengganggu pelaksanaan praktikum termasuk
melepas jaket laboratorium di dalam lab (kecuali mendapat izin dari asisten).

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.

7. 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.

SMART ELECTRONIC SYSTEM LABORATORY Page 6


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
PENULISAN LAPORAN

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)

SMART ELECTRONIC SYSTEM LABORATORY Page 7


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
CONTOH COVER DAN LEMBAR KERJA

Gambar. Cover Laporan dan Tugas Rumah

Gambar. Lembar Kerja

SMART ELECTRONIC SYSTEM LABORATORY Page 8


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
LANGKAH KERJA

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

Ketik program pada lembar yang tersedia

4. Compile, Run dan Compile & Run

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).

SMART ELECTRONIC SYSTEM LABORATORY Page 9


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Jika terdapat kesalahan, dapat melihat pada bagian Compiler.
5. MENYIMPAN PROGRAM
Klik File  Klik Save As  pilih folder tempat menyimpan program  Ketika nama
program.

6. SCREEN SHOOT PROGRAM


Tata letak program dan output  tekan tombol Prt sc sysrq (Print screen)  paste di Ms.
Word  crop gambar untuk merapihkan

SMART ELECTRONIC SYSTEM LABORATORY Page 10


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
SMART ELECTRONIC SYSTEM LABORATORY Page 11
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
PENDAHULUAN

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??

Pada GENERASI PERTAMA :


Terdapat Bahasa Mesin yang merupakan bahasa pertama, bahasa mesin ini adalah bahasa
yang sangat sulit dimengerti oleh manusia menurut saya karena isinya cuma berupa bentuk
biner yaitu angka 0 dan 1, wahuu kebayang kann kalo kita ingin membuat suatu program hanya
dengan 1 dan 0 saja. nah pertanyaannya apakah bahasa mesin tersebut sudah hilang? dan
terganti dengan bahasa C dan generasi selanjutnya ? Jika anda berpikiran seperti itu, saya rasa
pikiran anda salah, mengapa?? mari kita pahami lebih lanjut dibawah.

Pada GENERASI KEDUA :


Nah setelah kita ketahui sebelumnya yang terdapat bahasa mesin ,pada generasi kedua ini
terlahir sebuah bahasa yang setiap fungsinya sebenarnya adalah perpaduan dari bahasa mesin
yang telah dikemas, hehe bingung ya? oke anggaplah seperti ini. semisal bahasa mesin nya
mempunyai nilai fungsi biner 1000010 10101000, pada bahasa Assembly anda hanya cukup
menuliskan pop cx. waw itu baru satu kata, bayangkan apabila banyak fungsi fungsi lainnya
maka di bahasa mesinnya bakal panjang banget kan?? oleh karena itu, bahasa assembly ini
adalah bahasa yang dibuat sedemikian rupa agar dapat lebih dipahami oleh manusia, dan
kemudian dikonversikan ke bahasa mesin sehinga menjawab pertanyaan diatas, bahwa bahasa
mesin bukanlah hilang melainkan terdapat sebuah bahasa yang dapat dimengerti dan untuk
mengirimkan bahasa tersebut kedalam mesin maka diperlukanlah sebuah konverter bahasa.
pada dasarnya bahasa assembly ini masih terdapat pada pemrograman alat Mikroprosesor 8088
dan 8086. Bahasa Assembly ini masih digolongkan bahasa dengantingkat level rendah karena
dalam membuat sebuah program, sangatlah membutuhkan struktur yang panjang dan rumit.

SMART ELECTRONIC SYSTEM LABORATORY Page 12


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Pada GENERASI KETIGA :
Generasi ketiga Bahasa Pemrograman Komputer ini yaitu menggunakan pendekatan
prosedural. Sebagai bahasa yang prosedural, seorang programmer perlu menuliskan intruksi-
intruksi yang rinci agar komputer dapat melaksanakan tugasnya, untuk programnya ditulis
dengan menggunakan kata-kata yang biasa dipakai manusia seperti “IF, WHILE”. Untuk itu
bahasa generasi ketiga ini sering disebut sebagai high level language disebabkan bahasa ini
menggunakan kata-kata yang biasa digunakan oleh manusia. Yaitu contohnya bahasa C dan
pascal.
Dev-C++ adalah sebuah IDE (Integrated Development Environment) C / C++ yang
sudah dilengkapi dengan TDM-GCC Compiler (bagian dari GNU Compiler Collection
/ GCC). Dev-C++ merupakan IDE gratis dan full featur yang didistribusikan dibawah lisensi
GNU General Public License untuk pemrograman C dan C++. IDE sendiri adalah Lembar kerja
terpadu untuk pengembangan program.

SMART ELECTRONIC SYSTEM LABORATORY Page 13


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL I
PENGENALAN BAHASA C DAN TIPE DATA DASAR

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

2.1 Sejarah Bahasa C


Bahasa C dikembangken di Bell lab pada tahun 1972 ditulis pertama kali oleh Brian
W. Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories
mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson
sebenarnya merupakan pengembangan dari bahasa BCPL ( Basic Combined Programming
Language ) yang diciptakan oleh Martin Richard. Tahun 1980, bahasa Cbanyak digunakan
pemrogram di Eropa yang sebelumnya menggunakan bahasa B dan BCPL. Dalam
perkembangannya, bahasa C menjadi bahasa paling popular. Awal tahun 1980, Bjarne
Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985,
lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++.
Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T
Laboratories, dinamakan cfront. C++ versi kunoini hanya berupa kompiler yang
menterjemahkan C++ menjadi bahasa C. Tahun 1989, dunia pemrograman C mengalami
peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standards
Institute (ANSI). Bahasa C yang diciptakan Kerninghan & Ritchie kemudiandikenal dengan
nama ANSI C.
Bahasa C merupakan bahasa pemrograman yang sangat populer, sederhana, dan
fleksibel untuk digunakan. Bahasa C adalah bahasa pemrograman terstruktur yang tidak
bergantung pada mesin dan banyak digunakan untuk menulis berbagai aplikasi. Selain itu,
Bahasa C juga dikenal sebagai basis untuk pemrograman.

SMART ELECTRONIC SYSTEM LABORATORY Page 14


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.2 Struktur Penulisan Program
Contoh Program :
#include<stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
Penjelasan :
Diatas adalah struktur penulisan program dasar yang wajib dipahami. Dimana struktur
program dibagi menjadi dua bagian utama : yaitu, bagian include dan bagian fungsi int main.

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.

2. Bagian fungsi int main


 Fungsi int main() adalah. fungsi utama yang akan dieksekusi pertama kali saat program
dijalankan. Maka dari itu harus menuliskan logika program dalam fungsi ini. Dimana bagian
didalam fungsi main ini adalah statement, statement adalah perintah-perintah atau fungsi untuk
melakukan sesuatu.
 Tanda buka kurung kurawal ({) dan tutup kurung kurawal (}) merupakan fungsi untuk
mengelompokkan statement, ini disebut dengan aturan penulisan kode blok
 Contoh diatas adalah printf(“Hello World!”); artinya kita menyuruh computer untuk mencetak
teks Hello World! ke executable.
 Setiap statement dalam program C wajib diakhiri dengan titik koma (;) jika tidak maka
program akan eror. Sama halnya dengan fungsi return 0 yang diakhiri dengan titik koma (;).
 Perintah return 0; berhubungan dengan fungsi int main(). Dengan perintah return 0 akan
menutup fungsi int main() yang sekaligus mengakhiri kode program bahasa C.

SMART ELECTRONIC SYSTEM LABORATORY Page 15


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.3 TIPE DATA DASAR
Setiap data memiliki tipe data, baik itu angka bulat, angka pecahan, atau berupa karakter,
dan sebagainya. Tipe data adalah pengelompokan data berdasarkan isi dan sifatnya.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 data yang tepat akan membuat proses operasi data menjadi lebih
efisien dan efektif.
Dalam bahasa C terdapat beberapa tipe data dasar, yaitu :

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)

Dan terdapat tiga tipe bilangan dasar,yaitu:

No Tipe Format Keterangan


Bilangan
1 Hexadesimal %x Bilangan Hexadesimal

2 Oktadesimal %o Bilangan Oktadesimal

3 Desimal %d Bilangan Desimal

2.4 Deklarasi Variabel


 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 penampungandata
atau konstanta pada memori.Sedangkan nilai yang selalu tetap, variabel dapat berubah-
ubah.Sebuah variabel dapat mengandung data yang berbeda pada saat yang berbeda.
SMART ELECTRONIC SYSTEM LABORATORY Page 16
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Contoh :
#include <stdio.h>

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 spasi.

• Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang
termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, =
dsb .

• Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

 Jenis – jenis Variabel Jenis

Seperti halnya konstanta, variabel juga terbagi menjadi dua kelompok, yaitu:

a) Variabel Numerik :
1. Bilangan bulat (integer) menampung bilangan berkisar antara 32768 hingga 32768.

SMART ELECTRONIC SYSTEM LABORATORY Page 17


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2. Bilangan desimal berpresisi tunggal, dalam bentuk floating point menampung data dari -3.4E-
38 sampai 3.4E+38 sedangkan dalam bentuk desimal dapat menampung hingga 6 desimal ( 6
angka di belakang koma ).
3. Bilangan desimal berpresisi ganda, dalam bentuk double precision berkisar antara 10-308
sampai 10308, sedangkan dalam bentuk decimal dapat menampung hingga 15 desimal (15 angka
dibelakang koma).
b) Variabel Teks:
1. Konstanta karakter misalnya ditulis dengan diawali 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 bias ditulis dalam bentuk eksponensial (menggunakan tanda e), contohnya27.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 petik
ganda(“), contohnya: “Pemrograman Dasar C”.

 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.

SMART ELECTRONIC SYSTEM LABORATORY Page 18


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Misalkan pada contoh pertama, int x; adalah mendeklarasikan sebuah variabel bertipe data int
dengan nama x. Maka, variabel x tersebut sudah menampung nilai-nilai berupa bilangan bulat(fungsi
tipe data int). Pada pendeklarasian ini kita juga bisa mendeklarasikan lebih dari satu variabel yang
memiliki tipe data sama. Contoh : int bilangan1, bilangan2, bilangan3;

2.5 DEKLARASI KONSTANTA


 KONSTANTA
Konstanta adalah sebuah tempat atau container dari suatu nilai. Sesuai dengan namanya,
nilai dari konstanta bersifat tetap (konstan) dan tidak bisa diubah sepanjang program berjalan.
Inilah yang menjadi pembeda antara konstanta dengan variabel.
Jika di dalam kode program kita ingin mengubah nilai ini, harus menggunakan variabel
Secara garis besar konstanta dapat kita bagi atas dua bagian :

1. Bilangan (numerik)
i. Bilangan bulat (integer)
ii. Bilangan decimal berpresisi tunggal (floating point), dengan 2 tampilan :
- Bentuk desimal, contoh : 1.23

- Bentuk eksponen, contoh : 1.234e2 artinya 1.234 x 102.


iii. Bilangan decimal berpresisi ganda, sama dengan point (ii) tapi dengan ketelitian lebih
tinggi.
2. 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.
 PENDEKLARASIAN KONSTANTA
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program
berlangsung. Konstanta harus didefinisikan terlebih dahulu di awal program. Dalam bahasa
C konstanta dideklarasikan menggunakan preprocessor #define.
Contoh :
#define PHI 3.14
#define nim “201811072”
#define nama “Fathur”
#define conts int a = 23;

SMART ELECTRONIC SYSTEM LABORATORY Page 19


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.6 Deklarasi Fungsi
Fungsi merupakan bagian yang terpisah dari program dan dapat diaktifkan atau
dipanggil dimanapun di dalam program. Fungsi dalam bahasa C ada yang sudah disediakan
sebagai fungsi pustaka seperti printf(), scanf(), getch() dan untuk menggunakannya tidak
perlu dideklerasikan. Fungsi yang perlu dideklerasikan terlebih dahulu adalah fungsi yang
dibuat oleh programmer.
Bentuk umum deklarasi sebuah fungsi adalah :
Tipe_nama_fungsi(parameter_fungsi); Contohnya:
Float luas_lingkaran(int jari);
void tampil();
int tambah(int x, int y);

 Mengatur tampilan bilangan pecahan (float).


Bentuk umum :
printf(“%.nf”, argument);
n: menyatakan max jumlah digit dibelakang koma.m: menampilkan min karakter sebelum
titik Argument : Nilai atau variabel yang akan ditampilkan.
Contoh :
printf(“%m.2f”. nilai); artinya variabel nilai akan ditampilkan dengan 2 digit dibelakang
koma.

III. TUGAS RUMAH


1. Bagaimana struktur penulisan program?
2. Jelakan pengertian dari source code dan executable!
3. Jelaskan perbedaan deklarasi,variable dan tipe data!
4. Sebutkan dan Jelaskan macam-macam tipe data dasar!
5. Apa yang dimaksud dengan deklarasi variable dan deklarasi konstanta?

SMART ELECTRONIC SYSTEM LABORATORY Page 20


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM :
Program 1.1
#include<stdio.h>
int main()
{
printf("Selamat Datang Di Laboratorium Algoritma dan Pemrograman^ ^");
return 0;
}

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() {} ?

SMART ELECTRONIC SYSTEM LABORATORY Page 22


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL II
FUNGSI DAN OPERATOR
I. TUJUAN
a. Praktikan dapat memahami fungsi yang ada dalam header.
b. Praktikan dapat memahami operator-operator yang ada dalam bahasa C.
c. Praktikan dapat mengaplikasikan operator tersebut dalam program.

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

SMART ELECTRONIC SYSTEM LABORATORY Page 23


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
dengan nilai:
1. Negative, jika string pertama kurang dari string kedua
2. Nol,jika string pertama sama dengan string kedua
3. Positif,jika string pertama lebih besar dari yang kedua.
bentuk umum: strcmp(string1,string2);

o “ctype.h” (Menyimpan Fungsi Operasi Karakter)


- islower():
Fungsi akan menghasilkan nilai benar( bukan nol) jika karakter merupakan huruf kecil.
Bentuk umum: islower(char);
- isupper():
Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf capital.
Bentuk umum: isupper(char);
- Isalpha():
Fungsi akan menghasilkan nilai benar(bukan nol) jika argument dalam karakter yang berupa
huruf dalam alphabet
. Bentuk umumnya: isalpha(char);.
- isdigit():
Fungsi akan menghasilkan nilai benar(bukan nol) jika karakter merupakan sebuah digit.
Bentuk umum : isdigit(char);
- tolower():
Fungsi akan mengubah huruf kapital menjadi huruf kecil. bentuk umum : tolower(char);
- toupper():
Fungsi akan mengubah huruf kecil menjadi huruf capital.
bentuk umum: toupper(char);

o “math.h” dan “stdlib.h” (Menyimpan Fungsi Operasi Matematik)


-sqrt():
digunakan untuk menghitung akar dari sebuah bilangan bentuk umum : sqrt(bilangan);
-pow();
digunakan dalam menghitung pemangkatan dari suatu bilangan bentuk umum :
pow(bilangan);
-sin(),cos(),tan():
masing masing digunakan untuk menghitung nilai sinus ,cosines dan tangen dari suatu
sudut. Bentuk umum:
1. sin(sudut);
2. cos(sudut);
3. tan(sudut);
-atof();
digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double bentuk
umum :atof(char x);
-atoi();
digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer bentuk umum :
atoi(char x);
SMART ELECTRONIC SYSTEM LABORATORY Page 24
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
-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);
o “windows.h” (Menyimpan Fungsi System)
-system(“cls”);
Singkatan dari "clear the screen", digunakan untuk membersihkan layar.
-system(“echo …”);
Digunakan untuk menampilkan teks ke layar, bentuk umum : system(“echo string”);
-system(“color …”);
Digunakan untuk merubah warna semua teks secara keseluruhan. Bentuk umum :
system(“color 5C”). Dimana 5 (Purple) merupakan warna background, sedangkan C (Light
Red) merupakan warna teks. Berikut adalah listing code warna Hexadecimal :
0 = Black
1 = Blue
2 = Green
3 = Aqua
4 = Red
5 = Purple
6 = Yellow
7 = White
8 = Gray
9 = Light Blue
A = Light Green
B = Light Aqua
C = Light Red
D = Light Purple
E = Light Yellow
F = Light White

2.2 MEMASUKKAN DATA


Dalam bahasa C proses memasukkan suatu data bisa menggunakan beberapa
fungsi,diantaranya :

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 &.

Kode penentu format :


%c : Membaca sebuah karakter
%i, %d : Membaca sebuah bilangan bulat (integer)
%f, %lf : Membaca sebuah bilangan pecahan (real)
%o : membaca sebuah bilangan octal
%x : Membaca sebuah bilangan heksadesimal

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.2.4 getch() dan getche()


Fungsi getch() dan getche() digunakan membaca data karakter. Karakter yang dimasukkan
tidak perlu diakhiri dengan penekanan tombol enter. Jika 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.

2.3 MENAMPILAKAN DATA


Menampilkan data ke layar monitor dapatmenggunakan fungsi printf(), puts(), dan
putchar().
 Fungsi printf()
digunakan untuk menampilkan semua jenis data (numeric dan karakter).
 Fungsi puts()
digunakan untuk menampilkan data string dan secara otomatis akan diakhiri dengan
perpindahan baris.
 Fungsi putchar()
digunakan untuk menampilkan sebuah karakter.

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

2.4.1 OPERATOR UNARY


Dalam bahasa C terdapat beberapa operator unary, yaitu :
Operator Arti Letak Contoh Ekivalen

Sebelum A=-B*C A=(-B)*C


- Unary minus Operator

Sebelum dan
++ Penambahan nilai 1 sesudah A++ A=A+1

Sebelum dan
-- Pengurangan nilai 1 Sesudah A-- A=A-1

sizeof Ukuran operand Sizeo f(l)


dalam byte Sebelum -

! Unary NOT Sebelum !A -

~ Birtwise NOT Sebelum ~A -

& Alamat Operand Sebelum &A -

* Nilai dari pointer Sebelum *A -

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.

SMART ELECTRONIC SYSTEM LABORATORY Page 27


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
CONTOH 2:
int x = 0;
int y = 0;
y = x++; // hasil : y=0, x=1 .
Dari contoh 2 nilai X dicopy terlebih dahulu ke variable Y baru kemudian ditambahkan 1.
Proses operasi ini sama juga dengan operator unary (x- - dan - -x).

2.4.2 OPERATOR ARITMATIKA


Operator aritmatika adalah operator yang digunakan untuk operasi bilangan. Bahasa C
menyediakan lima operator aritmatika, yaitu :
* : Untuk perkalian
/ : Untuk pembagian
% : Untuk sisa pembagian (Modulo)
+ : Untuk pertambahan
- : Untuk pengurangan
Catatan : Modulo digunakan untuk mencari hasil dari sisa pembagian. Contoh 10%3 =1,
karena 10 jika dibagi dengan 3 hanya bisa yang mendekati yaitu 3*3 = 9 dan
menghasilkan sisa 1. Modulo disini yaitu sisa dari hasil pembagiannya.

2.4.3 OPERATOR RELASI / HUBUNGAN


Operator relasi adalah operator yang digunakan untuk membandingkan dua nilai sejenis.
Kedua nilai tersebut dapat berupa konstanta atau variabel.

Operator Arti Contoh Keterangan


== Sama dengan x==y Apakah x sama dengan
y
!= Tidak sama x!=y Apakah x tidak sama
dengan dengan y
< Kurang dari x<y Apakah x kurang dari y
> Lebih dari x>y Apakah x lebih dari y
<= Kurang dari sama x<=y Apakah x kurang dari
dengan sama dengan y
>= Lebih dari sama x>=y Apakah x lebih dari
dengan sama dengan 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

SMART ELECTRONIC SYSTEM LABORATORY Page 29


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
III. TUGAS RUMAH
1. Sebutkan macam-macam operator dalam bahasa C beserta contohnya!
2. Apa yang dimaksud dengan fungsi dalam bahasa C?
3. Sebutkan dan jelaskan macam-macam fungsi dalam header conio.h dan math.h dalam
bahasa C!
4. Sebutkan macam-macam fungsi untuk memasukan data!
5. Sebutkan dan jelaskan macam macam operator aritmatika, operator hubung, dan operator
logika ?

SMART ELECTRONIC SYSTEM LABORATORY Page 30


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM
Program 2.1
#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<math.h>
#include<string.h>
#define phi 3.14

char nama[30], jurusan[30];


float p,l,t,r;

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());

SMART ELECTRONIC SYSTEM LABORATORY Page 31


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
getch();
clearscreen();
printf("Masukkan Jari Jari :");
scanf("%f",&r);
lingkaran(r);
getch();
clearscreen();
printf("Luas segitiga adalah : %f",segitiga(3.3,3.2));
return 0;
}

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
}

SMART ELECTRONIC SYSTEM LABORATORY Page 32


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
int main(){
preIncrement();
postIncrement();
getch();
system("cls");
Gabungan();
return 0;
}
Program 2.3
#include<stdio.h>

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;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 33


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Program 2.4
#include<stdio.h>
#include<string.h>
#include<windows.h>
int main(){
char input1[30],input2[30];
printf("Masukkan sebuah string 1:");
gets(input1);
printf("Masukkan sebuah string 2:");
gets(input2);
system("cls");
if (strlen(input1) > strlen(input2)){
printf("Jumlah karakter ( %s ) lebih banyak",input1);
printf("\nBerjumlah : %d",strlen(input1));
}else{
printf("Jumlah karakter ( %s ) lebih banyak",input2);
printf("\nBerjumlah : %d",strlen(input2));
}
return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 34


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
V. TUGAS AKHIR
1. Apa perbedaan penggunaan X++ dan ++X dalam operator unary dan berikan contohnya
masing-masing?
2. Berapakah hasil variable A pada output program dibawah ini? Jelaskan!
int A;
char input1[30]={"teknologi"};
char input2[30]={"PLN"};
strcat(input1,input2);
strcpy(input1,input2);
a=strlen(strcat(input1,input2));
printf("%d\n",a);
3. Apakah penggunaan operator aritmatika membutuhkan header math.h? Jelaskan !
4. Pada program operator relasi apa perbedaan ‘=’ dan ‘==’? jelaskan!

SMART ELECTRONIC SYSTEM LABORATORY Page 35


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL III
PERCABANGAN DAN PERULANGAN

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 { }.

Pada IF ini hanya untuk satu kondisi, strukturnya yaitu :


If(kondisi)
{
pernyataan atau statement;
}

Contoh programnya yaitu :


#include <stdio.h> int main()
{
int N; scanf("%d", &N);
if(N>0)
{
printf("N adalah Bilangan Positif");

SMART ELECTRONIC SYSTEM LABORATORY Page 36


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
}
}

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.

2.1.3 Percabangan IF ELSE


Pernyataan if else sebenarnya pengembangan dari pernyataan if. Disini kedua
cabang, yaitu syarat dipenuhi dan syarat tidak dipenuhi, masing-masing memiliki perintah
yang harus dijalankan.
Seperti halnya pernyataan if , cara penulisan struktur if else juga dibedakan menjadi dua
bentuk yaitu alternative dengan satu perintah atau alternative dengan banyak perintah.
Bentuk dasar pernyataan if else :

Sedangkan pada IF-Else ini hanya untuk dua kondisi, strukturnya yaitu :
If(kondisi)
{
pernyataan atau statement;
}
else
{
pernyataan atau statement;

Contoh programnya yaitu :


#include <stdio.h> int main()
{
int N;
printf("Masukkan Bilangan Bulat : "); scanf("%d", &N);
if(N>0){
printf("N adalah Bilangan Positif");
}
else
{
printf("N bukan Bilangan Positif"); }
}

SMART ELECTRONIC SYSTEM LABORATORY Page 37


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.1.4 Percabangan Nested IF
Nested if atau yang biasa dikenal if bersarang (IF didalam IF) ini juga sering
digunakan, jika kita mempunyai suatu kondisi dan didalam kondisi tersebut kita ingin
menambahkan kondisi lagi maka gunakanlah if bersarang, strukturnya yaitu :

If(kondisi)
{
if(kondisi)
{
pernyataan atau statement;
}
else
{
pernyataan atau statement;
}
}

Contoh programnya yaitu :


#include <stdio.h>
int main()
{
int N;
printf("Masukkan Bilangan Bulat : "); scanf("%d", &N);

if(N>=0 && N<=100)


{
if(N<=50)
{
printf("Nilai N kurang dari sama dengan 50");
}
else
{
printf("Nilai N lebih dari 50");
}
}
else
{
printf("N bilangan negatif atau lebih dari 100");
}
}

SMART ELECTRONIC SYSTEM LABORATORY Page 38


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.1.5 Percabangan Switch Case
Pada Switch ini kita bisa lebih efektif untuk pemrograman yang menggunakan
banyak kondisi karena strukturnya simple hanya menggunakan case. Oleh karena itu
sebelum menggunakan Switch kita harus melihat kondisi terlebih dahulu dari program yang
akan kita buat, apakah mungkin jika menggunakan Switch. Lalu sama seperti IF terdapat
juga Switch bersarang yaitu Switch didalam Switch atau kita bahkan bisa memasukkan
fungsi IF didalam Switch. Untuk penggunaan nilai range dalam switch menggunakan
"spasi", contohnya "case 1 :" #tanpa tanda petik. Terakhir apabila akan menggunakan
karakter harus menambahkan kutip 1, contohnya " case 'A' " #tanpa tanda petik

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.

SMART ELECTRONIC SYSTEM LABORATORY Page 39


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
2.2.2 Perulangan WHILE
Perulangan while merupakan struktur kontrol perulangan dimana kondisi akan
diperiksa sebelum statemen, dan akan terus berjalan selama kondisi yang dihasilkan dalam
perulangan tersebut masih bernilai true(benar). Struktur dari perulangan while ini hampir
sama dengan struktur perulangan for.

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++;
}
}

2.2.3 Perulangan DO WHILE


Kalo perulangan while kondisi diperiksa sebelum statemen beda halnya dengan do
while. Jadi perulangan do while yaitu stuktur kontrol perulangan yang dimana kondisi di
periksa setelah statemen. Jada penulisan kondisi berada di akhir perulangan sedangkan pada
perulangan while kondisinya dituliskan di awal perulangan.

do
{
statement;
}
while(kondisi);

Contoh Kode Program do while: #include "stdio.h"


int main()
{
int x; x=1;
do{
printf("%d. Belajar Pengulangan do-While\n", x);
x++;
}
while(x<=10);
SMART ELECTRONIC SYSTEM LABORATORY Page 40
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
}

2.2.4 Perulangan FOR


Perulangan for merupakan stuktur kontrol perulangan yang dimana jumlah
perulangan ditentukan dalam struktur. Jadi dalam struktur berisi nilai awal, kondisi, dan
langkah perulangan.

for(inisialisasi; syarat; penambahan)

{
statement;
}

Contoh Kode Program Menampilkan for: #include "stdio.h"


int main(){
int x;
for(x=1; x<=10; x++){
printf("%d. Belajar Pengulangan for\n", x);
}
}

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.

SMART ELECTRONIC SYSTEM LABORATORY Page 41


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
III. TUGAS RUMAH
1. Jelaskan pengertian dari percabangan dan perulangan!
2. Sebutkan dan jelaskan struktur percabangan!
3. Sebutkan dan jelaskan struktur perulangan!
4. Jelaskan perbedaan antara IF dan IF ELSE!
5. Jelaskan perbedaan goto dan continue!
6. Apa yang dimaksud dengan statement?

SMART ELECTRONIC SYSTEM LABORATORY Page 42


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM
Program 3.1
#include<stdio.h>
int main()
{
int a;
printf("masukkan bilangan positif:");
scanf("%d", &a);
if(a>0)
{
printf("%d adalah Bilangan positif",a);
}
return 0;
}

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");
}

SMART ELECTRONIC SYSTEM LABORATORY Page 43


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
else
{
printf("Nilai a lebih dari 50");
}
}else
{
printf("a bilangan negatif atau lebih dari 100");
}
return 0;
}

Program 3.3
#include<stdio.h>
int main()
{
char nilai;

printf("Input Nilai Anda (A - E): "); scanf("%c",&nilai);


switch (nilai) { case 'A':
printf("Pertahankan! \n"); break;
case 'B':
printf("Harus lebih baik lagi \n"); break;
case 'C':
printf("Perbanyak belajar \n"); break;
case 'D':
printf("Jangan keseringan main \n"); break;
case 'E':
printf("Kebanyakan bolos... \n"); break;
default:
printf("Maaf, format nilai tidak sesuai \n");
}
return 0;
}

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;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 45


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
V. TUGAS AKHIR
1. Apa kegunaan dari instruksi break, goto, continue dan case?
2. Apakah instruksi while dapat digantukan do while maupun for? Jelaskan!
3. Ada berapa cabang pada if dan if else? Jelaskan!
4. Analisa program dibawah ini, kemudian koreksi kesalahannya! #include <stdio.h>
int main()
{
int pil; float a,b,c;
printf("===== Program Kalkulator Sederhana =====\n\n");
printf("Masukan bilangan pertama : ");
scanf("%f",&a);
printf("\nMasukan bilangan kedua : ");
scanf("%f",&b);
printf("\n\n<<< Menu Pilihan >>>\n\n");
printf("1. Penjumlahan \n");
printf("2. Pengurangan \n");
printf("3. Perkalian \n");printf("4. Pembagian \n\n");
printf("Operasi apa yang anda inginkan ( 1-4 )? : \n\n");
scanf("%d",&pil);
printf("==== hasil ====\n\n");
switch(pil);
{
case a: c = a + b;
printf(" %i + %i = %i",a,b,c); break();
case b: c = a - b;
printf(" %i - %i = %i",a,b,c); break;
case c: c = a * b;
printf(" %i * %i = %i",a,b,c); break();
case d: c = a / b;
printf(" %i : %i = %i",a,b,c); break();
default: printf("\n >> Operasi yang anda masukan tidak ada pada menu !");
}
return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 46


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL IV
FLOWCHART DAN STRUKTUR PENULISAN

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.

SMART ELECTRONIC SYSTEM LABORATORY Page 47


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
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.
5. 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.

4.2.2. Simbol dan Notasi Flowchart


Dipakai sebagai alat Bantu menggambarkan proses di dalam program. Dan dibagi
menjadi tiga kelompok:
♦ Flow Direction Symbols ♦
dipakai untuk menggabungkan antara symbol yang satu dengan symbol lainnya

Symbol Off-Line Connector (Simbol untuk keluar/masuk procedure atau


proses dalam lembar/halaman yang lain)

Symbol Connector (Simbol untuk keluar/masuk prosedur atau proses dalam


lembar/halaman yang sama)
♦ Processing symbols ♦
Menunjukkan jenis operasi pengolahan dalam suatu prosedur
Symbol Process (Simbol yang menunjukkan pengolahan yang
dilakukan oleh komputer)
Symbol Manual Operation (Simbol yang menunjukkan pengolahan yang
tidakdilakukanoleh komputer)
Symbol Decision (Simbol untuk kondisi yang akan menghasilkan beberapa
kemungkinanjawaban/aksi)

Symbol Predefined Process (Simbol untuk mempersiapkan penyimpanan


yang akandigunakan sebagai tempat pengolahan di dalam storage)

Symbol Terminal (Simbol untuk permulaan atau akhir dari suatu program

Symbol Off-line Storage (Simbol yang menunjukkan bahwa data di dalam


symbol ini akandisimpan)

SMART ELECTRONIC SYSTEM LABORATORY Page 48


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Symbol Manual Input (Simbol untuk pemasukan data secara manual on-
line keyboard)

Symbol Keying Operation (Simbol operasi dengan menggunakan mesin


yang mempunyaikeyboard)

♦ 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 magnetic-tape unit (Symbol yang menyatakan input berasal pita


magnetic atau outputdisimpan ke pita magnetic)

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.

SMART ELECTRONIC SYSTEM LABORATORY Page 49


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Contoh: flowchart dari algortma mencari luas persegi Panjang

 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.

SMART ELECTRONIC SYSTEM LABORATORY Page 50


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Contoh: flowchart dari algoritma untuk menampilkan bilangan ganjil dibawah nilai 50.
Struktur penulisan:
A. Start : berisi instruksi untuk persiapan memulai program sebelum menangani pemecahan
masalah
B. Read : berisi instruksi untuk membaca data untuk sebagai input program
C. Process : berisi kegiatan pengolahan yang berkaitan dengan pemecahan masalah sesuai
dengan data yang dinput
D. Write : berisi instruksi untuk merekam untuk menampilkan hasil kegiatan process sebagai
output program
E. End : mengakhiri kegiatan pengolahan program.

III. TUGAS RUMAH


1. Jelaskan mengenai flowchart dengan Bahasa masing-masing!
2. Sebutkan dan jelaskan jenis flowchart serta contohnya masing-masing minimal 3!
3. Sebutkan dan jelaskan macam-macam symbol dan notasi flowchart!
4. Sebutkan dan gambarkan contoh penerapan flowchart dalam kehidupan sehari-hari!

SMART ELECTRONIC SYSTEM LABORATORY Page 51


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM
Program 4.1
#include<stdio.h>
int main()
{
int F,m,a;
printf("\t\t\t\t-----------------RUMUS GAYA ----------------\n\n");
printf("\t\t\t\tMasukan nilai massa: ");
scanf("%d",&m);
printf("\t\t\t\tMasukan nilai percepatan: ");
scanf("%d",&a);
F=m*a;
printf("\t\t\t\tBesar nilai Gaya adalah:%d",F);
return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 52


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
SMART ELECTRONIC SYSTEM LABORATORY Page 53
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Program 4 . 2
#include <stdio.h>
int main()
{
float nilai;
printf("Masukan nilai UTS yang didapat : ");
scanf("%f", &nilai);
if(nilai>=60){
printf("\nLULUS :) \n");
}
else
{
printf("REMEDIAL :( ");
}
return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 54


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
SMART ELECTRONIC SYSTEM LABORATORY Page 55
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Program 4.3
#include<stdio.h>
int main()
{
int x,a;
printf("Mengulang kata :\n");
printf("\"Algoritma dan Pemograman\"");
printf("\nMasukkan banyaknya perulangan:\n\n");
scanf("%d",&a);

for(x=1;x<=a;x++)
{
printf("\"Algoritma dan Pemograman\"\n");
}
return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 56


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
SMART ELECTRONIC SYSTEM LABORATORY Page 57
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Program 4.4.
Do while
#include<stdio.h>
int main()
{
int x,a;
x=1;
printf("Mengulang kata :\n");
printf("\"Algoritma dan Pemograman\"");
printf("\nMasukkan banyaknya perulangan:\n\n");
scanf("%d",&a);
do{
printf("\"Algoritma dan Pemograman\"\n");
x++;
}
while (x<=a);

return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 58


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
SMART ELECTRONIC SYSTEM LABORATORY Page 59
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
V. TUGAS AKHIR
1. Secara garis besar terdapat 3 bagian utama dalam pembuatan flowchart, sebutkan dan
jelaskan bagian tersebut !
2. Apakah perbedaan dari symbol off line connector dengan symbol connector?
3. Gambarkan flowchart dari algoritma dibawah ini !

 Inputkan sebuah bilangan (bilangan bulat)


 Bagi bilangan yang sudah diinputkan dengan angka 2
 Jika menghasilkan sisa pembagian ( 0 ) maka bilangan tersebut genap
 Jika menghasilkan sisa pembagian bukan (0) bimaka bilangan tersebut ganjil.

SMART ELECTRONIC SYSTEM LABORATORY Page 60


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL V
TIPE DATA TURUNAN (ARRAY, STRUCT DAN POINTER)

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).

1.1.1 Array Dimensi Satu


Array dimensi satu adalah kumpulan-kumpulan elemen yang memiliki data yang sama dan
hanya memiliki satu indeks saja. Array dimensi satu dapat berupa sebuah vector. Setiap elemen
array dapat diakses melalui indeks. Indeks array secara default dimulai dari 0.

Deklarasi array :
Tipe_array nama_array[indeks 1];
Contoh :
int nilai[5];

Nilai[0] Nilai[1] Nilai[2] Nilai[3] Nilai[4]

70 70 55 97 80

CATATAN : String juga sebenarnya merupakan array yang bertipe karakter. Jumlah elemen
array menyatakan jumlah string.

SMART ELECTRONIC SYSTEM LABORATORY Page 61


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
1.1.2 Array Dimensi Dua
Array dua dimensi merupakan sebuah variabel yang menyimpan sekumpulan data yang
memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip yaitu indeks
baris dan indeks kolom. Bentuknya dapat berupa matriks atau table.
Deklarasi array:
Tipe_array nama_array[indeks 2][indeks 1];
Contoh:
int x[3][4];
X[0][0] X[0][1] X[0][2] X[0][3]

X[1][0] X[1][1] X[1][2] X[1][3]

X[2][0] X[2][1] X[2][2] X[2][3]

Cara Mengakses array :


Untuk mengakses array,misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10
maka perintahnya adalah sebagai berikut :
X[2][3]=10;
Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu :
- Row Major Order(secara baris per baris)
- Column Major Order(secara kolom per kolom)
1.1.3 Array Multi Dimensi
Array multidimensi adalah array yang mempunyai ukuran lebih dari dua. Bentuk
pendeklarasiannya sama saja dengan array dimensi satu maupun array dimensi dua.
Bentuk umumnya yaitu :

tipe_array nama_array[indeks 3][indeks 2]&[indeks 1]; Contoh:


float x[2][3][4]

X[0][0][0] X[0][0][1] X[0][0][2] X[0][0][3] X[1][0][0] X[1][0][1] X[1][0][2] X[1][0][3]

X[0][1][0] X[0][1][1] X[0][1][2] X[0][1][3]


X[1][1][0] X[1][1][1] X[1][1][2] X[1][1][3]

X[0][2][0] X[0][2][1] X[0][2][2] X[0][2][3]


X[1][2][0] X[1][2][1] X[1][2][2] X[1][2][3]

SMART ELECTRONIC SYSTEM LABORATORY Page 62


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
1.2 STRUCT
Struct adalah suatu struktur data yang dapat menyimpan beberapa variabel yang memiliki tipe
data yang berbeda digabung dalam suatu Struct. 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)
Struct digunakan untuk memudahkan kita dalam penyimpanan data dimana semua data dapat
menjadi satu kelompok.

Contoh :

char name[] = "Bimo";


char address[] = "Jakarta"; int age = 25;
Contoh diatas hanya berupa satu data, maka apabila kita menggunakan struct contohnya akan
menjadi seperti ini:

#include <stdio.h>
#include <string.h>

struct Mahasiswa
{
char name[20];
char address[20];
int age;
};

int main()
{
// menggunakan array
Mahasiswa mhs[2];

// mengisi nilai ke struct


strcpy(mhs[0].name, "Bimo");
strcpy(mhs[0].address, "jakarta");
mhs[0].age = 25;

strcpy(mhs[1].name, "Bambang");
strcpy(mhs[1].address, "surabaya");
mhs[1].age = 23;

// mencetak isi struct


printf("## Mahasiswa 1 ##\n");
SMART ELECTRONIC SYSTEM LABORATORY Page 63
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
printf("Nama: %s\n", mhs[0].name);
printf("Alamat: %s\n", mhs[0].address);
printf("Umur: %d\n", mhs[0].age);
printf("## Mahasiswa 2 ##\n");
printf("Nama: %s\n", mhs[1].name);
printf("Alamat: %s\n", mhs[1].address);
printf("Umur: %d\n", mhs[1].age);

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;

1.4 KODE ASCII

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

SMART ELECTRONIC SYSTEM LABORATORY Page 64


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
sistem RS-232, RS-485, RS-422 dan TTL.

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.

Tabel ASCII

SMART ELECTRONIC SYSTEM LABORATORY Page 65


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
III. TUGAS RUMAH
1. Apa yang dimaksud dengan Array?
2. Apa yang dimaksud dengan struct?
3. Sebutkan dan jelaskan jenis-jenis array beserta bentuk umumnya!
4. Apa yang dimaksud dengan pointer?
5. Jelaskan tentang ASCII serta berikan beberapa contoh pengaplikasian dalam kehidupan
minimal (3)?

SMART ELECTRONIC SYSTEM LABORATORY Page 66


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM

Program 5.1
#include<stdio.h>
#include<conio.h>

int main(){

int x=20; /*membuat variabel x*/


int*px; /*membuat pointer untuk variabel x*/

px=&x; /*mengisi alamat memori variabel x ke dalam pointer px*/

printf("Alamat memori variabel x:%x\n",&x );

/*alamat memori yang disimpan pointer*/


printf("Alamat memori di pointer px:%x\n",px);

/*mengambil nilai x menggunakan pointer*/


printf("Nilai pada*px:%d\n",*px);

/*mencetak isi variabel x sebelum diubah*/


printf("Nilai x sebelum:%d\n",x);

/*mengubah isi nilai variabel x melalui pointer*/


*px=48;

/*mencetak isi variabel x sesudah diubah*/


printf("Nilai x sesudah:%d\n",x);

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;

// mencetak isi array


printf("Nilai ke-1: %d\n", nilai[0]);

SMART ELECTRONIC SYSTEM LABORATORY Page 67


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
printf("Nilai ke-2: %d\n", nilai[1]);
printf("Nilai ke-3: %d\n", nilai[2]);
printf("Nilai ke-4: %d\n", nilai[3]);
printf("Nilai ke-5: %d\n", nilai[4]);

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);

printf("Data Anda :\n");


printf("NIM :%s\n",mhs.NIM);
printf("Nama :%s\n",mhs.nama);
printf("IPK :%.2f\n",mhs.ipk);
return 0;
}

Program 5.6

#include<stdio.h>
int main(){
int hurufKecil = 97;
int hurufBesar = 65;
int n;

printf("Program Mencetak n Huruf Pertama\n");


printf("\nInput Nilai n : ");
scanf("%d", &n);

if(n < 0 || n > 26)


{
printf("SORRY : Nilai n tidak sesuai dengan jumlah alfabet (1 - 26). ");
}
else
{
printf("Lower Case : ");
for(int i = 0; i < n; i++){
printf("%c ", hurufKecil);
hurufKecil++;
SMART ELECTRONIC SYSTEM LABORATORY Page 70
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
}
printf("\nUpper Case : ");
for(int i = 0; i < n; i++){
printf("%c ", hurufBesar);
hurufBesar++;
}
}
return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 71


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
V. TUGAS AKHIR
1. Apa perbedaan dari array dimensi dua dan multi dimensi?
2. Apa yang dimaksud dari int x[3][4]?
3. Apa itu struct dan jelaskan kegunaannya !
4. Jelaskan program pointer dibawah ini!
#include<stdio.h>
int main(){
int count=13,sum=9, *x,*y;
x=&count;
*x=27;
y=x;
x=&sum;
*x=count;
sum=*x/2*3;
printf("count = %d, sum = %d, *x = %d, *y = %d",count,sum,*x,*y);
return 0;
}

5. Buatlah source code dari output dibawah ini!


Keterangan :
Presentase untuk Nilai Akhir
Nilai Praktikum : 30%
Nilai Laporan : 50%
Nilai Presentasi : 20%

SMART ELECTRONIC SYSTEM LABORATORY Page 72


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL VI
TIPE DATA ENUMERASI DAN OPERASI FILE

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

- nilai_1 sampai dengan nilai_m adalah konstanta identifier

contoh pendefinisian enumerasi dalam aplikasi :


enum JenisKelamin { pria, wanita };
enum WarnaPrimer { merah, hijau, biru };
enum NamaHari { minggu, senin, selasa, rabu, kamis, jumat, sabtu };

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() {

// Mendeklarasikan variabel bertipe string


char nama[25];
// Mendeklarasikan variabel gender yang bertipe JenisKelamin
enum JenisKelamin gender;

// Mengisikan nilai ke dalam variabel nama dan gender


strcpy(nama, "Rani");
gender = wanita; // dapat ditulis dengan gender = 1

// Menampilkan nilai yang disimpan di dalam variabel nama dan gender


printf("Nama \t\t: %s\n", nama);
printf("Jenis kelamin \t: %d", gender);

getch();
return 0;
}

Hasilnya :
Nama : Rani
Jenis Kelamin : 1

2.2 Operasi FILE

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

SMART ELECTRONIC SYSTEM LABORATORY Page 74


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
ataupun dilakukan proses perhitungan. Namun untuk cara tersebut variable yang berfungsi
sebagai memori hanya akan menyimpan data secara sementara, artinya data akanmenghilang
apabila kita menutup program tersebut.
Permasalahan tersebut dapat kita atasi dengan menyimpan data kedalam sebuah file text.
Dalam Bahasa C, kita dapat menyimpan data masukan kedalam sebuah file. Untuk dapat
menggunakan operasi file kita harus membuat sebuah file pointer. File pointer yang dibuat
menunjuk kepada (berisi alamat dari) suatu struktur data bertipe FILE yang sudah
didefenisikan oleh compiler. Ketika mendeklarasikan sebuah file pointer misalnya dengan
instruksi (FILE *Nama_Pointer) maka yang terbentuk hanya pointernya saja. Struktur yang
berisi informasi file belum dialokasikan karena file tersebut belum diaktifkan atau dibuka.
Dalam proses operasi file, berkas atau file yang ingin dibaca harus diletakkan di satu directory
dengan program, sama halnya ketika membuat file baru melalui program, maka file yang dibuat
akan disimpan didalam directory yang sama dengan program tersebut.

2.3 Macam Macam Operasi File

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

b) w : Membuka atau membuat file baru untuk ditulis

c) a : Membuat atau membuka file yang sudah ada untuk ditambah record

d) r+ : Membuka file yang sudah ada untuk dibaca dan ditulis

e) w+ : Membuka file baru untuk di tulis dan dibaca

f) a+ : Membuka file yang sudah ada untuk dibaca dan ditambah record

SMART ELECTRONIC SYSTEM LABORATORY Page 75


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Jika dilakukan proses penulisan terlebih dahulu kemudian pembacaan dalam satu program,
Jenis Operasi Jika File Ada Jika File Tidak
Ada
r+ Dapat menuli Menggembalikan
dengan nilai NULL
mengganti
(overwrite) data
dari awal
w+ Dapat menulis Membuat file
dan membaca baru
dengan
overwrite
seluruh data
a+ Dapat menulis Membuat file
tanpai overwrite baru
data
Jika dilakukan proses pembacaan terlebih dahulu kemudian penulisan dalam satu program,

Jenis Operasi Jika File Ada Jika File Tidak


Ada
r+ Dapat membaca Mengembalikan
dan menulis nilai NULL
setelah EOF
w+ Tidak dapat Tidak dapat
membaca tetapi membaca tetapi
dapat menulis dapat menulis
dengan membuat
file baru
a+ Dapat membaca Tidak dapat
dan menuli tanpa membaca namun
overwrite dapat menulis

1.2 Membuka dan Menutup File

Setelah kita membuat file pointer, file tersebut belum dapat dialokasikan karena kita

SMART ELECTRONIC SYSTEM LABORATORY Page 76


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
belum mengaktifkan atau membuka file. Langkah awal untuk dapat mengoperasikan file
setelah deklarasi adalah membuka file tersebut dengan perintah sebagai berikut :
fopen=(“Nama_File.txt”,”Jenis_Operasi”);
ket :
- Nama_File.txt

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);

2.4 Menulis File

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.

SMART ELECTRONIC SYSTEM LABORATORY Page 78


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
III. TUGAS RUMAH
1. Sebutkan macam – macam operasi file!
2. Jelaskan cara mengoperasikan file secara utuh!
3. Apa yang dimaksud dengan tipe data enumerasi?
4. Bagaimana bentuk umum untuk mendefinisikan tipe data enumerasi serta jelaskan ?
5. Sebutkan fungsi-fungsi untuk memasukkan data ke dalam file dan jelaskan !

SMART ELECTRONIC SYSTEM LABORATORY Page 79


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM

Program 6.1
#include <stdio.h>
#include <string.h>
#include <conio.h>

enum Jenis_kelamin {Pria, Wanita};


enum pilihan {SATU=29, DUA, TIGA, EMPAT, LIMA, ENAM, TUJUH=21, DELAPAN};

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;

printf("nama pegawai: %s\n", peg.nama);


printf("nomor induk pegawai: %d\n", peg.nik);
printf("gaji pokok: %d\n", peg.gaji);
printf("usia: %d\n", peg.usia);

SMART ELECTRONIC SYSTEM LABORATORY Page 80


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
printf("gender: %d\n", peg.jk);
printf("kode: %d\n", peg.kode);
getche();
}

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 = ");

SMART ELECTRONIC SYSTEM LABORATORY Page 81


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
scanf("%d",&Rupiah);
printf("%d terdiri dari : \n",Rupiah);
tmp=0;
for(i=0;i<7;i++)
{
tmp=Rupiah/pecahanUang[i];
Rupiah-=tmp*pecahanUang[i];
if(tmp)
{
printf("- %d ",tmp);
for(j=0;j<20;j++)
{
printf("%c",namaPecahan[i][j]);
}
puts(" ");
}
}
if(Rupiah){
printf("\nSisanya %d rupiah tidak dapat ditukarkan",Rupiah);
}
printf("\n");
return 0;
}

Program 6.3

/*
catatan :

Dibawah ini contoh penggunaan fprintf,fputs dan putc


gunakan satu per satu, untuk menggunakannya
hapus tanda komentar yang terdapat
pada fungsi.
*/

#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);

//menulis kedalam file dengan fprintf


/*
fprintf(tulis,"%s",kalimat);
*/

//menulis kedalam file dengan fputs


/*
fputs(kalimat,tulis);
*/

//menulis kedalam file dengan putc


/* jumlah=strlen(kalimat);
while(n!=jumlah){
putc(kalimat[n],tulis);
n++;
}
*/
fclose(tulis);
return 0;
}

Program 6.4

/*
catatan :

SMART ELECTRONIC SYSTEM LABORATORY Page 83


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Dibawah ini contoh penggunaan fscanf,getc dan fgets gunakan satu per satu, untuk
menggunakannya hapus tanda komentar yang terdapat pada fungsi.
*/

#include<stdio.h>

int main(){
FILE *baca=fopen("Tulis.txt","r");
char kalimat[1000],kar;

if(baca==NULL)
printf("Gagal Brooo :(\n");

//membaca data dalam file dengan fscanf


/* while(fscanf(baca,"%s",kalimat)!=EOF)
printf("%s",kalimat);
*/

//membaca data dalam file dengan fgets


/* while(fgets(kalimat,sizeof(kalimat),baca))
printf("%s",kalimat);
*/

//membaca data dalam file dengan getc


/* while((kar = getc(baca))!=EOF)
printf("%c",kar);
*/

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;

printf("Masukkan jumlah Input :");


scanf("%d",&n);
system("cls"); //menghapus layar

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
}

rewind(data); //membalikkan kursor pada file agar kembali keawal


while(fgets(kalimat,sizeof(kalimat),data)){
printf("%s\n",kalimat);
}

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!

4. Jelaskan cara program berikut dengan analisa anda sendiri!

#include<stdio.h>

enum t_warna {merah, jingga, kuning, hijau, biru, ungu};

int main () {
enum t_warna warna;

for(warna = merah; warna <= ungu; warna++) printf(“%d”, warna);


return 0;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 86


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
MODUL VII
MANIPULASI BIT
I. TUJUAN

1. Praktikan dapat memahami manipulasi bit.


2. Praktikan dapat menganalisa untuk mengubah bit.
3. Praktikan dapat mengetahui format bilangan computer.

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.

2.2 Operator dalam Manipulasi Bit


Operator Bitwise :
Operator bitwise adalah operasi matematika yang mengoperasikan suatu
nilai dalam bilangan biner. Operator bitwise akan bekerja dengan mengubah
bilangan desimal menjadi bilangan biner, setelah itu akan melakukan operasi
berdasarkan operator bitwise yang digunakan dan pada akhirnya nilai tersebut
akan diubah menjadi bilangan desimal kembali.

SMART ELECTRONIC SYSTEM LABORATORY Page 87


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
Operator-operator Bitwise yaitu :
Operasi
Operator
Penggunaanya
Shift Left
<<
(Geser kiri)
Shift Right
>>
(Geser Kanan)
& Dan (AND)
| Atau (OR)
XOR (Exclusive
^
OR)
NOT
~ (Komplemen
Bitwise)

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

SMART ELECTRONIC SYSTEM LABORATORY Page 88


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
bernilai benar (1). Contoh :
11001001 = 201
01100100 = 100
AND

01000000 = 64
4. Operator Bitwise Atau/OR (|)

Operator Bitwise | ( OR ) digunakan untuk membandingkan bit dari dua operand,


Akan bernilai benar jika ada salah satu operand yang digabungkan ada yang bernilai
benar 11001001 = 201
01100100 = 100
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 (~)

Operator Bitwise ~ ( Komplemen Bitwise ) digunakan membalik nilai bit dari


suatu operand. Contoh:
0000 1000 = 8
Menjadi
1111 0111 = 247 (Komplemen 1)
Lalu proses selanjutnya yaitu dengan menambahkan 1 bit di sebelah paling
kanan untuk membuat hasilnya menjadi negatif
1111 0111
1
+
SMART ELECTRONIC SYSTEM LABORATORY Page 95
PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
1111 1000
Hasil 1111 1000 ini merupakan hasil dari komplemen 8 yaitu adalah -9
Nilai -9 ini sesuai dengan rumus dari operator bitwise yaitu -(n+1) dimana n
itu adalah 8.
Contoh :
n=8 maka -(n+1) = -(8+1) = -9
2.3 Format Bilangan Komputer
1. Bilangan Desimal
Bilangan desimal adalah bilangan yang berbasis 10 yaitu dimulai dari 0
sampai 9 (0,1,2,3,4,5,6,7,8,9). Untuk penulisannya yaitu 22 10. Angka 10 yang
berada disamping 22 merupakan tanda bahwa angka tersebut berbasis 10
(bilangan desimal). Pada Bahasa C, sudah mengenal bilangan desimal sehingga
digunakan langsung angka tanpa penulisan apapun. Untuk format bilangan ini
penggunaannya menggunakan format %d.
Contoh : 22 (22 merupakan bilangan desimal)
2. Bilangan Oktal
Bilangan oktal adalah bilangan yang berbasis 8 yaitu dimulai dari 0 sampai
7 (0,1,2,3,4,5,6,7). Untuk penulisannya yaitu 228. Angka 8 yang berada
disamping 22 merupakan tanda bahwa angka tersebut berbasis 8 (bilangan
oktal). Pada Bahasa C, penulisan oktal menggunakan 0.Untuk format bilangan
ini penggunaannya menggunakan format %o. Adapun bilangan oktal ditandai
dengan warna merah pada source code.
Contoh : 022 (22 merupakan bilangan oktal)
3. Bilangan Hexadesimal
Bilangan hexadesimal adalah bilangan yang berbasis 16 yaitu dimulai dari
0 sampai 9 dan dilanjutkan dengan huruf A sampai F
(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). untuk penulisannya yaitu 2216. Angka 16 yang
berada disamping 22 merupakan tanda bahwa angka tersebut berbasis 16
(bilangan hexadesimal). Pada Bahasa C, penulisan hexadesimal menggunakan
0x. Untuk format bilangan ini penggunaannya menggunakan format %x.
Contoh : 0x22 (merupakan bilangan hexadesimal)

SMART ELECTRONIC SYSTEM LABORATORY Page 97


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
4. Bilangan Binary (Bilangan Biner)
Binary Digit atau Bilangan Binary adalah bilangan yang hanya dinyatakan
dengan angka 0 dan angka 1 (bilangan berbasis 2). Dalam penggunaannya

angka 0 menyatakan suatu keadaan false atau salah. Sedangkan angka 1


menyatakan suatu keadaan true atau benar. Contohnya yaitu semisal suatu lampu
dikatakan kondisi menyala maka kita nyatakan itu dalam bentukangka 1 yaitu
benar. Sedangkan lampu dikatakan dalam kondisi matimaka kita nyatakan
dalam bentuk angka 0. Untuk penulisannya disamping bilangan binary kita
tuliskan basis 2 (bilangan binary).
Contoh Penulisan : 001110102 , 101110102

III. TUGAS RUMAH


1. Apa yang dimaksud dengan Manipulasi Bit?
2. Apa yang dimaksud dengan Bit?
3. Jelaskan apa yang dimaksud dengan Operator Bitwise dan sebutkan macam-
macam Operator Bitwise!
4. Sebutkan dan jelaskan format bilangan komputer!
5. Jelaskan penggunaan Operator Bitwise NOT/Komplemen pada Bahasa C?

SMART ELECTRONIC SYSTEM LABORATORY Page 98


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
IV. PROGRAM
Program 7.1
#include<stdio.h>
#include<conio.h>

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;
}

printf("input biner adalah = %d\n",bbil);


printf("sama dengan angka desimal = %d",biner);
return 0;
}

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;
}

SMART ELECTRONIC SYSTEM LABORATORY Page 100


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN
V. TUGAS AKHIR
1. Sebutkan contoh penggunaan bilangan biner pada kehidupan sehari-hari!
2. Ubahlah tipe bilangan dibawah ini!
8F = …………...(8) = …………...(10) = ................................ (2)
101010101(2) = ……….…..(8) = ……….…..(10) = …………...(16)
57(8) = ……….(2) = ……....(10) = …..…..(16)

SMART ELECTRONIC SYSTEM LABORATORY Page 101


PETUNJUK PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

Anda mungkin juga menyukai