Sabtu, 07 November 2015

Tutorial Thread

Apa itu Thread?
Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik.

Sebagai contoh kita akan membuat program pemutar musik yang menggunakan thread.

Langkah-langkah membuat Music Player berbasis Thread :
1) Buka terminal pada Linux



2) Buat file MusicPlayer.c dengan command gedit MusicPlayer.c




Lalu akan muncul


3) Masukkan kode
#include <stdio.h>
#include <string.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

pthread_t tid[7];
int n;
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/hamka/Music");
system("ls | grep .mp3");
}
else if(pthread_equal(id,tid[3]))
       {
        system("pkill mpg123");
        system("clear");
        snprintf(ads, sizeof(ads), "mpg123 /home/hamka/Music/%s",lagu);
        system(ads);
}
else if(pthread_equal(id, tid[4]))
       {
system("clear");
sleep(n);
system("pkill -STOP mpg123");
}
else if(pthread_equal(id, tid[5]))
       {
system("clear");
sleep(n);
system("pkill -CONT mpg123");
}
else if(pthread_equal(id,tid[6]))
       {
system("clear");
sleep(n);
system("pkill mpg123");
}
return NULL;
}

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

Pada menu terdapat command-command berikut :
- Help = Menampilkan command-command yang bisa dilakukan User
- List = Menampilkan list lagu yang terdapat di folder
- Play = Memutar lagu yang diinputkan user
- Pause = Menghentikan lagu setelah "t" detik
- Continue = Melanjutkan lagu yang telah dipause setelah "t" detik
- Stop = Menghentikan lagu setelah "t" detik dan tidak bisa dilanjutkan lagi
- Exit = Keluar dari program

Ket:
- List = Untuk mengganti folder tujuan ganti command "chdir ("/home/hamka/Music");"
- Play = Untuk memutar lagu dengan command play "Judul lagu" (judul lagu harus persis dengan nama filenya
- Pause = Untuk menghentikan lagu dengan command pause "t" (dalam t detik lagu akan berhenti). Hal ini bisa terjadi dengan command : system("pkill -STOP mpg123");
- Continue = Untuk melanjutkan lagu dengan command continue "t" (dalam t detik lagu akan berlanjut). Hal ini bisa terjadi dengan command : system("pkill -CONT mpg123");
- Stop = Untuk menghentikan lagu dan tidak bisa dilanjutkan lagi dengan command stop "t" (dalam t detik lagu akan berhenti). Hal ini bisa terjadi dengan command : system("pkill mpg123");

4) Install mpg123 dengan command apt-get install mpg123


5) Compile program dengan command gcc -pthread MusicPlayer.c -o MusicPlayer


Lalu run dengan command ./MusicPlayer


6) Music Player telah berjalan


Ketik help untuk menampilkan menu



Ketik list untuk menampilkan lagu



Ketik play "Judullagu.mp3" untuk menampilkan menu


Lalu lagu akan berjalan


Ketik pause "t" detik untuk menghentikan lagu


Ketik continue "t" detik untuk melanjutkan lagu


Ketik stop "t" detik untuk menghentikan lagu


Lagu akan berhenti. Ketik exit untuk keluar program



----  SELAMAT MENCOBA  ----











1 komentar: