Anda di halaman 1dari 50

PRAKTIKUM

PEMECAHAN MASALAN
DENGAN C
TEKNIK ELEKTRO
INSTITUT TEKNOLOGI
SUMATERA
2022/2023
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

\ HALAMAN PENGESAHAN

Laporan praktikum ini disusun sebagai syarat untuk memenuhi Mata Kuliah
Pemecahan Masalah dengan C
Disusun oleh :

No Nama Mahasiswa NIM

1 Aria Dimas Putra Pratama Sajidin 121130071

2 Jagad Ferlananda Harbas 121130070

3 Ali Shodikin Ma’ruf 121130067

4 Muhammad Rifki 121130105

5 Rania 121130043

Mengetahui
Dosen Penanggung Jawab Praktikum

MUHAMMAD ASROFI, S.T., M.Eng.


199312162022031005
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

\ DAFTAR ISI

HALAMAN PENGESAHAN 2

DAFTAR ISI 3

BAB I PENDAHULUAN 7

1.1 Latar Belakang 7

1.2 Tujuan Praktikum 7

1.3 Manfaat Praktikum 8

BAB II DASAR TEORI 9

2.1. Standard Input-Output 9

2.2. Basic Arithmetic Operation And Math Library 10

2.3. Conditional Structure & Loop Contruct 11

2.4. Procedure, Function, Pointer & File Eksternal 13

2.5. Statik Array dan Dynamic Array 14

2.6. Multi Dimensional Array 15

2.7. String 15

2.8. Struct 16

2.9. Linked List 16

2.10. Queue 19

BAB III PERCOBAAN PENDAHULUAN 20

3.1 Standard Input-Output 20

3.1.1 Pendahuluan Persoalan Standard Input-Output 20

3.1.2 Penyelesaian Standard Input-Output 20

3.2 Basic Arithmetic Operation And Math Library 20


PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

3.2.1 Pendahuluan Persoalan Basic Arithmetic Operation And Math 20


\
Library 20

3.2.2 Penyelesaian Basic Arithmetic Operation And Math Library 20

3.3 Conditional Structure & Loop Contruct 21

3.3.1 Pendahuluan Persoalan Conditional Structure & Loop Contruct 21

3.3.2 Penyelesaian Conditional Structure & Loop Contruct 21

3.4 Procedure,Function, Pointer & File Eksternal 21

3.4.1 Pendahuluan Persoalan Procedure,Function, Pointer & File Eksternal 21

3.4.2 Penyelesaian Procedure,Function, Pointer & File Eksternal 21

3.5 Statik Array dan Dynamic Array 21

3.5.1 Pendahuluan Persoalan Statik Array dan Dynamic Array 21

3.5.2 Penyelesaian Statik Array dan Dynamic Array 22

3.6 Multi Dimensional Array 22

3.6.1 Pendahuluan Persoalan Multi Dimensional Array 22

3.6.2 Penyelesaian Multi Dimensional Array 22

3.7 String 23

3.7.1 Pendahuluan Persoalan String 23

3.7.2 Penyelesaian String 23

3.8 Struct 23

3.8.1 Pendahuluan Persoalan Struct 23

3.8.2 Penyelesaian Struct 23

3.9 Linked List 24

3.9.1 Pendahuluan Persoalan Linked List 24

3.9.2 Penyelesaian Linked List 24

3.10 Stack 24

3.10.1 Pendahuluan Persoalan Stack 24


PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

3.10.2 Penyelesaian Stack 24


\
3.11 Queue 25

3.11.1 Pendahuluan Persoalan Queue 25

3.11.2 Penyelesaian Queue 25

BAB IV PENYELESAIAN MASALAH 26

4.1 Standard Input-Output 26

4.1.1 Persoalan Standard Input-Output 26

4.1.2 Penyelesaian Standard Input-Output 26

4.2 Basic Arithmetic Operation And Math Library 26

4.2.1 Persoalan Basic Arithmetic Operation And Math Library 26

4.2.2 Penyelesaian Basic Arithmetic Operation And Math Library 27

4.3 Conditional Structure & Loop Contruct 27

4.3.1 Persoalan Conditional Structure & Loop Contruct 27

4.3.2 Penyelesaian Conditional Structure & Loop Contruct 27

4.4 Procedure,Function, Pointer & File Eksternal 28

4.4.1 Persoalan Procedure,Function, Pointer & File Eksternal 28

4.4.2 Penyelesaian Procedure,Function, Pointer & File Eksternal 28

4.5 Statik Array dan Dynamic Array 28

4.5.1 Persoalan Statik Array dan Dynamic Array 28

4.5.2 Penyelesaian Statik Array dan Dynamic Array 28

4.6 Multi Dimensional Array 29

4.6.1 Persoalan Multi Dimensional Array 29

4.6.2 Penyelesaian Multi Dimensional Array 30

4.7 String 30

4.7.1 Persoalan String 30

4.7.2 Penyelesaian String 30


PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.8 Struct 31
\
4.8.1 Persoalan Struct 31

4.8.2 Penyelesaian Struct 31

4.9 Linked List 31

4.9.1 Persoalan Linked List 31

4.9.2 Penyelesaian Linked List 31

4.10 Stack 32

4.10.1 Persoalan Stack 32

4.10.2 Penyelesaian Stack 32

4.11 Queue 33

4.11.1 Persoalan Queue 33

4.11.2 Penyelesaian Queue 33

BAB V KESIMPULAN DAN SARAN 34

5.1. Kesimpulan 34

5.2. Saran 35

LAMPIRAN 36
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

BAB I
\
PENDAHULUAN

1.1 Latar Belakang


Di zaman serba canggih dan instan ini sudah banyak orang bisa menggunakan alat
teknologi dan juga banyak yang mengembangkanya contoh dari alat teknologi yang sudah di
kembangkan saat ini yaitu handphone, laptop, smartwatch, robot, dan masih banyak lagi
sehingga banyak orang mempunyai keinginan besar untuk meningkatkan kemajuan teknologi
dan sebagian orang belajar di jenjang perkuliahan untuk mendapatkan ilmu teknologi, contoh
pembelajaran ilmu teknologi yaitu pemecah masalah dengan C.
Bahasa C adalah bahasa pemrograman komputer yang ringkas memiliki tujuan umum
yang pada awalnya dikembangkan oleh Dennis MacAlistair Ritchie pada sistem operasi Unix.
Bahasa ini diterapkan pertama kali di komputer PDP-11 buatan Digital Equipment Corporation
pada tahun 1972 Bahasa pemrograman tersebut dinamakan "C" adalah kelanjutan dari bahasa
pemrograman sebelumnya yaitu bahasa "B" diperkenalkan kurang lebih tahun 1970. Bahasa C
tidak dibatasi oleh platform tertentu dan program dapat dibuat pada mesin mana saja yang
mendukung C, termasuk diantaranya yang menjalankan platform Windows. Fleksibilitas dan
portabilitas C membuatnya sangat populer dan bahasa tersebut dibakukan pada 1989 oleh
ANSI (American National Standards Institute).
Bahasa C telah dikenal hingga saat ini seiring dengan diperkenalkannya bahasa- bahasa
pemrograman yang baru seperti Java, C++, dan C#. Kebanyakan bahasa baru tersebut
diturunkan atau setidaknya sebagian dari C dan ukurannya jauh lebih besar. Begitu ringkasnya
C menjadikannya cocok sebagai bahasa pemula karena ia mudah dipelajari. Untuk ke depan,
akan sangat mudah untuk mempelajari bahasa-bahasa baru lainnya sekali saja prinsip-prinsip
bahasa C telah dikuasai. Sebagai contoh, bahasa C++ merupakan sebuah ekstensi bahasa C dan
seseorang mungkin bisa kesulitan untuk mempelajarinya kecuali Anda telah menguasai
pemrograman bahasa C terlebih dahulu.
Oleh karena itu untuk mendalami pemrograman bahasa C perlu dilakukannya
praktikum dengan melakukan percobaan Standard Input-Output, Basic Arithmetic Operation
And Math Library, Conditional Structure & Loop Construct, Procedure,Function, Pointer &
File Eksternal, Statik Array dan Dynamic Array, Multi Dimensional Array, String, Struct,
Linked List, Stack, Queue.
1.2 Tujuan Praktikum
- Mengenal dan memahami cara menggunakan Standard Input-Output
- Mengenal dan memahami cara menggunakan Basic Arithmetic Operation And Math
Library
- Mengenal dan memahami cara menggunakan Conditional Structure & Loop Construct
- Mengenal dan memahami cara menggunakan Procedure,Function, Pointer & File Eksternal
- Mengenal dan memahami cara menggunakan Statik Array dan Dynamic Array
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

- Mengenal dan memahami cara menggunakan Multi Dimensional Array


\
- Mengenal dan memahami cara menggunakan String
- Mengenal dan memahami cara menggunakan Struct
- Mengenal dan memahami cara menggunakan Linked List
- Mengenal dan memahami cara menggunakan Stack
- Mengenal dan memahami cara menggunakan Queue

1.3 Manfaat Praktikum


Laporan ini bermanfaat bagi penulis dan dapat memberikan manfaat bagi pembaca pada
umumnya untuk membuat program sederhana dengan menerapkan dasar-dasar bahasa C/C++
dengan cara mengenal dan memahami Standard Input-Output, Basic Arithmetic Operation And
Math Library, Conditional Structure & Loop Construct, Procedure,Function, Pointer & File
Eksternal, Statik Array dan Dynamic Array, Multi Dimensional Array, String, Struct, Linked
List, Stack, Queue.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

BAB II
\
DASAR TEORI

2.1. Standard Input-Output


Input standar atau stdin digunakan untuk mengambil input dari perangkat seperti
keyboard sebagai aliran data. Keluaran standar atau stdout digunakan untuk memberikan
keluaran ke perangkat seperti monitor. Untuk menggunakan fungsionalitas I/O,
pemrogram harus menyertakan file header stdio di dalam program. Apa fungsi IO yang
umum digunakan di C? Fungsi I/O tingkat tinggi

Deskripsi fungsi
● putw ( ) tulis nomor ke dalam file
● getw ( ) membaca nomor dari file
● fputs ( ) menulis string ke dalam file
● fgets ( ) membaca string dari file

Perangkat input mengirimkan informasi ke sistem komputer untuk diproses, dan


perangkat output mereproduksi atau menampilkan hasil pemrosesan tersebut. Fungsi Input
Operasi input digunakan untuk membaca nilai pengguna (input) dari keyboard. Bahasa
pemrograman C menyediakan fungsi input bawaan berikut. scanf() getchar() getch().
Fungsi input/output dasar adalah getchar , putchar , put , scanf dan printf . Dua fungsi
pertama, getchar dan putchar, digunakan untuk mentransfer satu karakter. Ketika kami
mengatakan Input, itu berarti memasukkan beberapa data ke dalam suatu program. Input
dapat diberikan dalam bentuk file atau dari baris perintah. Pemrograman C menyediakan
satu set fungsi bawaan untuk membaca input yang diberikan dan memasukkannya ke
program sesuai kebutuhan. Berikut ini adalah fungsi input dan output string di c. Fungsi
masukan: scanf(), got() Fungsi keluaran: printf(), put() Scanf() dan printf() adalah fungsi
i/o generik yang mendukung semua tipe data bawaan seperti int, float, long , dobel,
string,..dll. Fungsi input output built-in di C terbagi dalam dua kategori, yaitu fungsi
output input (I/O) yang diformat dan fungsi input output (I/O) yang tidak di format. printf()
dan scanf() adalah contoh untuk fungsi input dan output yang di format dan getch(),
getche(), getchar(), get(), put(), putchar() dll.

Perangkat Masukan & Keluaran


● Mouse dan Keyboard. Dua bentuk input paling umum yang terkait dengan
komputer adalah mouse dan keyboard.
● Memantau. Karena manusia berfokus secara visual, perangkat keluaran yang
paling umum adalah monitor.
● Printer dan Pemindai.
● Mikrofon dan Speaker.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

Input berarti menyediakan program dengan beberapa data untuk digunakan dalam
\
program dan Output berarti menampilkan data di layar atau menulis data ke printer atau
file. Bahasa pemrograman C menyediakan fungsi perpustakaan standar untuk membaca
input yang diberikan dan untuk menampilkan data di konsol. Tipe Data dalam C.
Dalam matematika, fungsi adalah ekspresi apa pun yang menghasilkan tepat satu
jawaban untuk bilangan tertentu yang Anda berikan. Masukan adalah angka yang Anda
masukkan ke dalam ekspresi, dan keluaran adalah apa yang Anda dapatkan setelah
pekerjaan pencarian atau perhitungan selesai.
Input dan Output dalam bahasa pemrograman C dilakukan melalui fungsi library.
Bahasa pemrograman C telah mendefinisikan banyak fungsi perpustakaan untuk input dan
output. Dalam pemrograman C, fungsi scanf() dan printf() adalah fungsi pustaka standar
yang paling umum digunakan untuk mengambil input dari keyboard dan mencetak output
di layar.
Bahasa pemrograman C menyediakan banyak fungsi bawaan untuk membaca input
yang diberikan dan menampilkan/menulis data di layar atau di file. printf(), scanf(),
getchar(), putchar(), mendapat() dan put() adalah fungsi yang dapat digunakan untuk input
dan output data dalam program bahasa C.
Menggunakan fungsi scanf() untuk mengambil input dari pengguna, dan fungsi printf()
untuk menampilkan output ke pengguna. Dalam pemrograman C, printf() adalah salah
satu fungsi keluaran utama. Fungsi mengirimkan output yang diformat ke layar.
Untuk mencetak karakter menggunakan penentu format %c. Dalam pemrograman C,
scanf() merupakan salah satu fungsi yang umum digunakan untuk mengambil input dari
user. Fungsi scanf() membaca input terformat dari input standar seperti keyboard.

2.2. Basic Arithmetic Operation And Math Library


Operator adalah simbol khusus dalam bahasa pemrograman C, yang digunakan untuk
melakukan berbagai operasi matematika dan logika pada operan yang diberikan untuk
mengembalikan hasil yang sesuai. Ada berbagai operator dalam bahasa pemrograman C
seperti Operator Aritmatika, Operator Relasional, Operator Shift, Operator Logika,
Operator Bitwise, Operator Ternary atau Conditional, dan Operator Assignment. Namun
disini kita hanya akan memahami Operator Aritmatika dalam bahasa pemrograman C.
Operator Aritmatika digunakan untuk melakukan operasi matematika seperti
penjumlahan, pengurangan, perkalian, pembagian, modulus, dll, pada operan yang
diberikan.
Contoh: 5 + 3 = 8, 5 - 3 = 2, 2 * 4 = 8, dst adalah contoh-contoh operator aritmatika. Mari
kita bahas berbagai jenis Operator Aritmatika dalam pemrograman C.
1. Operator Plus (+) sederhana yang digunakan untuk menambahkan dua operan yang
diberikan. Kita dapat menggunakan Operator Plus dengan tipe data yang berbeda
seperti data tipe integer, float, long, double, enumerated dan string untuk menambahkan
operan yang diberikan.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

2. Operator minus dilambangkan dengan simbol minus (-). Ini digunakan untuk
\
mengembalikan pengurangan angka pertama dari angka kedua. Tipe data dari angka
yang diberikan bisa berbeda tipe, seperti int, float, double, long double, dll., dalam
bahasa pemrograman.
3. Operator perkalian direpresentasikan sebagai simbol asterisk (*), dan digunakan untuk
mengembalikan hasil perkalian bilangan n1 dan n2. Tipe data dari angka yang diberikan
bisa berbeda tipe seperti int, float, dan double dalam bahasa pemrograman.
4. Operator pembagian adalah operator aritmatika yang membagi bilangan pertama (n1)
dengan bilangan kedua (n2). Menggunakan operator divisi (/), kita dapat membagi
variabel tipe data int, float, double dan long.
5. Operator modulus diwakili oleh tanda persentase (%), dan digunakan untuk
mengembalikan sisanya dengan membagi angka pertama dengan angka kedua.
6. Operator Kenaikan adalah jenis operator Aritmatika yang dilambangkan dengan
operator double plus (++). Ini digunakan untuk meningkatkan nilai integer sebesar 1.
7. Operator Penurunan dilambangkan dengan simbol minus ganda (--), yang menurunkan
nilai operan sebesar 1

Pemrograman C memungkinkan kita untuk melakukan operasi matematika melalui


fungsi yang didefinisikan dalam file header <math.h>. File header <math.h> berisi berbagai
metode untuk melakukan operasi matematika seperti sqrt(), pow(), ceil(), floor() dll. Ada
berbagai metode dalam file header math.h. Fungsi file header math.h yang umum
digunakan diberikan di bawah ini.
1. ceil(angka) membulatkan angka yang diberikan. Ini mengembalikan nilai integer
yang lebih besar dari atau sama dengan angka yang diberikan.
2. lantai(nomor) membulatkan nomor yang diberikan. Ini mengembalikan nilai
integer yang kurang dari atau sama dengan angka yang diberikan.
3. sqrt(angka) mengembalikan akar kuadrat dari angka yang diberikan.
4. pow(basis, eksponen) mengembalikan kekuatan angka yang diberikan.
5. abs(angka) mengembalikan nilai absolut dari angka yang diberikan.

2.3. Conditional Structure & Loop Contruct


Operator kondisional juga dikenal sebagai operator ternary. Pernyataan bersyarat
adalah pernyataan pengambilan keputusan yang bergantung pada keluaran ekspresi. Itu
diwakili oleh dua simbol, yaitu, '?' dan ':'. Karena operator bersyarat bekerja pada tiga
operan, maka ia juga dikenal sebagai operator ternary. Perilaku operator kondisional
mirip dengan pernyataan 'if-else' karena pernyataan 'if-else' juga merupakan pernyataan
pengambilan keputusan.
Sintaks operator kondisional
Expression1? expression2: expression3;
Representasi bergambar dari sintaks di atas ditunjukkan di bawah ini:
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

Arti dari sintaks di atas.


1. Dalam sintaks di atas, ekspresi1 adalah kondisi Boolean yang dapat berupa nilai
benar atau salah.
2. Jika ekspresi1 menghasilkan nilai sebenarnya, maka ekspresi2 akan dijalankan.
3. Ekspresi2 dikatakan benar hanya jika mengembalikan nilai bukan nol.
4. Jika ekspresi1 mengembalikan nilai salah maka ekspresi3 akan dieksekusi.
5. Ekspresi3 dikatakan salah hanya jika mengembalikan nilai nol.

Seperti yang kita ketahui bahwa perilaku operator kondisional dan 'if-else' serupa tetapi
mereka memiliki beberapa perbedaan yaitu :
● Operator bersyarat adalah pernyataan pemrograman tunggal, sedangkan pernyataan 'if-
else' adalah blok pemrograman di mana pernyataan berada di bawah tanda kurung.
● Operator kondisional juga dapat digunakan untuk menetapkan nilai ke variabel,
sedangkan pernyataan 'if-else' tidak dapat digunakan untuk tujuan penugasan.
● Itu tidak berguna untuk mengeksekusi pernyataan ketika pernyataannya banyak,
sedangkan pernyataan 'if-else' terbukti lebih cocok ketika mengeksekusi banyak
pernyataan.
● Operator ternary bersarang lebih kompleks dan tidak dapat dengan mudah di-debug,
sedangkan pernyataan 'if-else' bersarang mudah dibaca dan dipelihara.
Perulangan dapat didefinisikan sebagai pengulangan proses yang sama beberapa kali
hingga kondisi tertentu terpenuhi. Ada tiga jenis loop yang digunakan dalam bahasa C. Di
bagian tutorial ini, kita akan mempelajari semua aspek loop C. Perulangan
menyederhanakan masalah yang kompleks menjadi masalah yang mudah. Ini
memungkinkan kita untuk mengubah aliran program sehingga alih-alih menulis kode yang
sama berulang kali, kita dapat mengulangi kode yang sama untuk beberapa kali. Misalnya,
jika kita perlu mencetak 10 bilangan asli pertama, alih-alih menggunakan pernyataan printf
10 kali, kita dapat mencetak di dalam loop yang berjalan hingga 10 iterasi.
Keuntungan dari loop di C
1. Ini menyediakan penggunaan kembali kode.
2. Dengan menggunakan perulangan, kita tidak perlu menulis kode yang sama
berulang kali.
3. Menggunakan loop, kita dapat melintasi elemen struktur data (array atau linked
list).
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

Jenis C Loop
\
Ada tiga jenis loop dalam bahasa C yang diberikan di bawah ini:
● do while
● while
● for

2.4. Procedure, Function, Pointer & File Eksternal


Fungsi dalam bahasa C++ juga dikenal sebagai prosedur atau subrutin dalam bahasa
pemrograman lain. Untuk melakukan tugas apa pun, kita dapat membuat fungsi. Suatu
fungsi dapat dipanggil berkali-kali. Ini memberikan modularitas dan penggunaan kembali
kode.
Keuntungan fungsi di C++ :
1. Kode Dapat Digunakan Kembali
Dengan membuat fungsi di C++, Anda dapat memanggilnya berkali-kali. Jadi tidak
perlu menulis kode yang sama berulang kali.
2. Optimalisasi kode
Membuat kode dioptimalkan, kita tidak perlu menulis banyak kode. Misalkan, Anda
harus memeriksa 3 angka (531, 883 dan 781) apakah itu bilangan prima atau bukan.
Tanpa menggunakan fungsi, Anda perlu menulis logika bilangan prima sebanyak 3
kali. Jadi, ada pengulangan kode. Tetapi jika Anda menggunakan fungsi, Anda hanya
perlu menulis logika sekali dan Anda dapat menggunakannya kembali beberapa kali.

Jenis Fungsi
Ada dua jenis fungsi dalam pemrograman C:
1. Fungsi Library : adalah fungsi yang dideklarasikan dalam file header C++ seperti
ceil(x), cos(x), exp(x), dll.
2. Fungsi yang ditentukan pengguna : adalah fungsi yang dibuat oleh programmer C++,
sehingga dia dapat menggunakannya berkali-kali. Ini mengurangi kompleksitas
program besar dan mengoptimalkan kode.

Pointer fungsi dalam C++ adalah variabel yang dapat digunakan untuk menyimpan
alamat suatu fungsi dan ketika fungsi tersebut perlu dipanggil kita dapat memanggil secara
tidak langsung melalui penunjuk fungsi. Ini adalah panduan untuk Function Pointer di C++.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

Keuntungan penunjuk
\
1. Pointer mengurangi kode dan meningkatkan kinerja, digunakan untuk mengambil
string, pohon, dll. Dan digunakan dengan array, struktur, dan fungsi.
2. Dapat mengembalikan beberapa nilai dari fungsi menggunakan pointer.
3. Dapat mengakses lokasi memori mana pun di memori komputer.

Penggunaan penunjuk
Ada banyak penggunaan pointer dalam bahasa C++.
1. Alokasi memori dinamis
Dalam bahasa c, kita dapat mengalokasikan memori secara dinamis menggunakan
fungsi malloc() dan calloc() di mana pointer digunakan.
2. Array, Fungsi dan Struktur
Pointer dalam bahasa c banyak digunakan dalam array, fungsi, dan struktur. Ini
mengurangi kode dan meningkatkan kinerja.
Simbol yang digunakan dalam penunjuk

2.5. Statik Array dan Dynamic Array


Array yang dideklarasikan dengan kata kunci statis dikenal sebagai array statis. Itu
mengalokasikan memori pada waktu kompilasi yang ukurannya tetap tidak dapat
mengubah array statis. Jika kita ingin ukuran array berdasarkan input dari pengguna, maka
tidak dapat menggunakan array statis. Dalam kasus seperti itu, array dinamis
memungkinkan kita untuk menentukan ukuran array saat dijalankan.
Keuntungan dari Array Statis
● Ini memiliki waktu eksekusi yang efisien.
● Seumur hidup alokasi statis adalah seluruh waktu berjalan program.
Kerugian dari Array Statis
● Jika lebih banyak ruang data statis dinyatakan daripada yang dibutuhkan, ada
pemborosan ruang.
● Jika lebih sedikit ruang statis yang dinyatakan daripada yang dibutuhkan, maka tidak
mungkin memperluas ukuran tetap ini selama waktu proses.
Perbedaan Antara Array Statis dan Array Dinamis
Array Statis :
1. Array statis dialokasikan memori pada waktu kompilasi.
2. Ukuran array statis adalah tetap.
3. Array terletak di ruang memori tumpukan.
4. int larik[10]; //array ukuran 10
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

Dinamis Statis :
\
1. Array dinamis terletak pada saat run-time.
2. Ukuran array dinamis adalah tetap.
3. Dinamis terletak di ruang memori tumpukan.
4. int* array = new int[10];

2.6. Multi Dimensional Array


Array multidimensi juga dikenal sebagai array persegi panjang di C#. Itu bisa dua
dimensi atau tiga dimensi. Data disimpan dalam bentuk tabel (baris * kolom) yang
disebut juga matriks.

2.7. String
String dapat didefinisikan sebagai larik karakter satu dimensi yang diakhiri dengan null ('\0').
Array karakter atau string digunakan untuk memanipulasi teks seperti kata atau kalimat. Setiap
karakter dalam larik menempati satu byte memori, dan karakter terakhir harus selalu 0.
Karakter terminasi ('\0') penting dalam string karena merupakan satu-satunya cara untuk
mengidentifikasi dimana string berakhir. Mendefinisikan sebuah string sebagai char s[10],
karakter s[10] secara implisit diinisialisasi dengan null di dalam memori.
Ada dua cara untuk mendeklarasikan string dalam bahasa c.
1. Dengan array char
2. Dengan string literal
Contoh mendeklarasikan string dengan array char dalam bahasa C.
char ch[10]={'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't', '\0 '};
Seperti yang kita ketahui, indeks array dimulai dari 0, sehingga akan direpresentasikan seperti
pada gambar di bawah ini.

Saat mendeklarasikan string, ukuran tidak wajib. Jadi kita bisa menulis kode di atas seperti
yang diberikan di bawah ini:
char ch[]={'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't', '\0' };
Dapat mendefinisikan string dengan literal string dalam bahasa C. Sebagai contoh:
char ch[]="javatpoint";
Dalam kasus seperti itu, '\0' akan ditambahkan di akhir string oleh kompiler. Perbedaan antara
array char dan string literal. Ada dua perbedaan utama antara array char dan literal. Perlu
menambahkan karakter nol '\0' di akhir array sendiri sedangkan, itu ditambahkan secara
internal oleh kompiler dalam kasus array karakter. Literal string tidak dapat dipindahkan ke
kumpulan karakter lain sedangkan, kita dapat menetapkan ulang karakter array.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

2.8. Struct
\
Struktur dalam c adalah tipe data yang ditentukan pengguna yang memungkinkan kita
untuk menyimpan kumpulan tipe data yang berbeda. Setiap elemen struktur disebut anggota.
Struktur ca; mensimulasikan penggunaan kelas dan template karena dapat menyimpan berbagai
informasi. Kata kunci ,struct digunakan untuk mendefinisikan struktur. Mari kita lihat sintaks
untuk mendefinisikan struktur di c. Kata kunci, struct digunakan untuk mendefinisikan
struktur.
Mendeklarasikan variabel untuk struktur sehingga kita dapat mengakses anggota struktur
dengan mudah. Ada dua cara untuk mendeklarasikan variabel struktur:
1. Dengan kata kunci struct di dalam fungsi main()
2. Dengan mendeklarasikan variabel pada saat mendefinisikan struktur.
Pendekatan mana yang baik
Jika jumlah variabel tidak tetap, gunakan pendekatan pertama. Ini memberi Anda
fleksibilitas untuk mendeklarasikan variabel struktur berkali-kali. Jika tidak. variabel tetap,
gunakan pendekatan ke-2. Ini menyimpan kode Anda untuk mendeklarasikan variabel dalam
fungsi main().
Ada dua cara untuk mengakses anggota struktur:
1. By . (anggota atau operator titik)
2. By-> (operator penunjuk struktur)

2.9. Linked List


● Linked List dapat didefinisikan sebagai kumpulan objek yang disebut node yang
disimpan secara acak di dalam memori.
● Node berisi dua bidang yaitu data yang disimpan di alamat tertentu dan petunjuk yang
berisi alamat node berikutnya di memori.
● Node terakhir dari daftar berisi petunjuk ke nol.

Kegunaan Daftar Tertaut

1. Daftar ini tidak harus hadir secara bersebelahan dalam memori. Node dapat berada di
mana saja di memori dan dihubungkan bersama untuk membuat daftar. Ini mencapai
pemanfaatan ruang yang dioptimalkan.
2. ukuran daftar terbatas pada ukuran memori dan tidak perlu dideklarasikan terlebih
dahulu.
3. Simpul kosong tidak boleh ada dalam daftar tertaut.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4. Kita dapat menyimpan nilai tipe atau objek primitif dalam daftar tertaut tunggal.
\
Mengapa menggunakan daftar tertaut di atas larik?
Hingga saat ini, kami menggunakan struktur data array untuk mengatur grup elemen yang akan
disimpan secara individual di dalam memori. Namun, Array memiliki beberapa kelebihan dan
kekurangan yang harus diketahui untuk menentukan struktur data yang akan digunakan di
seluruh program.

Array berisi batasan berikut:


1. Ukuran array harus diketahui terlebih dahulu sebelum digunakan dalam program.
2. Meningkatkan ukuran array adalah proses yang memakan waktu. Hampir tidak
mungkin untuk memperluas ukuran array saat dijalankan.
3. Semua elemen dalam larik harus disimpan secara bersebelahan dalam memori.
Memasukkan elemen apa pun ke dalam array perlu menggeser semua pendahulunya.

Daftar tertaut adalah struktur data yang dapat mengatasi semua batasan array. Menggunakan
linked list berguna karena,

1. Mengalokasikan memori secara dinamis. Semua node dari daftar tertaut disimpan
secara tidak bersebelahan dalam memori dan dihubungkan bersama dengan bantuan
pointer.
2. Ukuran tidak lagi menjadi masalah karena kita tidak perlu menentukan ukurannya pada
saat deklarasi. Daftar tumbuh sesuai permintaan program dan terbatas pada ruang
memori yang tersedia.

Daftar tertaut tunggal dapat didefinisikan sebagai kumpulan kumpulan elemen yang
dipesan. Jumlah elemen dapat bervariasi sesuai dengan kebutuhan program. Sebuah node
dalam single linked list terdiri dari dua bagian: bagian data dan bagian link. Bagian data dari
simpul menyimpan informasi aktual yang akan diwakili oleh simpul sementara bagian tautan
dari simpul menyimpan alamat pengganti langsungnya. Rantai satu arah atau daftar tertaut
tunggal hanya dapat dilalui dalam satu arah. Dengan kata lain, kita dapat mengatakan bahwa
setiap node hanya berisi pointer berikutnya, oleh karena itu kita tidak dapat menelusuri daftar
dalam arah sebaliknya. Pertimbangkan contoh di mana nilai yang diperoleh siswa dalam tiga
mata pelajaran disimpan dalam daftar tertaut seperti yang ditunjukkan pada gambar.

Pada gambar di atas, panah mewakili tautan. Bagian data dari setiap simpul berisi nilai yang
diperoleh siswa pada mata pelajaran yang berbeda. Simpul terakhir dalam daftar diidentifikasi
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

oleh penunjuk nol yang ada di bagian alamat dari simpul terakhir. Kami dapat memiliki banyak
\
elemen yang kami butuhkan, di bagian data dari daftar.
Kompleksitas

Sisipan
Penyisipan ke dalam single linked list dapat dilakukan pada posisi yang berbeda. Berdasarkan
posisi simpul baru yang disisipkan, penyisipan tersebut dikategorikan ke dalam kategori
berikut.
1. Penyisipan di awal Ini melibatkan penyisipan elemen apa pun di bagian depan daftar.
Kami hanya perlu beberapa penyesuaian tautan untuk menjadikan simpul baru sebagai
kepala daftar.
2. Penyisipan di akhir daftar Ini melibatkan penyisipan di akhir daftar tertaut. Node baru
dapat disisipkan sebagai satu-satunya node dalam daftar atau dapat disisipkan sebagai
yang terakhir. Logika yang berbeda diterapkan di setiap skenario.
3. Penyisipan setelah simpul yang ditentukan Ini melibatkan penyisipan setelah simpul
yang ditentukan dari daftar tertaut. Kita perlu melewati jumlah node yang diinginkan
untuk mencapai node setelah itu node baru akan dimasukkan.
Penghapusan dan Melintasi
Penghapusan sebuah node dari single linked list dapat dilakukan pada posisi yang berbeda.
Berdasarkan posisi node yang dihapus, operasi dikategorikan ke dalam kategori berikut.
1. Penghapusan di awal Ini melibatkan penghapusan node dari awal daftar. Ini adalah
operasi paling sederhana di antara semuanya. Itu hanya perlu beberapa penyesuaian
pada pointer node.
2. Penghapusan di akhir daftar Ini melibatkan penghapusan node terakhir dari daftar.
Daftar bisa kosong atau penuh. Logika yang berbeda diimplementasikan untuk skenario
yang berbeda.
3. Penghapusan setelah node yang ditentukan Ini melibatkan penghapusan node setelah
node yang ditentukan dalam daftar. kita perlu melewati jumlah node yang diinginkan
untuk mencapai node setelah node tersebut akan dihapus. Ini membutuhkan melintasi
daftar.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4. Traversing Dalam traversing, kita cukup mengunjungi setiap node dari list setidaknya
\
satu kali untuk melakukan beberapa operasi tertentu padanya, misalnya, mencetak
bagian data dari setiap node yang ada dalam list.
5. Pencarian Dalam pencarian, kami mencocokkan setiap elemen daftar dengan elemen
yang diberikan. Jika elemen ditemukan di salah satu lokasi, maka lokasi elemen
tersebut dikembalikan jika tidak, null dikembalikan.

2.10. Queue
Dalam ilmu komputer kami mengerjakan berbagai macam program. Masing-
masing memiliki domain dan utilitasnya sendiri. Berdasarkan tujuan dan lingkungan
pembuatan program, kami memiliki sejumlah besar struktur data yang tersedia untuk
dipilih. Salah satunya adalah Queue (antrian). Sebelum membahas tentang tipe data ini,
mari kita lihat sintaksnya.
template<class T, class container = deque<T> > class queue;
Struktur data ini bekerja dengan teknik FIFO, dimana FIFO adalah singkatan dari
First In First Out. Elemen yang pertama kali dimasukkan akan diekstraksi terlebih
dahulu dan seterusnya. Ada elemen yang disebut 'depan' yang merupakan elemen pada
posisi paling depan atau katakanlah posisi pertama, juga ada elemen yang disebut
'belakang' yang merupakan elemen pada posisi terakhir. Dalam antrian normal,
penyisipan elemen dilakukan di ujung belakang dan penghapusan dilakukan dari depan.
Antrian di area aplikasi tersirat sebagai adapter kontainer.

Kontainer harus memiliki dukungan untuk daftar operasi berikut:


● kosong
● ukuran
● push_back
● pop_front
● depan
● kembali
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

BAB III
\
PERCOBAAN PENDAHULUAN

3.1 Standard Input-Output


3.1.1 Pendahuluan Persoalan Standard Input-Output
Buatlah program dengan input dan output berupa nama dan nim

3.1.2 Penyelesaian Standard Input-Output


Pada program persoalan input output ini,saat program dijalankan,program akan
meminta user untuk menginputkan dimana dalam hal ini yang diminta program adalah
nama dan nim.Setelah user menginputkan nama dan nim,program akan memproses dan
akan memberikan output berupa data yang sebelumnya user inputkan.

3.2 Basic Arithmetic Operation And Math Library


3.2.1 Pendahuluan Persoalan Basic Arithmetic Operation And Math
Library
Tentukan hasil dari operasi
((10+3)-7)x10
-7x(10-1)
dengan menggunakan program Bahasa c

3.2.2 Penyelesaian Basic Arithmetic Operation And Math Library


Pada program persoalan basic aritmatik ini,dimana terdapat persoalan yaitu hasil
perhitungan dari ((10+3)-7)x10 dan -7x(10-1).Saat program dijalankan,program akan
memproses nilai yang telah diinputkan dan hasil keluarannya berupa hasil perhitungan
dari persoalan diatas.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

3.3 Conditional Structure & Loop Contruct


\
3.3.1 Pendahuluan Persoalan Conditional Structure & Loop Contruct
Buatlah program perulangan dengan menampilkan angka kelipatan 3 sebanyak 15 kali

3.3.2 Penyelesaian Conditional Structure & Loop Contruct


Pada persoalan loop,diminta hasil keluaran dari program berupa perulangan dengan
menampilkan angka kelipatan 3 sebanyak 15 kali.Saat program dijalankan,dengan
menggunakan perulangan for,program akan memproses hasil yang telah di inputkan
sehingga mendapatkan hasil berupa perulangan angka kelipatan 3 sebanyak 15 kali.

3.4 Procedure,Function, Pointer & File Eksternal


3.4.1 Pendahuluan Persoalan Procedure,Function, Pointer & File Eksternal
Buatlah program sederhana pointer
3.4.2 Penyelesaian Procedure,Function, Pointer & File Eksternal
Pada persoalan pointer sederhana ini,saat program dijalankan,pointer akan
menunjukkan variable yang berisi alamat suatu lokasi memori dengan kata lain,pointer
berisi alamat dari variable yang mempunyai nilai tertentu.

3.5 Statik Array dan Dynamic Array


3.5.1 Pendahuluan Persoalan Statik Array dan Dynamic Array
Buatlah program static array sederhana menggunakan bahasa C
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

3.5.2 Penyelesaian Statik Array dan Dynamic Array


\
Pada persoalan array 1 dimensi ini,saat program dijalankan array akan menghasilkan
output elemen 1 hingga 9

3.6 Multi Dimensional Array


3.6.1 Pendahuluan Persoalan Multi Dimensional Array
Buatlah program untuk menginput nilai elemen-elemen matriks A dengan berukuran
3x4

3.6.2 Penyelesaian Multi Dimensional Array


Pada persoalan Multi dimensional array dapat diterapkan pada operasi matriks.Pada
saat program dijalankan,program akan meminta user untuk menginputkan ukuran
matriks serta nilai baris dan kolom matriks.Setelah user selesai menginputkan,program
akan memproses sehingga output yang dihasilkan berupa matriks dengan ukuran dan
nilai yang telah diinputkan user.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

3.7 String
\
3.7.1 Pendahuluan Persoalan String
Buatlah program string dengan output yang akan dihasilkan adalah “Selamat datang di
pantai mutun”

3.7.2 Penyelesaian String


Pada persoalan string ini,program diminta untuk menghasilkan output “selamat datang
di pantai mutun”.Dengan menggunakan char foo, dan tanpa menuliskan jumlah dari
elemennya,secara otomatis program akan mengisi jumlah element sesuai dengan
jumlah karakter string.Dan untuk mengetahui panjang string dapat menggunakan sizeof
sehingga didapatkan hasil output sesuai dengan apa yang diminta pada persoalan dan
panjang string yaitu 31

3.8 Struct
3.8.1 Pendahuluan Persoalan Struct
Buatlah program struct dari persoalan berikut!
Terdapat 3 mahasiswa dengan nama dan alamat yang berbeda-beda.adapun 3
mahasiswa berikut adalah
Nama :Ali
Umur :20
Alama :lampung timur

Nama :Reni
Umur :20
Alamat :Bandar lampung

Nama :Beni
Umur :22
Alamat :jawa timur
Aplikasikan nama nama mahasiswa ke dalam program struct
3.8.2 Penyelesaian Struct
Pada persoalan struct ini,program akan mengumpulkan beberapa variable dengan
beragam tipe data yang nantinya akan dibungkus dalam satu variable.dapat dilihat pada
persoalan terdapat 3 mahasiswa dengan nama,umur dalam alamat yang berbeda
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

beda.saat program dijalankan,program akan menyimpan data dari 3 mahasiswa tersebut


\
yang nantinya akan menghasilkan output berupa hasil dari inputan data dari 3
mahasiswa tersebut.

3.9 Linked List


3.9.1 Pendahuluan Persoalan Linked List
Buatlah program linked list untuk mengurutkan nilai 70 50 dan 60!
3.9.2 Penyelesaian Linked List
Pada persoalan linked list ini,Program diminta untuk mengurutkan nilai dari 70,50 dan
60.dengan menggunakan tipe data struct node program akan menjalankan linked list
sehingga output yang dihasilkan berupa nilai dari 50 lalu 60 dan 70.

3.10 Stack
3.10.1 Pendahuluan Persoalan Stack
Buatlah program stack dengan menampilkan menu berupa Push,Pop,Clear stack,Cek
stack dan exit dan inputan data
3.10.2 Penyelesaian Stack
Pada persoalan stack ini,program diminta untuk menampilkan menu berupa
Push,Pop,Clear stack,Cek stack dan exit serta inputan data.saat program
dijalankan,Program akan menampilkan menu.setelah itu inputan yang dimasukan
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

pertama akan dikeluarkan terakhir sedangkan inputan terakhir akan dikeluarkan


\
pertama.cara menambahkan node yaitu dengan memilih push dan untuk mengeluarkan
atau menghapus node dengan memilih pop.

3.11 Queue
3.11.1 Pendahuluan Persoalan Queue
Buatlah program sederhana queue dengan menggunakan array
3.11.2 Penyelesaian Queue
Pada persoalan queue ini,memiliki konsep yang hampir sama dengan stack.yang
membedakan adalah jika pada stack menggunakan system LIFO sedangkan pada queue
ini merupakan antrian,yang artinya inputan awal akan keluar paling awal seperti konsep
antrian
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

BAB IV
\
PENYELESAIAN MASALAH

4.1 Standard Input-Output


4.1.1 Persoalan Standard Input-Output
Seorang siswa baru saja lulus dari Institut Teknologi Sumatera dengan Indeks Prestasi
Kumulatif (IPK) sebesar 3,55. Namanya Aria Dimas Putra Pratama Sajidin, dia
mempunyai NIM 121130071 dan berjenis kelamin laki-laki. Bayangkan anda menjadi
pembuat program portal alumni yang bertujuan untuk mendapatkan data kelulusan
mahasiswa, buatlah program portal alumni menggunakan konsep Standard Input-
Output sehingga mahasiswa yang baru saja lulus bisa mengisi datanya di database
alumni.

4.1.2 Penyelesaian Standard Input-Output


Pada persoalan Standard Input-Output mula-mulu user diminta untuk menginput data
yang dimiliki kedalam program, kemudian setelah semua data tersimpan dalam sebuah
variabel maka program akan menampilkan di layar apa yang dimasukan oleh user tadi.

4.2 Basic Arithmetic Operation And Math Library


4.2.1 Persoalan Basic Arithmetic Operation And Math Library
Budi memiliki usaha restoran steak, usaha tersebut sudah lama berdiri dari hasil kerja
kerasnya selama sepuluh tahun. Budi sudah membuka cabang di berbagai kota di
Indonesia seperti, Jakarta, Bandung, Medan, dan Makassar. Budi ingin menghitung
hasil penjualan yang diperoleh Katakanlah Budi ingin menghitung hasil penjualan pada
restoran yang ia buka di kota Jakarta, di kota Jakarta ia mempunyai 5 cabang dengan
masing-masing pada restoran A,B,C,D, dan E secara berurutan mempunyai hasil Rp.
10.000.000, Rp. 15.000.000, Rp. 20.000.000, Rp. 25.000.000, dan Rp 30.000.000.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

Hitunglah total hasil penjualan dan rata-rata penjualan pada restoran Budi yang terletak
\
di Jakarta!.

4.2.2 Penyelesaian Basic Arithmetic Operation And Math Library


Pada persoalan Basic Arithmetic Operation and Math Library yaitu memiliki konsep
aritmatika dasar seperti perkalian, penambahan, pengurangan, dan pembagian. Program
ini awalnya meminta data yang dimiliki user untuk disimpan kedalam sebuah variabel.
Setelah semua data tersebut tersimpan, setiap data pada variabel akan ditambah
sehingga diperoleh hasil total. Dan yang terakhir, membagi rata-rata.

4.3 Conditional Structure & Loop Contruct


4.3.1 Persoalan Conditional Structure & Loop Contruct
Hendrik ingin mengetahui teman-temannya lulus pada mata kuliah Pemecahan Masalah
dengan C. Dia mempunyai tiga teman dengan masing-masing sudah mempunyai nilai
akhir mata kuliah, jika nilai mata kuliah lebih atau sama dengan 80 maka mahasiswa
tersebut lulus, jika tidak maka mahasiswa tersebut tidak lulus dan harus mengulang
lagi. Bayangkan anda menjadi Hendrik, maka buatlah program yang akan dia buat!

4.3.2 Penyelesaian Conditional Structure & Loop Contruct


Pada persoalan Conditional Structure & Loop Contruct memiliki konsep sebuah
kondisi. Jika suatu kondisi terpenuhi atau true maka akan melakukan proses sesuai yang
telah ditentukan, dan apabila tidak terpenuhi maka akan muncul kondisi dimana
pernyataan menjadi false.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.4 Procedure,Function, Pointer & File Eksternal


\
4.4.1 Persoalan Procedure,Function, Pointer & File Eksternal
Seorang pekerja administrasi di sebuah kantor kecamatan sedang menginput data
penduduk di kecamatan tersebut. Jika diberikan data seorang anak yang berumur 10
tahun dan tinggi badannya 175,5 cm. bayangkan anda menjadi petugas tersebut dan
buatlah program menggunakan konsep pointer!.

4.4.2 Penyelesaian Procedure,Function, Pointer & File Eksternal


Pada persoalan pointer sederhana ini,saat program dijalankan,pointer akan
menunjukkan variable yang berisi alamat suatu lokasi memori dengan kata lain,pointer
berisi alamat dari variable yang mempunyai nilai tertentu.

4.5 Statik Array dan Dynamic Array


4.5.1 Persoalan Statik Array dan Dynamic Array
Seorang mahasiswa ingin membuat daftar nama peserta lomba catur. Ia membuat daftar
tersebut menggunakan software Microsoft Excel, ia membuat kolom nomor dan
mengetik angka 1. Karena yang menjadi peserta lomba sebanyak 20 orang, jadi
mahasiswa tersebut menggunakan fitur yang ada pada Microsoft Excel yaitu
menyeleksi cell yang bertuliskan angka 1 kemudian menariknya ke bawah hingga
muncul angka 20. Fitur tersebut memudahkan pengguna dalam menulis nomor yang
banyak. Buatlah program yang mempunyai prinsip sama seperti fitur Microsoft Excel
yang tadi disebutkan!

4.5.2 Penyelesaian Statik Array dan Dynamic Array


Statik Array dan Dynamic Array memiliki konsep seperti array yaitu menyimpan data
dari variabel dalam suatu kolom yang berderet. Pada penyelesaian soal ini juga
digunakan konsep looping, nomor yang muncul bisa berderet kebawah seperti pada
gambar, atau dapat berderet ke samping tergantung keinginan user.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.6 Multi Dimensional Array


4.6.1 Persoalan Multi Dimensional Array
Hari ini sedang dilaksanakan perkuliahan mata kuliah Pemecahan Masalah dengan C.
setiap mahasiswa membawa laptop mereka masing-masing untuk kegiatan
pembelajaran. Ketika dosen telah memberikan materi tentang array multi dimensi,
kemudian dosen menulis sebuah tabel di papan tulis seperti dibawah ini:

VA Harga (Rp)

450 415

900 568

1300 1467

2200 1467

3500 1467

4500 1467

5500 1467

6600 1467

Setelah membuat tabel tersebut, kemudian dosen memberikan tugas sebagai latihan
kepada mahasiswa. Tugasnya adalah membuat tabel berbentuk array multidimensi
menggunakan bahasa C, bayangkan anda menjadi salah satu mahasiswa yang
mengikuti kegiatan perkuliahan tersebut maka buatlah tabelnya!.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.6.2 Penyelesaian Multi Dimensional Array


\
Pada konsep Multi Dimensional Array sama seperti array pada umumnya, namun sesuai
namanya Multi Dimensional Array ini akan membentuk kolom dan baris seperti matriks
tergantung berapa dimensinya karena bisa saja dua dimensi, tiga dimensi, atau lebih
dari tiga dimensi. Pada gambar dibawah nampak seperti tabel karena merupakan array
dua dimensi.

4.7 String
4.7.1 Persoalan String
David seorang penulis novel dan juga mempunyai hobi programming. Ketika ia sedang
membuat aplikasi berupa ebook novelnya, ia mengutip sebuah percakapan antara kedua
tokoh utama novel yang baru saja dirilisnya.

4.7.2 Penyelesaian String


String memiliki konsep seperti array yang menyimpan karakter di setiap kolom yang
telah ditentukan, jika string[30] maka string tersebut hanya dapat menyimpan maksimal
30 karakter maupun simbol.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.8 Struct
\
4.8.1 Persoalan Struct
Seorang pekerja administrasi hendak menginput data mahasiswa berprestasi pada bulan
Desember. Mahasiswa berprestasi juara pertama yaitu Budi, dia tinggal di Dago dan
umurnya 20 tahun. Kemudian mahasiswa berprestasi juara kedua yaitu Susi, dia tinggal
di Lembang dan umurnya 19 tahun. Dan yang terakhir peringkat ketiga yaitu Anto, dia
tinggal di Tasikmalaya dan umurnya 21 tahun. Buatlah program menggunakan prinsip
struct berdasarkan data-data yang disebutkan sebelumnya!.

4.8.2 Penyelesaian Struct


Pada persoalan struct ini,program akan mengumpulkan beberapa variable dengan
berbagai tipe data yang nantinya akan dibungkus dalam satu variable.dapat dilihat pada
persoalan terdapat 3 mahasiswa dengan nama,umur dalam alamat yang berbeda
beda.saat program dijalankan,program akan menyimpan data dari 3 mahasiswa tersebut
yang nantinya akan menghasilkan output berupa hasil dari inputan data dari 3
mahasiswa tersebut.

4.9 Linked List


4.9.1 Persoalan Linked List
Pada sebuah kertas terdapat angka 70,50. Dan 60. Jika secara perhitungan manusia kita
akan langsung mengetahui angka berapa yang terendah dan angka berapa yang
tertinggi. Buatlah program yang dapat mengurutkan angka-angka tersebut dari terkecil
sampai terbesar menggunakan prinsip Linked list!

4.9.2 Penyelesaian Linked List


Linked List memiliki konsep urutan, pada persoalan ini maka setiap variabel yang telah
ditentukan akan diurutkan sesuai keinginan user. Linked list ini menggunakan tipe data
struct.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.10 Stack
4.10.1 Persoalan Stack
Buatlah sebuah program menggunakan konsep stack yang dapat menambahkan elemen
stack pada array, menghapus elemen, menampilkan elemen yang telah dimasukkan ke
dalam array, dan mengakhiri program. Elemen yang dimasukkan ke dalam array secara
berurutan yaitu 40,20, dan 30.

4.10.2 Penyelesaian Stack


Stack memiliki konsep seperti tumpukan data yang berada pada suatu array. Jadi jika
data A dimasukkan, kemudian data B dimasukkan, maka data A akan tertimpa oleh data
B. Pada persoalan stack ini,program diminta untuk menampilkan menu berupa
Push,Pop,Clear stack,Cek stack dan exit serta inputan data.saat program
dijalankan,Program akan menampilkan menu.setelah itu inputan yang dimasukan
pertama akan di keluarkan terakhir sedangkan inputan terakhir akan dikeluarkan
pertama.cara menambahkan node yaitu dengan memilih push dan untuk mengeluarkan
atau menghapus node dengan memilih pop.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

4.11 Queue
\
4.11.1 Persoalan Queue
Buatlah sebuah program yang menggunakan konsep Queue. Program tersebut dapat
menginput elemen queue pada array, menghapus, dan menampilkan elemen queue.
Elemen yang diinput pada array secara berurutan adalah 100,200,300. Setelah semua
di input kemudian hapus satu elemen yang ada pada array kemudian akhiri program.

4.11.2 Penyelesaian Queue


Queue menerapkan konsep antrian. Antrian ini terdapat di dalam array. Pada persoalan
queue ini,memiliki konsep yang hampir sama dengan stack.yang membedakan adalah
jika pada stack menggunakan system LIFO sedangkan pada queue ini merupakan
antrian,yang artinya inputan awal akan keluar paling awal seperti konsep antrian
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

BAB V
\
KESIMPULAN DAN SARAN

5.1. Kesimpulan
Setelah melaksanakan kegiatan praktikum dengan mengcompile kode yang
telah dibuat, maka dapat disimpulkan beberapa hal, yakni:

1. Standard input-output digunakan untuk membuat suatu program yang mana


nantinya program tersebut akan meminta user memasukkan input dan program
akan mengeluarkan outputnya.
2. Basic Arithmetic Operation And Math Library digunakan untuk membuat
program yang berhubungan dengan operasi matematika dasar dan juga sebagai
kamus untuk operasi matematika.
3. Conditional Structure & Loop Construct digunakan untuk membuat program
yang bersifat loop dan nantinya keluaran yang dihasilkan akan berupa
perulangan.
4. Procedure,Function, Pointer & File Eksternal merupakan sistem yang
digunakan untuk membuat program yang terkait dengan pointer sederhana. Jadi
ketika program dijalankan, maka pointer yang sudah dibuat akan menunjukkan
variabel tertentu di dalam program.
5. Statik Array dan Dynamic Array digunakan untuk membuat program yang
keluarannya akan mendeklarasikan array statis dari suatu data. Hal ini juga
dapat mengalokasikan memori pada waktu kode yang dibuat di compile.
6. Multi Dimensional Array dapat digunakan untuk membuat program yang
keluarannya menghasilkan array persegi panjang dan data yang ada akan
ditampilkan dalam bentuk tabel.
7. String dapat digunakan untuk mengatur dan memanipulasi suatu teks maupun
kalimat yang ada. Jadi, string berfungsi untuk mengatur keluaran dari karakter-
karakter teks tersebut.
8. Struct dapat digunakan untuk mendefinisikan suatu struktur yang ada dalam
suatu program. Selain itu, dapat pula digunakan untuk mendeklarasikan suatu
struktur yang ada dalam suatu program.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

9. Linked List dapat digunakan untuk membuat program yang keluarannya dapat
\
mengurutkan data sesuai dengan perintah dan akan mengurutkannya sesuai
dengan program yang telah dibuat.
10. Stack dapat digunakan untuk membuat program yang keluarannya nanti akan
berupa push, pop, clear stack, cek stack, dan juga exit. Jadi program yang akan
dibuat oleh fungsi Stack ini akan berupa menu pilihan untuk memilih pilihan
tersebut.
11. Queue dapat digunakan untuk membuat program yang sifatnya berbentuk
antrian. Jadi, program yang akan terbuat nantinya akan memiliki domain dan
utilitasnya masing-masing berdasarkan tujuan dan juga lingkungan dari data
tersebut.

5.2. Saran
Pada praktikum kali ini untuk seluruh materi sudah diberikan dengan baik mulai
standard input-output, program basic arithmetic, hingga fungsi dari Queue. Namun,
sedikit saran untuk praktikum dapat dilakukan secara offline dikarenakan banyak
mahasiswa yang masih kurang memahami materi dengan sangat baik dan juga masih
banyak mahasiswa yang tidak mempunyai laptop yang memadai. Sehingga jika
dilaksanakan secara offline, mahasiswa yang kekurangan dalam perangkat dapat
menggunakan perangkat kampus dan praktikum dapat terlaksana dengan baik tanpa
kendala.
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

LAMPIRAN
\
Listing Code 3.1
#include <stdio.h>
int main()
{
char a[30];
int b;

printf("Nama :");scanf("%s",&a);
printf("Nim :");scanf("%d",&b);

printf("\nData yang anda masukkan adalah\n ");


printf("Nama=%s \n.",a);
printf("Nim=%d \n",b);

return 0;
}

Listing Code 3.2


#include <stdio.h>
int main(void)
{
int a,b;
a = ((10+3)-7)*10;
b = -7*(10-1);
printf("hasilnya adalah : %d \n",a);
printf("hasilnya adalah : %d",b);
return 0;
}

Listing Code 3.3


#include <stdio.h>
int main(void)
{
int i;
for(i=1;i<=15;i++){
printf("%i ",i*3);
}
printf("\n");
return 0;
}

Listing Code 3.4


#include <stdio.h>
void main()
{
int umur = 10;
float tinggi = 175.5;
int*pointer_umur=&umur;
int*pointer2=&umur;
float*p_tinggi=&tinggi;

printf("alamat memori variabel 'umur'=%d\n",&umur);


PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

printf("alamat memori variabel tinggi 'tinggi'=%d\n",&tinggi);


\
printf("alamat memori *pointer_umur=%d\n",pointer_umur);
printf("alamat memori *pointer2=%d\n",pointer2);
printf("alamat memori *p_tinggi=%d\n",p_tinggi);
}

Listing Code 3.5


#include <stdio.h>
int main()
{
int n[10];
int i,j;
for(i=0;i<10;i++){
n[i]=i+0;
}
for(j=0;j<10;j++){
printf("Elemen[%d]=%d\n",j,n[j]);
}
return 0;
}

Listing Code 3.6


#include <stdio.h>
int main()
{
int baris,kolom,i,j,matrikA[10][10];
printf("masukkan jumlah baris matrik :");scanf("%d",&baris);
printf("masukkan jumlah kolom matrik :");scanf("%d",&kolom);

printf("\n masukkan nilai matrik A:\n");


for(i=0;i<baris;i++){
for(j=0;j<kolom;j++){
printf("input matrik A [%d][%d]:",i+1,j+1);
scanf("%d",&matrikA[i][j]);
}
}
printf("\n hasilnya adalah \n");
printf("matrik A : \n");
for(i=0;i<baris;i++){
for(j=0;j<kolom;j++){
printf("%3d",matrikA[i][j]);
}
printf("\n");
}
}

Listing Code 3.7


#include <stdio.h>
int main(void)
{
char foo[]="Selamat datang di pantai mutun";
printf("%s\n",foo);
printf("panjang string adalah %d\n",sizeof(foo));
return 0;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

}
\

Listing Code 3.8

#include <stdio.h>

struct mahasiswa{
char*name;
char*address;
int age;
};
void main(){
struct mahasiswa mhs1,mhs2,mhs3;

mhs1.name="Ali";
mhs1.address="Lampung Timur";
mhs1.age=20;

mhs2.name="Reni";
mhs2.address="Bandar Lampung";
mhs2.age=20;

mhs3.name="Beni";
mhs3.address="Jawa Timur";
mhs3.age=22;

printf("mahasiswa pertama\n");
printf("Nama :%s\n",mhs1.name);
printf("Alamat:%s\n",mhs1.address);
printf("Umur :%d\n",mhs1.age);

printf("mahasiswa kedua\n");
printf("Nama :%s\n",mhs2.name);
printf("Alamat:%s\n",mhs2.address);
printf("Umur :%d\n",mhs2.age);

printf("mahasiswa ketiga\n");
printf("Nama :%s\n",mhs3.name);
printf("Alamat:%s\n",mhs3.address);
printf("Umur :%d\n",mhs3.age);
}

Listing Code 3.9


#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node*next;
};
int main()
{
struct node*head=NULL;
struct node*dua=NULL;
struct node*tiga=NULL;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

head=(struct node*)malloc(sizeof(struct node));


\
dua=(struct node*)malloc(sizeof(struct node));
tiga=(struct node*)malloc(sizeof(struct node));

head->data=50;
head->next=dua;
dua->data=60;
dua->next=tiga;
tiga->data=70;
tiga->next=NULL;

printf("hasil linked listnya adalah :\n");


struct node*n=head;
while(n!=NULL){
printf("%d\n",n->data);
n=n->next;
}
return 0;
}

Listing Code 3.10


#include <stdio.h>
#include <conio.h>
#define max 5

typedef struct {
int top;
int data[max+1];
}stack;
stack tumpukan;
void createEmpty();
int IsEmpty();
int IsFull();
void push(int x);
void pop();

main(){
int lagi;
int input;
int pilih;
createEmpty();
pilih = 0;
while (pilih != 5){
printf(" MENU UTAMA\n");
puts("1: Cek Stack");
puts("2: PUSH");
puts("3: POP");
puts("4: CLEAR STACK");
puts("5: EXIT");
printf("Pilihan Anda: ");
scanf("%d",&pilih);
switch(pilih){
case 1:
if (IsEmpty() == 1)
puts("Stack masih kosong");
else if ((IsEmpty() == 0) && (IsFull() == 0))
puts("Stack sudah terisi (belum penuh)");
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

else
\ puts("Stack sudah penuh");
break;
case 2:
if (IsFull() == 1)
puts("Stack Penuh.");
else
{
printf("Masukkan data: ");
scanf("%d",&input);
push(input);
printf("Top baru: %d\n",tumpukan.data[tumpukan.top]);
printf("IsFull: %d\n",IsFull());
printf("IsEmpty: %d\n",IsEmpty());
}
break;
case 3:
printf("Top yang dikeluarkan bernilai: %d
\n",tumpukan.data[tumpukan.top]);
pop();
break;
case 4:
while (IsEmpty() == 0)
{
printf("Top yang dikeluarkan bernilai: %d
\n",tumpukan.data[tumpukan.top]);
pop();
}
puts("Stack sudah kosong");
break;
case 5:
puts("---Terimakasih---");
break;
}
}
}
void createEmpty(){
tumpukan.top = 0;
}
void push(int x){
tumpukan.top = tumpukan.top + 1;
tumpukan.data[tumpukan.top] = x;
}

void pop(){
tumpukan.top = tumpukan.top - 1;
}
int IsEmpty(){
if (tumpukan.top == 0)
return 1;
else
return 0;
}
int IsFull(){
if (tumpukan.top == max)
return 1;
else
return 0;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

}
\

Listing Code 3.11

#include <stdio.h>
void main(){
int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;
do{
printf("MENU\n");
printf("1. Tambahkan Queue\n2. Keluarkan Queue\n3. Lihat Queue\n4.
Keluar\n");
printf("Pilihan = "); scanf("%d", &pilihan);
switch (pilihan)
{
case 1:
if (belakang < 4 )
{ printf("Data Masuk = "); scanf("%d", &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;

}
else
printf("Queue penuh!\n");
break;
case 2:
if (depan <= belakang)
{
printf("Data keluar = %d\n", queue[depan]);
depan++;

}
else
printf("Queue kosong!\n");
break;
case 3:
for(i=depan; i<=belakang; i++)
printf("%d ", queue[i]);
printf("\n");
break;

}while (pilihan != 4);


}

Listing Code 4.1


#include <stdio.h>

int main(){
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

char NIM[20];
\
char nama[35];
char gender;
double ipk;

printf("----------------------------------------------\n");
printf(" | Selamat Datang di Portal Alumni ITERA | \n");
printf(" | Silahkan ketik data diri Anda dibawah | \n");
printf("----------------------------------------------\n");

printf("NIM : ");
scanf("%s", NIM); getchar();

printf("Nama : ");
scanf("%[^\n\n]", nama); getchar();

printf("Jenis Kelamin (L/P) : ");


scanf("%c",&gender); getchar();

printf("IPK : ");
scanf("%lf",&ipk); getchar();

printf("\nData Anda dibawah ini sudah tersimpan!\n");


printf("ID : %s\n",NIM);
printf("Name : %s\n",nama);
printf("Jenis Kelamin : %c\n",gender);
printf("IPK : %.2lf\n",ipk);

printf("\nTerimakasih!\n");
return 0;
}

Listing Code 4.2


#include <stdio.h>
#include <conio.h>
int main(){
float A,B,C,D,E;
float penjualan;
float rataRata;

printf("----------------------------------------------\n");
printf(" | Silahkan ketik Penjualan Anda | \n");
printf("----------------------------------------------\n\n");

printf("Restoran A = Rp ");
scanf("%f",&A);

printf("Restoran B = Rp ");
scanf("%f",&B);

printf("Restoran C = Rp ");
scanf("%f",&C);

printf("Restoran D = Rp ");
scanf("%f",&D);

printf("Restoran E = Rp ");
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

scanf("%f",&E);
\
penjualan = A+B+C+D+E; printf("\n");
printf("Total Penjualan = %.1f",penjualan); printf("\n");

rataRata = penjualan/5;
printf("Rata-rata Penjualan = %.1f",rataRata);
return 0;
}

Listing Code 4.3


#include <stdio.h>

int main(){
int i=1;
char nama[30];
int a,b,c;
float rataRata;

for(i; i <= 3; i++)


{
printf("Nama Mahasiswa %d = ", i);
scanf("%[^\n\n]", nama); getchar();
}

printf("\nNilai Mahsiswa 1 = ");


scanf("%d",&a); getchar();
printf("Nilai Mahsiswa 2 = ");
scanf("%d",&b); getchar();
printf("Nilai Mahsiswa 3 = ");
scanf("%d",&c); getchar();
printf("\n");

if (a >= 80)
{
printf("Mahasiswa 1 (Lulus)");
} else {
printf("Mahasiswa 1 (Tidak lulus)");
}
printf("\n");

if (b >= 80)
{
printf("Mahasiswa 2 (Lulus)");
} else {
printf("Mahasiswa 2 (Tidak lulus)");
}
printf("\n");
if (c >= 80)
{
printf("Mahasiswa 3 (Lulus)");
} else {
printf("Mahasiswa 3 (Tidak lulus)");
}
printf("\n\n");

rataRata = (a+b+c)/3;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

printf("Rata-rata = %.2f",rataRata);
return \0;
}

Listing Code 4.4


#include <stdio.h>

void main(){
int umur = 10;
float tinggi = 175.5;
int*pointer_umur=&umur;
int*pointer2=&umur;
float*p_tinggi=&tinggi;

printf("alamat memori variabel 'umur'=%d\n",&umur);


printf("alamat memori variabel tinggi 'tinggi'=%.1f\n",&tinggi);

printf("alamat memori *pointer_umur=%d\n",pointer_umur);


printf("alamat memori *pointer2=%d\n",pointer2);
printf("alamat memori *p_tinggi=%.1f\n",p_tinggi);
}

Lisiting Code 4.5


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

int main(void)
{
int ukuran;
int i;
printf("Berapa nomor yang ingin ditampilkan: ");
scanf("%d",&ukuran); printf("\n");

int *m_array = (int *)malloc((ukuran+1)*sizeof(int));


memset(m_array,'\0',ukuran+1);

for(i=1; i<=ukuran ; i++)


{
m_array[i]=i;
printf("%d\n",m_array[i]);
}
printf("\n");
free(m_array);

return 0;
}

Listing Code 4.6


#include <stdio.h>
int main (){
int golongan_tarif[8][2] = {
{450, 415},
{900, 568},
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

{1300, 1467},
\ {2200, 1467},
{3500, 1467},
{4500, 1467},
{5500, 1467},
{6600, 1467}
};
int i,j;

printf(" Berikut Daftar Golongan\n");


printf(" Tarif Dasar Listrik Berdasarkan VA\n");
printf(" ----------------------------\n");
printf(" VA"); printf(" | "); printf("Harga (Rp)\n");
printf(" ----------------------------\n");

for (i=0; i<8; i++){


for (j=0; j<2; j++){
printf("\t\t%d ", golongan_tarif[i][j]);
}
printf("\n");
}
return 0;
}

Listing Code 4.7


#include <stdio.h>
int main(){
char baris_1[] = "Halo.";
char baris_2[] = "Tidak ada suara yang terdengar.";
char baris_3[] = "Reynald, lagi sibuk ga?' tanya Amanda lewat sambungan";
char baris_4[] = "Lagi belajar buat besok, emang kemaleman sih.' Ucap";

printf("\n\n");
printf(" '%s'\n",baris_1);
printf(" '%s'\n",baris_2);
printf(" '%s\n telepon.\n",baris_3);
printf(" '%s\n Reynald.",baris_4);
printf("\n\n");

return 0;
}

Listing Code 4.8


#include <stdio.h>

struct mahasiswa{
char*nama;
char*alamat;
int umur;
};
void main(){
struct mahasiswa mhs1,mhs2,mhs3;

mhs1.nama="Budi";
mhs1.alamat="Dago";
mhs1.umur=20;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

\
mhs2.nama="Susi";
mhs2.alamat="Lembang";
mhs2.umur=19;

mhs3.nama="Anto";
mhs3.alamat="Tasikmalaya";
mhs3.umur=21;

printf("(1) Mahasiswa Peringkat Pertama\n");


printf(" Nama : %s\n",mhs1.nama);
printf(" Alamat: %s\n",mhs1.alamat);
printf(" Umur : %d tahun\n",mhs1.umur);

printf("\n(2) Mahasiswa Peringkat Kedua\n");


printf(" Nama : %s\n",mhs2.nama);
printf(" Alamat: %s\n",mhs2.alamat);
printf(" Umur : %d tahun\n",mhs2.umur);

printf("\n(3) Mahasiswa Peringkat Ketiga\n");


printf(" Nama : %s\n",mhs3.nama);
printf(" Alamat: %s\n",mhs3.alamat);
printf(" Umur : %d tahun\n",mhs3.umur);
}

Listing Code 4.9


#include <stdio.h>
#include <stdlib.h>
struct node{
int data;
struct node*next;
};

int main(){
struct node*satu=NULL;
struct node*dua=NULL;
struct node*tiga=NULL;
satu=(struct node*)malloc(sizeof(struct node));
dua=(struct node*)malloc(sizeof(struct node));
tiga=(struct node*)malloc(sizeof(struct node));

satu->data=50;
satu->next=dua;
dua->data=60;
dua->next=tiga;
tiga->data=70;
tiga->next=NULL;

printf("Urutkan angka 70,50,60 dari \nyang terkecil hingga terbesar


\n(atas ke bawah) :\n\n");
struct node*n=satu;
while(n!=NULL){
printf(" |%d|\n",n->data);
n=n->next;
}
return 0;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

}
\

Listing Code 4.10


#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 5
struct stack
{
int stk[MAXSIZE];
int top;
};
typedef struct stack ST;
ST s;
/*Function to add an element to stack */
void push ()
{
int num;
if (s.top == (MAXSIZE - 1))
{
printf ("Stack is Full\n");
return;
}
else
{
printf ("\nEnter element to be pushed : ");
scanf ("%d", &num);
s.top = s.top + 1;
s.stk[s.top] = num;
}
return;
}
/*Function to delete an element from stack */
int pop ()
{
int num;
if (s.top == - 1)
{
printf ("Stack is Empty\n");
return (s.top);
}
else
{
num = s.stk[s.top];
printf ("poped element is = %d\n", s.stk[s.top]);
s.top = s.top - 1;
}
return(num);
}
/*Function to display the status of stack */
void display ()
{
int i;
if (s.top == -1)
{
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

printf ("Stack is empty\n");


\
return;
}
else
{
printf ("\nStatus of elements in stack : \n");
for (i = s.top; i >= 0; i--)
{
printf ("%d\n", s.stk[i]);
}
}
}
int main ()
{
int ch;
s.top = -1;

printf ("\tSTACK OPERATIONS\n");


printf("----------------------------\n");
printf(" 1. PUSH\n");
printf(" 2. POP\n");
printf(" 3. DISPLAY\n");
printf(" 4. EXIT\n");
//printf("----------------------------\n");
while(1)
{
printf("\nChoose operation : ");
scanf("%d", &ch);
switch (ch)
{
case 1:
push();
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
exit(0);
default:
printf("Invalid operation \n");
}
}
return 0;

Listing Code 4.11


#include <stdio.h>
#define MAX 20
#include<stdlib.h>
int queue_array[MAX];
int rear = - 1;
int front = - 1;
void insert()
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

{
\
int add_item;
if (rear == MAX - 1)
printf("Queue Overflow \n");
else
{
if (front == - 1)
/*If queue is initially empty */
front = 0;
printf("\nEnter element : ");
scanf("%d", &add_item);
printf("\n%d is inserted in queue\n",add_item);
printf("------------------------------\n");
rear = rear + 1;
queue_array[rear] = add_item;
}
}
void delete()
{
if (front == - 1 || front > rear)
{
printf("Queue Underflow \n");
return ;
}
else
{
printf("\nElement deleted from queue is : %d\n",
queue_array[front]);
printf("------------------------------\n");
front = front + 1;
}
}
void display()
{
int i;
if (front == - 1)
printf("Queue is empty \n");
else
{
printf("\nQueue is : ");
for (i = front; i <= rear; i++)
printf("%d ", queue_array[i]);
printf("\n------------------------------");
printf("\n");
}
}
int main()
{
printf("Perform operations on queue\n");
printf("------------------------------\n");
printf("\tMenu");
printf("\n------------------------------\n");
printf("1. Insert element \n");
printf("2. Delete element \n");
printf("3. Display queue\n");
printf("4. Exit\n");
printf("------------------------------\n");
int ch;
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023

while (1)
{ \
printf("Choose operation : ");
scanf("%d", &ch);
switch(ch)
{
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
display();
break;
case 4:
exit(1);
default:
printf("Invalid operation \n");
}
}
return 0;
}

Anda mungkin juga menyukai