Seputar IT dan Kajian Islam

Senin, 08 Juni 2020

SINGLE LINKED LIST


MEMBUAT SINGLE LINKED LIST

1. Berikut ini merupakan source codenya :

#include
#include

struct NODE {
 int number;
 struct NODE *next;
};

void append_node(struct NODE *llist, int num);
int  search_value(struct NODE *llist, int num);
void display_list(struct NODE *llist);


int main(void) {
 int num = 0;
 int input = 5;
 int retval = 0;
 struct NODE *llist;

 llist = (struct NODE *)malloc(sizeof(struct NODE));
 llist->number = 0;
 llist->next = NULL;
 while(input != 0) {
  printf("\n===== Pilih Menu =====\n");
  printf("0: Keluar\n");
  printf("1: Insert\n");
  printf("2: Search\n");
  printf("3: Tampilkan\n");
  printf("\nPilihan: ");scanf("%d", &input);

if(input==0){
    printf("...Terimakasih...\n");
}
else if(input==1){
    printf("Anda Memilih: 'Insert'\n");
    printf("Masukkan Nilai Yang Akan di Insert: ");
    scanf("%d", &num);
    append_node(llist, num);
}
else if(input==2){
    printf("Anda Memilih: 'Search'\n");
    printf("Masukkan Nilai Yang Akan di Cari (Search): ");
    scanf("%d", &num);
    if((retval = search_value(llist, num)) == -1)
        printf("Value `%d' not found\n", num);
    else
        printf("Value `%d' located at position `%d'\n", num, retval);
}
else if(input==3){
    printf("Anda Memilih: 'Tampilkan'\n");
    display_list(llist);
}}

 free(llist);
 return(0);
}

void append_node(struct NODE *llist, int num) {
 while(llist->next != NULL)
  llist = llist->next;

 llist->next = (struct NODE *)malloc(sizeof(struct NODE));
 llist->next->number = num;
 llist->next->next = NULL;
}

int search_value(struct NODE *llist, int num) {


 int retval = -1;
 int i = 1;

 while(llist->next != NULL) {
  if(llist->next->number == num)
   return i;
  else
   i++;

  llist = llist->next;
 }

 return retval;
}

void display_list(struct NODE *llist) {
 while(llist->next != NULL) {
  printf("%d ", llist->number);
  llist = llist->next;
 }

 printf("%d", llist->number);

}

OUTPUT :





2. SOURCE CODE untuk single linked list yg fungsi nya dapat menghapus data

#include
#include
#include

struct human{
int age;
char name[30];
human *next;
}*head, *tail, *current;

void pushTail(int age, char name[]){
current = (human*)malloc(sizeof(struct human));
current->age = age;
strcpy(current->name, name);

if(head == NULL){
head = tail = current;
}
else{
tail->next = current;
tail = current;
}
tail->next = NULL;
}

void pushHead(int age, char name[]){
current = (human*)malloc(sizeof(struct human));
current->age = age;
strcpy(current->name, name);

if(head == NULL){
head = tail = current;
}
else{
current->next = head;
head = current;
}
}

void pushMid(int age, char name[]){
current = (human*)malloc(sizeof(struct human));
current->age = age;
strcpy(current->name, name);

if(head == NULL){
head = tail = current;
}
else if(current->age < head->age){
pushHead(age, name);
}
else if(current->age > tail->age){
pushTail(age, name);
}
else{
human *temp = head;
while(temp->next->age < current->age){
temp = temp->next;
}
current->next = temp->next;
temp->next = current;
}
}

void popHead(){
current=head;
if(head==NULL){
printf("No data");
}else if(head==tail){
head=tail=NULL;
free(current);
}else{
head=head->next;
free(current);
}
}

void popTail(){
if(head==NULL){
printf("No data");
}else if(head==tail){
head=tail=NULL;
free(current);
}else{
human *temp=head;
while(temp->next!=tail){
temp=temp->next;
}
current=tail;
tail=temp;
free(current);
tail->next=NULL;
}
}

void popMid(int age){
current=head;
if(head==NULL){
printf("No data");
}else if(head->age==age){
popHead();
}else if(tail->age==age){
popTail();
}else{
human *temp=head;
while(temp->next->age!=age && temp!=tail){
temp=temp->next;
}
current=temp->next;
temp->next=temp->next->next;
free(current);
}
}

void popAll(){
while(head!=NULL){
popHead();
}
}

void print(){
current = head;
while(current != NULL){
printf("%s - %d\n",current->name,current->age);
current = current->next;
}
}

int main(){
pushMid(18, "hery");
pushMid(17, "mahirkoding");
pushTail(22, "andi");
pushHead(15, "tono");
pushMid(11, "vandoro");
pushMid(23, "budi");
popHead();
popTail();
popMid(15);
//popAll();
print();
getchar();
return 0;
}

Rabu, 03 Juni 2020

Regresi


Sebuah penelitian terhadap pohon Mahoni, dimana akan diteliti apakah ada hubungan antara tinggi pohon dengan diameter batang pohon, dengan artian apakah ada pengaruh diameter batang pohon terhadap tinggi pohon tersebut.
Diambil sampel secara acak sejumlah delapan pohon mahoni.Dapat dilihat dari Tabel 1 pada kolom X dan Y.

Hal pertama yang akan kita lakukan adalah membentuk persamaan regresi, yaitu :
Y' = a + bX