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 :
5 Rania 121130043
Mengetahui
Dosen Penanggung Jawab Praktikum
\ DAFTAR ISI
HALAMAN PENGESAHAN 2
DAFTAR ISI 3
BAB I PENDAHULUAN 7
2.7. String 15
2.8. Struct 16
2.10. Queue 19
3.7 String 23
3.8 Struct 23
3.10 Stack 24
4.7 String 30
4.8 Struct 31
\
4.8.1 Persoalan Struct 31
4.10 Stack 32
4.11 Queue 33
5.1. Kesimpulan 34
5.2. Saran 35
LAMPIRAN 36
PRAKTIKUM PEMECAHAN MASALAH DENGAN C
TEKNIK ELEKTRO ITERA
2022/2023
BAB I
\
PENDAHULUAN
BAB II
\
DASAR TEORI
Deskripsi fungsi
● putw ( ) tulis nomor ke dalam file
● getw ( ) membaca nomor dari file
● fputs ( ) menulis string ke dalam file
● fgets ( ) membaca string dari file
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. 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
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
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
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.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)
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.
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.
BAB III
\
PERCOBAAN PENDAHULUAN
3.7 String
\
3.7.1 Pendahuluan Persoalan String
Buatlah program string dengan output yang akan dihasilkan adalah “Selamat datang di
pantai mutun”
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
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
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
Hitunglah total hasil penjualan dan rata-rata penjualan pada restoran Budi yang terletak
\
di Jakarta!.
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.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.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.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.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.
BAB V
\
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Setelah melaksanakan kegiatan praktikum dengan mengcompile kode yang
telah dibuat, maka dapat disimpulkan beberapa hal, yakni:
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);
return 0;
}
}
\
#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);
}
head->data=50;
head->next=dua;
dua->data=60;
dua->next=tiga;
tiga->data=70;
tiga->next=NULL;
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
}
\
#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;
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("IPK : ");
scanf("%lf",&ipk); getchar();
printf("\nTerimakasih!\n");
return 0;
}
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;
}
int main(){
int i=1;
char nama[30];
int a,b,c;
float rataRata;
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;
}
void main(){
int umur = 10;
float tinggi = 175.5;
int*pointer_umur=&umur;
int*pointer2=&umur;
float*p_tinggi=&tinggi;
int main(void)
{
int ukuran;
int i;
printf("Berapa nomor yang ingin ditampilkan: ");
scanf("%d",&ukuran); printf("\n");
return 0;
}
{1300, 1467},
\ {2200, 1467},
{3500, 1467},
{4500, 1467},
{5500, 1467},
{6600, 1467}
};
int i,j;
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;
}
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;
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;
}
\
{
\
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;
}