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
















mantep ni (y)
BalasHapus