Strukdat - 19076075 Ulfi Latifah Tgs03
Strukdat - 19076075 Ulfi Latifah Tgs03
DOSEN PENGAMPU:
OLEH:
FAKULTAS TEKNIK
2020
1. Prog1_UrutanAngka.c
a. SOURCE CODE
#include <stdio.h>
#include <stdlib.h>
//19076075-Ulfi Latifah
//Tugas 1-1
//Prak. Struktur Data #001 - TGS 3
//tgl 12 Febuari 2020
//Program.c
struct node{
int data;
struct node *next;
};
head->data=1;
head->next=second;
second->data=2;
second->next=third;
third->data=3;
third->next=fourth;
fourth->data=3;
fourth->next=fifth;
fifth->data=2;
fifth->next=sixth;
sixth->data=1;
sixth->next=NULL;
printf("%d->%d->%d->%d->%d->%d", head->data,second-
>data,third->data,fourth->data,fifth->data,sixth-
>data);
}
b. SCREENSHOT PROGRAM
c. SCREENSHOT OUTPUT
d. PENJELASAN PROGRAM
Baris 1-2 mendeklarasikan pemanggilan package dalam bahasa c
Baris 4-8 mendeklarasikan keterangan data mahasiswa yang membuat
program
Baris 10-13 mendeklarasikan struct bernama node berisikan data bertipe
data integer dan node bertipe data struct dan bagian next yang menyimpan
link ke node selanjutnya
Baris 15 mendeklarasikan struct node untuk alokasi pointer
Baris 16-43 mendeklarasikan fungsi main merupakan fungsi pertama yang
di eksekusi oleh program
Baris 17-22 mendeklarasikan untuk mengalokasikan node baru,
menggunakan malloc() untuk mendapatkan memori aktual, yang akan
menginisialisasikan suatu field data.
Baris 24-40 mendeklarasikan nilai dari setiap variabel ke data lalu next
digunakan untuk menuju nilai variabel berikutnya sampai NULL
Baris 42 mendeklarasikan fungsi printf untuk menampilkan kalimat
diantara tanda petik. %d menampilkan nilai yang tersimpan pada head-
>data,second->data,third->data,fourth->data,fifth->data,sixth->data
2. Prog2_Urutan Warna.c
a. SOURCE CODE
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<windows.h>
//19076075-Ulfi Latifah
//Tugas 1-2
//Prak. Struktur Data #002 - TGS 3
//tgl 12 Febuari 2020
//Program.c
struct color{
char color[30];
struct color *next;
};
strcpy(head->color,"MERAH");
head->next=second;
strcpy(second->color,"KUNING");
second->next=third;
strcpy(third->color,"HIJAU");
third->next=fourth;
strcpy(fourth->color,"BIRU");
fourth->next=NULL;
system("color 7c");
printf("%s->%s->%s->%s", head->color,second-
>color,third->color,fourth->color);
}
b. SCREENSHOT PROGRAM
c. SCREENSHOT OUTPUT
d. PENJELASAN PROGRAM
Baris 1-4 mendeklarasikan pemanggilan package dalam bahasa c
Baris 5-10 mendeklarasikan keterangan data mahasiswa yang membuat
program
Baris 12-15 mendeklarasikan struct bernama color berisikan color bertipe
data char dan node bertipe data struct dan bagian next yang menyimpan
link ke node selanjutnya
Baris 17 mendeklarasikan struct node untuk alokasi pointer
Baris 18-38 mendeklarasikan fungsi main merupakan fungsi pertama yang
di eksekusi oleh program
Baris 19-22 mendeklarasikan untuk mengalokasikan node baru,
menggunakan malloc() untuk mendapatkan memori aktual, yang akan
menginisialisasikan suatu field data.
Baris 24-34 mendeklarasikan nilai dari setiap variabel ke color lalu next
digunakan untuk menuju nilai variabel berikutnya sampai NULL
Baris 36 mendeklarasikan warna background putih dengan kode 7 dan
warna text merah dengan kode c
Baris 37 mendeklarasikan fungsi printf untuk menampilkan kalimat
diantara tanda petik. %s menampilkan nilai yang tersimpan pada head-
>color,second->color,third->color,fourth->color
3. Prog3_DataMahasiswa.c
a. SOURCE CODE
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<windows.h>
//19076075-Ulfi Latifah
//Tugas 2
//Prak. Struktur Data #003 - TGS 3
//tgl 12 Febuari 2020
//Program.c
struct mahasiswa{
char nama[25];
int umur;
int tinggi_badan;
struct mahasiswa *next;
}*head,*tail,*current;
if(head==NULL){
head=tail=current;
}
else{
current->next=head;
head=current;
}
}
if(head==NULL){
head=tail=current;
}
else{
struct mahasiswa *temp=head;
temp=temp->next;
current->next=temp->next;
temp->next=current;
}
}
if(head==NULL){
head=tail=current;
}
else{
tail->next=current;
tail=current;
}
tail->next=NULL;
}
void cetak(){
current=head;
while(current!=NULL){
printf("\nNama\t\t: %s",current->nama);
printf("\nUmur\t\t: %i",current->umur);
printf("\nTinggi Badan\t: %i\n",current-
>tinggi_badan);
current=current->next;
}
}
int main(){
printf("===DATA MAHASISWA===\n");
insertfirst("Ulfi",19,163);
insertlast("Annisa",18,153);
insertafter("Ramona",19,154);
cetak();
getchar();
return 0;
}
b. SCREENSHOT PROGRAM
c. SCREENSHOT OUTPUT
d. PENJELASAN PROGRAM
Baris 1-4 mendeklarasikan pemanggilan package dalam bahasa c
Baris 6-10 mendeklarasikan keterangan data mahasiswa yang membuat
program
Baris 12-16 mendeklarasikan struct bernama Mahasiswa berisikan nama
bertipe data char array , umur dan tinggi badan bertipe data integer. Lalu
mahasiswa bertipe data struct dan bagian next yang menyimpan link ke
node selanjutnya
Baris 17 mendeklarasikan struct node untuk alokasi pointer
Baris 19-32 mendeklarasikan fungsi void bernama insertfirst() untuk
menambahkan node di awal. Fungsi tersebut memiliki tipe data dan
variabel: char nama[],int umur, int tinggi_badan.
Baris 21 mendeklarasikan untuk mengalokasikan node baru, menggunakan
malloc() untuk mendapatkan memori aktual, yang akan
menginisialisasikan suatu field data.
Baris 21-23 mendeklarasikan nilai current disimpan pada nama,umur, dan
tinggi_badan.
Baris 25-31 mendeklarasikan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 34-49 mendeklarasikan fungsi void bernama insertafter() untuk
menambahkan node di tengah. Fungsi tersebut memiliki tipe data dan
variabel: char nama[],int umur, int tinggi_badan
Baris 35 mendeklarasikan untuk mengalokasikan node baru, menggunakan
malloc() untuk mendapatkan memori aktual, yang akan
menginisialisasikan suatu field data.
Baris 36-38 mendeklarasikan nilai current disimpan pada nama,umur, dan
tinggi_badan.
Baris 40-47 mendeklarasikan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 51-65 mendeklarasikan fungsi void bernama insertlast() untuk
menambahkan node di akhir. Fungsi tersebut memiliki tipe data dan
variabel: char nama[],int umur, int tinggi_badan
Baris 52 mendeklarasikan untuk mengalokasikan node baru, menggunakan
malloc() untuk mendapatkan memori aktual, yang akan
menginisialisasikan suatu field data.
Baris 53-55 mendeklarasikan nilai current disimpan pada nama,umur, dan
tinggi_badan.
Baris 57-65 mendeklarasikan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 103-145 merupakan fungsi main yang akan di eksekusi pertama
oleh program.
Baris 67-75 mendeklarasikan fungsi void bernama cetak digunakan untuk
menampilkan data. fungsi printf menampilkan kalimat diantara tanda
petik, %s dan %i akan menampilkan data yang tersimpan pada current-
>nama, current->umur, dan current->tinggi_badan menggunakan
perulangan while.
Baris 77-85 mendeklarasikan fungsi main merupakan fungsi pertama yang
di eksekusi oleh program
Baris 78 mendeklarasikan fungsi printf untuk menampilkan kalimat
diantara tanda petik.
Baris 79-81 mendeklarasikan pemanggilan fungsi insertfirst(), insertlast(),
dan insertafter(). Pemanggilan fungsi di isi nilai diantara tanda kurung
fungsi
Baris 82 mendeklarasikan fungsi cetak untuk menampikan output
Baris 83 mendeklarasikan penghentian fungsi yang sedang berjalan dan
melanjutkan jalannya program setelah enter
Baris 85 mendeklarasikan return 0 untuk mengembalikan nilai main ke
nilai 0
4. Prog4_DataMahasiswa.c
a. SOURCE CODE
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
//19076075-Ulfi Latifah
//Tugas 3
//Prak. Struktur Data #004 - TGS 3
//tgl 12 Febuari 2020
//Program.c
struct mahasiswa{
char nama[25];
int nim;
char jurusan[50];
int nilai_praktikum;
struct mahasiswa *next;
}*head,*tail,*current;
void cetak(){
current=head;
while(current!=NULL){
printf("\nNama\t\t: %s",current->nama);
printf("\nUmur\t\t: %i",current->nim);
printf("\nJurusan\t\t: %s",current->jurusan);
printf("\nNilai Praktikum\t: %i\n",current-
>nilai_praktikum);
current=current->next;
}
}
int main(){
head=(struct mahasiswa*) malloc(sizeof(struct
mahasiswa));
second=(struct mahasiswa*) malloc(sizeof(struct
mahasiswa));
third=(struct mahasiswa*) malloc(sizeof(struct
mahasiswa));
fourth=(struct mahasiswa*) malloc(sizeof(struct
mahasiswa));
strcpy(head->nama,"Ulfi Latifah");
head->nim=19076075;
strcpy(head->jurusan,"Informatika");
head->nilai_praktikum=95;
head->next=second;
strcpy(third->nama,"Ulfa Lutfiah");
third->nim=19029171;
strcpy(third->jurusan,"Matematika");
third->nilai_praktikum=85;
third->next=fourth;
strcpy(fourth->nama,"Dika Saputra");
fourth->nim=16060005;
strcpy(fourth->jurusan,"Ekonomi");
fourth->nilai_praktikum=87;
fourth->next=NULL;
printf("===DATA MAHASISWA===\n");
cetak();
return 0;
}
b. SCREENSHOT PROGRAM
c. SCREENSHOT OUTPUT
d. PENJELASAN PROGRAM
Baris 1-3 mendeklarasikan pemanggilan package dalam bahasa c
Baris 5-9 mendeklarasikan keterangan data mahasiswa yang membuat
program
Baris 11-17 mendeklarasikan struct bernama Mahasiswa berisikan nama dan
jurusan bertipe data char array , nim dan nilai_praktikum bertipe data integer.
Lalu mahasiswa bertipe data struct dan bagian next yang menyimpan link ke
node selanjutnya
Baris 19 mendeklarasikan struct node untuk alokasi pointer
Baris 21-30 mendeklarasikan fungsi void bernama cetak digunakan untuk
menampilkan data. fungsi printf menampilkan kalimat diantara tanda petik,
%s dan %i akan menampilkan data yang tersimpan pada current->nama,
current->nim, current->jurusan dan current->nilai_praktikum menggunakan
perulangan while.
Baris 32-65 mendeklarasikan fungsi main merupakan fungsi pertama yang di
eksekusi oleh program
Baris 33-36 mendeklarasikan untuk mengalokasikan node baru, menggunakan
malloc() untuk mendapatkan memori aktual, yang akan menginisialisasikan
suatu field data.
Baris 44-60 mendeklarasikan nilai dari setiap variabel ke data lalu next
digunakan untuk menuju nilai variabel berikutnya sampai NULL
Baris 82 mendeklarasikan fungsi cetak untuk menampikan output
Baris 85 mendeklarasikan return 0 untuk mengembalikan nilai main ke nilai 0
5. Prog5_DataMahasiswa.c
a. SOURCE CODE
#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
//19076075-Ulfi Latifah
//Tugas 4
//Prak. Struktur Data #005 - TGS 3
//tgl 12 Febuari 2020
//Program.c
void biodata(){
printf("\t\t\t\t==================================="
);
printf("\n\t\t\t\tNama \t\t : Ulfi Latifah");
printf("\n\t\t\t\tNIM \t\t : 19076075");
printf("\n\t\t\t\tNama Program \t : Data
Mahasiswa");
printf("\n\t\t\t\t==================================
=\n");
}
typedef struct mahasiswa{
char nama[25];
int nim;
char jurusan[50];
}mahasiswa;
entry->data=mhs;
entry->next=NULL;
if(head==NULL){
head=entry;
tail=head;
}
else{
tail->next = entry;
tail = entry;
}
}
void hapus(){
node simpan;
if(head==NULL){
printf("\nLinked list kosong, penghapusan tidak
bisa dilakukan.");
}
else{
simpan.data = head ->data;
printf("\nData yang dihapus: : %s -> %d ->
%s\n",simpan.data.nama, simpan.data.nim,
simpan.data.jurusan);
//hapus depan
del = head;
head = head->next;
free(del);
}
}
void cetak()
{
current = head;
if(head == NULL)
printf("\ntidak ada data dalam linked
list");
else
{
printf("\nData yang ada dalam linked list :
\n");
printf("\t");
while(current!=NULL)
{
printf("%s -> %d -> %s \n", current-
>data.nama, current->data.nim, current->data.jurusan);
current = current->next;
getch();
}
printf("NULL");
}
}
int main(){
int pilih;
char z;
node tmp;
biodata();
printf("\n\n========================================
======= PROGRAM DATA MAHASISWA
==============================================");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t
PROGRAM BY ULFI LATIFAH\t\t\t\t\t");
printf("\n\t\t\t\t\t\t~ ASSALAMUALAIKUM WR.WB
~\t\t\t\t\t");
printf("\n\t\t\t\t\t\t ~ WELCOME
~\t\t\t\t\t\t\t\t\t");
getch(); system("cls");
start:
system("cls");
printf("\n==========================================
========= PILIHAN MENU
====================================================");
printf("\n1. Input Data");
printf("\n2. Hapus Data");
printf("\n3. Cetak Data");
printf("\n4. Exit");
printf("\n\nMasukkan pilihan anda : "); scanf("%i",
&pilih);
if(pilih==1)
{system("cls");
fflush(stdin);
printf("\nMasukkan Nama : "); scanf("%s",
&tmp.data.nama);fflush(stdin);
printf("Masukkan NIM : "); scanf("%i",
&tmp.data.nim);fflush(stdin);
printf("Masukkan Jurusan : "); scanf("%s",
&tmp.data.jurusan);
system("cls");input(tmp.data); goto start;}
else if(pilih==2)
{system("cls"); hapus(); goto start;}
else if(pilih==3)
{system("cls"); cetak();goto start;}
else if (pilih==4)
{system("cls"); fflush(stdin);
printf("\n\n\n\n\n\nAPAKAH ANDA YAKIN KELUAR DARI
PROGRAM?");
printf("\n[Y] [N]\n"); scanf("%c",&z);
if(z=='y'||z=='Y')
{system("cls");
printf("\n\n#####################################
PROGRAM SELESAI
######################################");}
else if(z=='n'||z=='N')
{system("cls"); goto start;}
}
else
{printf("\nPilihan salah");}
printf("\n\n\n\n\n\n\n\n\n\t\t\t\tPROGRAM BY ULFI
LATIFAH\t\t\t\t");
printf("\n\t\t\t\t~ WASSALAMUALAIKUM WR.WB
~\t\t\t\t");
printf("\n\t\t\t\t~ SEE YOU <3 ~\t\t\t\t");
}
b. SCREENSHOT PROGRAM
c. SCREENSHOT OUTPUT
d. PENJELASAN PROGRAM
Baris 1-3 mendeklarasikan pemanggilan package dalam bahasa c
Baris 5-9 mendeklarasikan keterangan data mahasiswa yang membuat
program
Baris 11-17 mendeklarasikan fungsi void bernama biodata yang digunakan
untuk menampilkan data mahasiswa dan nama program
Baris 18-21 mendeklarasikan typedef struct bernama mahasiswa berisikan
nama dan jurusan bertipe data char array , nim bertipe data integer.
Baris 22 mendeklarasikan tipe data baru yaitu mahasiswa
Baris 24-27 mendeklarasikan typedef struct bernama node berisikan data
bertipe data mahasiswa dan node bertipe data struct dan bagian next yang
menyimpan link ke node selanjutnya
Baris 29 mendeklarasikan struct node untuk alokasi pointer
Baris 31-34 mendeklarasikan fungsivoid bernama inisialisasi();
Baris 36-49 mendeklarasikan fungsi void bernama input() untuk menginputkan
data mahasiswa. Fungsi tersebut memiliki tipe data dan variabel: mahasiswa
mhs
Baris 37 mendeklarasikan untuk mengalokasikan node baru, menggunakan
malloc() untuk mendapatkan memori aktual, yang akan menginisialisasikan
suatu field data.
Baris 39-40 mendeklarasikan nilai dari setiap variabel ke data lalu next
digunakan untuk menuju nilai variabel berikutnya sampai NULL
Baris 41-48 mendeklarasikan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 51-66 mendeklarasikan fungsi void bernama hapus() untuk menghapus
data yang telah tersimpan dengan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 68-85 mendeklarasikan fungsi void bernama cetak() untuk menghapus
data yang telah tersimpan dengan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 87-136 mendeklarasikan fungsi main yang pertama kali di eksekusi
program
Baris 53-55 mendeklarasikan nilai current disimpan pada nama,umur, dan
tinggi_badan.
Baris 57-65 mendeklarasikan fungsi percabangan if else sesuai kondisi dan
statement yang dideklarasikan
Baris 88-90 mendeklarasikan tipe data dan variabel: int pilih; char z;node tmp;
Baris 17 mendeklarasikan struct array dari Mahasiswa dengan variabel mhs
Baris 92 mendeklarasikan fungsi void bernama biodata yang digunakan untuk
menampilkan data mahasiswa dan nama program
Baris 93-96 mendeklarasikan output kalimat diantara tanda petik oleh fungsi
printf
Baris 97 mendeklarasikan getch() untuk menghentikan program yang sedang
berjalan. Kemudian system(“cls”) untuk membersihkan layar program yang
telah dijalankan sebelumnya sehingga yang selanjutnya tampil hanya program
pada baris selanjutnya