8 November 2015

Thread dan IPC bukan IPA, IPS dan IPC

oke baiklah teman-teman semua yang saya cintai dan selalu menyuport saya dari smping depan dan belakang, kalian luar biasa, Terima kasih..
sudah, sudah lupakan kegaringan saya, gak ada yang lucu dari itu tadi.

Baiklah teman-teman sekalian, siang ini saya mau berbagi sedikit tentang lanjutan postingan saya dua minggu atau tiga minggu yang lalu, tetapi saya minta maaf kalau yang saya bagikan ini ternyata gak nyambung sedikitpun sobat, jangan kecewa dulu yaaa? untuk mengobati rasa kecewa teman-teman saya mau bagiin sesuatu yang lebih keren teman-teman. mau tau apa? lanjutin terus ya teman-teman bacanya.

Saya hari ini mau berbagi bagaimana cara membuat thread, bingung kan apa itu thread? nah kalian googling dulu aja sobat thread itu apa sekalian saya langsung memberikan contoh dari program thread itu sendiri. Okelah kali ini saya mau membuat program yang bisa memutar musik di terminal hehehe bingung kan? oke, program nya ini tidak begitu sulit karena kita sudah memiliki template threadnya tetapi disini saya mau improvisasi sedikit dengan membuat pemutar musiknya itu dapat memutar, mengepause, melanjutkan, mengestop, keluar dari program tetapi tidak menghentikan musiknya yang berjalan. Gimana teman-teman? keren kan?
yah saya sudah mengerjakan progrmannya dan ini ada codingannya

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

pthread_t tid[7];
int t;
char lagu[10];
char ads[100];

void* playandcount(void *arg)
{
    unsigned long i=0;
    pthread_t id=pthread_self();
    int iter;
    if(pthread_equal(id,tid[1]))
    {
        system("clear");
        printf("--Help\n");           
        printf("--List\n");
        printf("--Play\n");
        printf("--Pause\n");
        printf("--Continue\n");
        printf("--Stop\n");
        printf("--Exit\n");
    }
    else if(pthread_equal(id,tid[2]))
    {
        system("clear");
            chdir ("/home/aceh/Downloads/musik");
        system("ls | grep .mp3");
    }   
    else if(pthread_equal(id,tid[3]))
    {
            system("pkill mpg123");
            system("clear");
            snprintf(ads, sizeof(ads), "mpg123 /home/aceh/Downloads/musik%s",lagu);
            system(ads);
    }
    else if(pthread_equal(id, tid[4]))
    {
        system("clear");       
        sleep(t);
        system("pkill -STOP mpg123");
    }
    else if(pthread_equal(id, tid[5]))
    {
        system("clear");
        sleep(t);
        system("pkill -CONT mpg123");
    }
    else if(pthread_equal(id,tid[6]))
    {
        system("clear");
        sleep(t);
        system("pkill mpg123");
    }
    return NULL;
}

int main(void)
{
    int flag=4;
    system("clear");
    while(flag!=0)
    {
        printf("--- Program Pemutar Lagu ---\n");
        char comm[10];           
        int err=0;
        scanf("%s",comm);
        if (err!=0) printf("\ncan't create thread : [%s]", strerror(err));
        else if (strcmp(comm,"help")==0 || strcmp(comm,"Help")==0) err=pthread_create(&(tid[1]), NULL, &playandcount, NULL);
        else if (strcmp(comm,"list")==0 || strcmp(comm,"List")==0) err=pthread_create(&(tid[2]), NULL, &playandcount, NULL);
        else if (strcmp(comm,"play")==0 || strcmp(comm,"Play")==0)
        {
            scanf("%s",lagu);
            err=pthread_create(&(tid[3]), NULL, &playandcount, NULL);
        }
        else if (strcmp(comm,"pause")==0 || strcmp(comm,"Pause")==0)
        {
            scanf("%d",&t);
            err=pthread_create(&(tid[4]), NULL, &playandcount, NULL);
        }
        else if (strcmp(comm,"continue")==0 || strcmp(comm,"Continue")==0)
        {
            scanf("%d",&t);
            err=pthread_create(&(tid[5]), NULL, &playandcount, NULL);
        }
        else if (strcmp(comm,"stop")==0 || strcmp(comm,"Stop")==0)
        {
            scanf("%d",&t);
            err=pthread_create(&(tid[6]), NULL, &playandcount, NULL);
        }
        else if (strcmp(comm,"exit")==0 || strcmp(comm,"Exit")==0) flag=0;
        else printf("Wrong Input\n");
    }   
    return 0;
}

dari codingan itu maka sebelum menjalankan program kita harus gcc terlebih dahulu dengan cara gcc -pthread -o nama_objek nama_program.c


setelah di gcc barulah kita eksekusi programnya dengan cara seperti biasa ./namaprogram

setelah di eksekusi akan keluar tampilan seperti yang diharapkan codingannya

nah, kan bingung mau ngapain? jadi disini saya sengaja buat kaya gini biar yang mainin mp3 saya ini cerdas sedikit, kalau buntu gini dia bisa meminta bantuan, nah bantuannya itu tinggal ketik "Help" saja nanti akan keluar menunya hehe

kan sudah keluar listnya, kitakan maunya memutar lagu tujuannya, oleh karena itu kita lihat dulu lagu apa aja yang ada di list tersebut, ketik "List" aja deh terus ihihihi

sudah keluar listnya kan, untuk menjalankannya kita tinggal ketik "Play(spasi)Nama_lagu.mp3" ingan untuk nama lagunya harus identik dengan yang ada di listnya tadi, seperti ini :


ya seperti itulah jalan programnya, nanti kalau mau ngelakuin apa lagi sesuaikan aja dengan menu yang ada kemudian ingat! untuk pause, lanjut, dan stop kalian harus memberi alokasi wktu berpa detik, maksudnya itu agar programnya itu ngepause, ngestop atau ngelanjutin lagunya lagi setelah beberapa detik sehabis detiknya berjalan.

hore selesaikan teman-teman, segitu aja ni yang bisa saya bagikan kepada teman-teman semua semoga kalian tetap solid dan tetap menjadi fans teraik di hidupku, love you my fans :D pantengin terus blog saya teman-teman, dua minggu atau tiga minggu kedepan bakal ada updaten lagi nih dari saya, sabar menunggu ya my fans hehe :D

1 komentar: