Saturday, November 7, 2015

Sesi Pintar Bersama Anjing Garing eps 3 (Cara Bikin Music Player Yang Biasa Saja) #BuatLinux

Yahallo ketemu lagi ama gw..
Gimana? Baik kan kabar kalian?
Kali ini gw mau bagi bagi ilmu "Lagi", yang menurut gw agak kurang keren dibanding tips tips sebelumnya. Jadi kalo kalian mau close tab ini silahkan.



Wow.. hebat sekali kalian ga menyerah dengan segala hal yang akan berujung kepada kebosanan ini..

Nih aku kasi bonus buat kalian yang ga close ni tab



Mampos! Nangis! Baper kan kalian?

Sama gw juga :v

Ok kembali ke topik. Disini gw bakal ajarin kalian bikin music player via terminal. Gimana? keren ga?


Memang sih ni tips ga bisa buat jailin temen kalian kaya tips sebelumnya, tapi kalian bisa keliatan keren dengan mainin musik lewat musik player bikinan kalian sendiri. Ok.

Jadi ni musik player bakal make konsep thread. Tau thread ga?? Sip Thread itu Bahasa Inggris dari benang.


Oke gambar di atas itu termasuk Thread, BenangTikung Benang Cinta.

Eits jangan ketawa dolo. Cara kerja thread ini mirip mirip Tikungan Benang Cinta diatas. Anggep aja itu cowok yang lagi jalan sama cewek itu bagaikan main function. Mereka akan berjalan bersamaan setiap saat dan setiap waktu (kecuali mereka putus T.T) PutusinAjaTukangTikung. Dan si cewe yang kena tikung, yang jalan sendirian itu ibarat thread tersebut. Sebuah thread akan berjalan tidak beriringan dengan fungsi utama, namun akan berjalan ketika fungsi utama memberikan sebuah sinyal atau panggilan. Ya gitu deh, jadi si thread hanya bisa jadi tempat pelarian kalo butuh doang. Kasian ya.. :v

Udah paham kan apa itu thread? Oke jadi langsung saja kita implementasikan ke dalam kodingan.

Langkah Pertama seperti biasa jangan lupa buka terminal kalian. Kalau kalian belum tau terminal buka dulu ini: Pengenalan Linux

Oke, setelah buka terminal silahkan kalian bikin folder playlist, yang isinya nanti lagu lagu yang pingin kalian mainkan. Bikinya terserah mau dimana dan mau gimana. Kalian bisa bikin lewat terminal, bisa juga manual.

Setelah itu kalian bikin script di dalem folder playlist kalian, Oh iya jangan lupa musiknya dicopy dulu masukin ke folder playlist.

Jadi ini script untuk bikin music playernya. Tinggal copy paste aja. Jangan lupa nama script kalian harus ber ekstensi .c (apanamanya.c)


//Ini library buat jalaninnya
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>

pthread_t tid[7];

int length=1000;
char lagu[100];
int waktu;


//Ini Threadnya
void* playandcount(void *arg)
{
    unsigned long i = 0;
    pthread_t id = pthread_self();
    char play[1000]= "mpg123 ";
   

    if(pthread_equal(id,tid[1]))
    {
        printf("Masukkan 2 untuk menampilkan playlist\n");
        printf("Masukkan 3 untuk memainkan lagu\n");
        printf("Masukkan 4 untuk melakukan pause\n");
        printf("Masukkan 5 untuk continue\n");
        printf("Masukkan 6 untuk stop\n");
        fflush(stdout);
    }
   
    else if(pthread_equal(id,tid[2]))
    {
        system("ls | grep .mp3");
    }
   
    else if(pthread_equal(id,tid[3]))
    {
        system("pkill mpg123");
       
        system("clear");

        strcat(play, lagu);
        system(play);

        printf("Masukkan 1 untuk help\n");
    }
   
    else if(pthread_equal(id,tid[4]))
    {
        for(waktu;waktu>0;waktu--)
        {
            system("clear");
            printf("%d", waktu);
            fflush(stdout);
            sleep(1);
        }
        system("pkill -STOP mpg123");
        system("clear");
        printf("Masukkan 1 untuk help\n");
    }

    else if(pthread_equal(id,tid[5]))
    {
        for(waktu;waktu>0;waktu--)
        {
            system("clear");
            printf("%d", waktu);
            fflush(stdout);
            sleep(1);
        }
        system("pkill -CONT mpg123");
        system("clear");
        printf("Masukkan 1 untuk help\n");
    }

    else if(pthread_equal(id,tid[6]))
    {
        for(waktu;waktu>0;waktu--)
        {
            system("clear");
            printf("%d", waktu);
            fflush(stdout);
            sleep(1);
        }
        system("pkill mpg123");
        system("clear");
        printf("Masukkan 1 untuk help\n");
    }
    return NULL;
}

//Ini Fungsi Utamanya
int main(void)
{
    int i=0;
    int err;
    chdir ("/home/saber/Desktop/praktikum/praktikum3/Nomer1");   
    int perintah;
   
    system("clear");
   
    while(1)
    {
        printf("Masukkan 1 untuk help\n");
        scanf("%d", &perintah);

        if (err!=0) printf("\ncan't create thread : [%s]", strerror(err));

        else if (perintah == 1)
        {
            system("clear");
            err=pthread_create(&(tid[1]), NULL, &playandcount, NULL);
        }

        else if (perintah == 2)
        {
            system("clear");
            err=pthread_create(&(tid[2]), NULL, &playandcount, NULL);
        }       

        else if (perintah == 3)
        {
            system("clear");
            printf("masukkan nama lagu : ");
            scanf("%s",lagu);
            err=pthread_create(&(tid[3]), NULL, &playandcount, NULL);
            system("clear");
            //printf("Masukkan 1 untuk help\n");
        }

        else if (perintah == 4)
        {
            system("clear");
            printf("masukkan waktu : ");
            scanf("%d",&waktu);
                err=pthread_create(&(tid[4]), NULL, &playandcount, NULL);
        }

        else if (perintah == 5)
        {
            system("clear");
            printf("masukkan waktu : ");
                scanf("%d",&waktu);
                err=pthread_create(&(tid[5]), NULL, &playandcount, NULL);
        }

        else if (perintah == 6)
        {
            system("clear");
            printf("masukkan waktu : ");
                scanf("%d",&waktu);
                err=pthread_create(&(tid[6]), NULL, &playandcount, NULL);
        }

        else printf("Wrong Input\n");
    }
   
   
    return 0;
}

Oke. Jadi itu kan udah ada keterangannya.
Di script itu kita punya 6 thread. Yang punya fungsi beda beda. Setiap thread punya nama sendiri sendiri. Anggap aja tid[1] - tid[6] itu nama mereka.

Thread 1
Gunanya untuk nampilin menu / help

Thread 2
Gunanya buat liat di dalem playlist kalian ada lagu apa aja. Oh iya format lagunya harus .mp3 lo ya.

Thread 3
Berguna buat ngeplay musik kalian. Waktu kalian pilih 3, thread kalian akan minta inputan berupa nama lagu. Nah itu kalian masukinya harus lengkap beserta huruf besar kecil titik koma seru dkk, jangan lupa juga sertain .mp3nya

Thread 4
Berfungsi untuk nge-pause, itu minta input lagu akan di pause setelah berapa detik.

Thread 5
Berfungsi untuk nge-resume lagu kalian, sama kayak thread 4 yang minta berapa lama kalian akan nge-resume.

Thread 6
Berfungsi untuk matiin lagu kalian. Ini juga minta inputan waktu.

Udah paham kan fungsi threadnya?

Sekarang kita ke fungsi utama.

Nah pertama kali kalian kan ada liat itu command "chdir ("/home/saber/Desktop/praktikum/praktikum3/Nomer1");" nah itu harus kalian ganti ke folder playlist kalian.

Terus kalian liat kan ada command scanf, printf, system. Nah itu yang ibaratin kayak cewe yang jalan sama cowonya. Dia akan berjalan beriringan fungsi utamanya (cowonya).

Nah setiap kalian menginputkan angka yang dimau. Cewe cewe tadi bakal bikinin / manggil thread yang sesuai. Pake fungsi "pthread_create(&(tid[x]), NULL, &playandcount, NULL)" itu. Nah itu tid[x] isinya kalian mau panggil thread ke berapa, kaya semacam manggil namanya gitu.

Nah buat makenya kalian tinggal nulis (kalian harus berada di dalem folder playlist kalian) buat compile

gcc -pthread -o  "nama media player kalian" "nama script kalian"



Terus tinggal di run

./"nama media player kalian"


Nah kalo langkah kalian bener seharusnya bakal keluar ginian. Dan tinggal nikmati musik playernya


Gimana? Gampang kan? Sekarang kalian bisa pamer kalo kalian punya cewesimpanan Musik player kalian sendiri.


Kalian luar biasa.

No comments:

Post a Comment