BelajarPython - Assalamualaikum wr. wb.
Jumpa lagi temen - temen... Kali ini, Saya akan mengajak kalian untuk membuat musik player nih.. Dengan tampilan yang cukup apik dan keren.. Penasaran ? Langsung saja yuk kita simak sama - sama...
Namun, Aplikasi ini saya posting dengan berbagai versi (untuk memudahkan proses belajar).. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat versi - versi aplikasi ini, KALIAN BISA KLIK DISINI ya..
Pada postingan kali ini saya akan memberikan code pemutar musik versi 2. Dengan fitur untuk memilih file musik yang akan di putar langsung dari aplikasi nya.. Dimana pada versi sebelumnya kita harus menentukan file musik melalui code program...
Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu loh.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...
Nah lalu, seperti apakah tampilan yang akan di hasilkan dari code program di atas? Langsung saja yuk kita simak sama - sama tampilannya di bawah ini...
Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf ya apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya temen - temen... Biar kita bisa belajar bersama - sama..
Oke terimakasih dan sampai di sini dulu ya temen - temen... Jangan lupa untuk membaca versi - versi yang lainnya... Biar ilmunya juga nambah.. Hehe.. Temikasih sekali lagi dan sekian...
Wassalamualaikum wr. wb.
Jumpa lagi temen - temen... Kali ini, Saya akan mengajak kalian untuk membuat musik player nih.. Dengan tampilan yang cukup apik dan keren.. Penasaran ? Langsung saja yuk kita simak sama - sama...
Pengenalan aplikasi yang akan kita buat.
Sebenarnya, saya sudah membuat aplikasi serupa menggunakan library Pygame dan Tkinter.. jadi, tampilannya terlihat jadul (KLIK DISINI untuk cari tau).. Tapi kali ini, tampilannya cukup keren untuk digunakan sebagai pemutar musik harian loh...Namun, Aplikasi ini saya posting dengan berbagai versi (untuk memudahkan proses belajar).. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat versi - versi aplikasi ini, KALIAN BISA KLIK DISINI ya..
Pada postingan kali ini saya akan memberikan code pemutar musik versi 2. Dengan fitur untuk memilih file musik yang akan di putar langsung dari aplikasi nya.. Dimana pada versi sebelumnya kita harus menentukan file musik melalui code program...
Rincian Lengkap Aplikasi Pemutar Musik PySide Versi 2.0
Aplikasi kali ini menggunakan library PySide. Jadi, untuk menjalankannya, harus menginstallnya dulu... KLIK DISINI untuk install pyside.... Dan berikut rincian lengkap aplikasinya...Nama | : mn-mp3SidePlayer 2.0 |
Versi | : 2.0 | klik disini untuk membaca versi selanjutnya. |
Platform | : Python 3.x |
Modul | : PySide. Klik disini untuk menginstallnya. |
Baris Code | : kurang lebih 109 baris code program. |
Terdiri dari | : 1 class dan 14 metode. |
Fitur | : Membuka musik yang akan di putar melalui aplikasi. |
Kelemahan | : Hanya bisa memutar 1 buah musik (tidak ada antrian) |
syarat menjalankan | : install python 3.x dan PySIde, punya editor teks atau IDE. |
Cara menjalankan | : install python 3 dan PySide, copy dan paste code program pada editor atau IDE, simpan dalam file python(ekstensi .py), lalu jalankan. |
Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu loh.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...
Code program aplikasi Pemutar Musik PySide versi 2.0
Nah lalu seperti apa code program dari aplikasi Pemutar Musik PySide ini ? Oke, Berikut saya berikan code program nya ya...from PySide import QtGui, QtCore from PySide.phonon import Phonon import sys class PemutarMusik(QtGui.QMainWindow) : def __init__(self): QtGui.QMainWindow.__init__(self) self.penampungFile = [] self.indeks = 0 self.indeksTadi=-1 self.volumeYgLalu = 0.5 self.inisialisasiMedia() self.buatTombol() self.buatTeks() self.layout() self.susunTombol() self.rangkai() self.connect(self.pemutar, QtCore.SIGNAL('stateChanged(Phonon::State, Phonon::State)'), self.statusBerubah) self.connect(self.pemutar, QtCore.SIGNAL('finished()'), self.putarMusik) def inisialisasiMedia(self): self.suara = Phonon.AudioOutput(Phonon.MusicCategory, self) self.pemutar = Phonon.MediaObject(self) Phonon.createPath(self.pemutar, self.suara) def buatTombol(self): self.tombolBukaFile = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_FileIcon), "Cari file mp3", self, triggered=self.dataDariFile) self.tombolWeb = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ComputerIcon), "Pergi Ke Web", self, triggered=self.perintahWeb) def perintahWeb(self): QtGui.QDesktopServices.openUrl(QtCore.QUrl('Http://mn-belajarpython.blogspot.co.id')) def closeEvent(self, event): self.destroy() def buatTeks(self): self.indikator = QtGui.QLabel(''' mn-belajarpython.blogspot.co.id ''') def layout(self): widgetTengah = QtGui.QWidget() self.layoutUtama = QtGui.QVBoxLayout(widgetTengah) self.layoutTombol = QtGui.QToolBar() self.layoutTombol.setMovable(False) self.layoutUtama.setSpacing(0) self.setCentralWidget(widgetTengah) def susunTombol(self): self.layoutTombol.addAction(self.tombolBukaFile) self.layoutTombol.addAction(self.tombolWeb) self.layoutTombol.addSeparator() self.layoutTombol.addWidget(QtGui.QLabel(' ')) self.layoutTombol.addWidget(self.indikator) def rangkai(self): self.addToolBar( QtCore.Qt.BottomToolBarArea ,self.layoutTombol) def dataDariFile(self): dialog = QtGui.QFileDialog(self) # memanggil objekFileDialog dialog.setFileMode(QtGui.QFileDialog.ExistingFiles) # memanggil objek dengan semua tipe file dialog.setFilters(["*.mp3", "*.*"]) if dialog.exec_() == QtGui.QDialog.Accepted: path = dialog.selectedFiles() for i in path : lokasi=QtCore.QFileInfo(i).absolutePath() tipe=QtCore.QFileInfo(i).suffix() if tipe.lower() == 'mp3' : self.masukanFile([i,lokasi]) self.putarMusik() def masukanFile(self, data): if data not in self.penampungFile : self.penampungFile.append(data) def dapatkanData(self): if len(self.penampungFile) : if self.indeks < len(self.penampungFile) : self.indeks += 1 return self.penampungFile[self.indeks-1][0] else : self.indeks = 0 return self.penampungFile[self.indeks][0] else: return None def putarMusik(self): data = self.dapatkanData() if data : self.pemutar.setCurrentSource(data) self.pemutar.play() def statusBerubah(self, statusBaru, oldState): if statusBaru == Phonon.ErrorState: if self.mediaObject.errorType() == Phonon.FatalError: QtGui.QMessageBox.warning(self, self.tr("Fatal Error"), self.mediaObject.errorString()) else: QtGui.QMessageBox.warning(self, self.tr("Error"), self.mediaObject.errorString()) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) window = PemutarMusik() window.setWindowTitle("Musik Player -> mn-belajarpython.blogspot.co.id") window.show() sys.exit(app.exec_())
Nah lalu, seperti apakah tampilan yang akan di hasilkan dari code program di atas? Langsung saja yuk kita simak sama - sama tampilannya di bawah ini...
Penjelasan code program Aplikasi Pemutar musik PySide versi 2.0
Sekarang saya akan mencoba untuk menjelaskan code program yang sudah saya bagikan di atas tadi.. Agar kalian lebih mudah untuk memahaminya.. Oke, Langsung saja yuk kita simak sama penjelasannya di bawah ini....[NOTE : Teks berwarna MERAH pada penjelasan adalah Code tambahan yang tidak ada di versi sebelumnya. Dan yang Berwarna BIRU akan di hapus di versi berikutnya. Jika Code berwarna MERAH dan komentar berwarna BIRU maka merupakan code baru dan akan di hapus di versi berikutnya]
from PySide import QtGui, QtCore //mengimport class ‘QtGui’ dan ‘QtCore’ dari PySide
from PySide.phonon import Phonon //mengimport class ‘PySide’ dari PySide
import sys //mengimport sys dari python
class PemutarMusik(QtGui.QMainWindow) : //membuat class ‘PemutarMusik’ dengan meng inheritence class ‘QMainWindow’
def __init__(self): //construktor class ‘PemutarMusik’
QtGui.QMainWindow.__init__(self) //memanggil construktor class ‘QMainnWindow’ dengan memasukkan “self (class ‘PemutarMusik’)” sebagai parameter
self.penampungFile = [] //digunakan untuk menampung lokasi musik
self.indeks = 0 //digunakan untuk menentukan urutan musik yang diputar
self.indeksTadi=-1 //dihunakan untuk menyimpan posisi musik yang di putar sebelumnya
self.volumeYgLalu = 0.5 //digunakan untukmenyimpan volume sebelumnya
self.inisialisasiMedia() //memanggil metode ‘inisialisasiMedia’
self.buatTombol() //memanggil metode ‘buatTombol’
self.buatTeks() //memanggil metode ‘buatTeks’
self.layout() //memanggil metode ‘layout’
self.susunTombol() //memanggil metode ‘susunTombol’
self.rangkai() //memanggil metode ‘rangkai’
self.connect(self.pemutar, QtCore.SIGNAL('stateChanged(Phonon::State, Phonon::State)'), self.statusBerubah) //digunakan untuk menjalankan metode ‘statusBerubah’ ketika memutar musik. Dan akan selalu di jalankan selama memutar musik
self.connect(self.pemutar, QtCore.SIGNAL('finished()'), self.putarMusik) //untuk menjalankan metode ‘putarMusik’ ketika memutar sebuah musik telah selesai
def inisialisasiMedia(self): //membuat metode ‘insialisasiMedia’
self.suara = Phonon.AudioOutput(Phonon.MusicCategory, self) //mendefinisikan suara pemutar musik
self.pemutar = Phonon.MediaObject(self) //membuat pemutar lagu
Phonon.createPath(self.pemutar, self.suara) //menghubungkan pemutar dengan audio
def buatTombol(self): //membuat metode ‘buatTombol’
self.tombolBukaFile = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_FileIcon), "Cari file mp3", self, triggered=self.dataDariFile) //digunakan untuk membuat perintah ‘cari file mp3’ yang akan menjalankan metode ‘dataDariFile’ ketika di klik.
self.tombolWeb = QtGui.QAction(self.style().standardIcon(QtGui.QStyle.SP_ComputerIcon), "Pergi Ke Web", self, triggered=self.perintahWeb) //membuat action ‘Pergi Ke Web’ denga menjalankan metode ‘perintahWeb’ ketika di klik
def perintahWeb(self): //metode ‘perintahWeb’
QtGui.QDesktopServices.openUrl(QtCore.QUrl('Http://mn-belajarpython.blogspot.co.id')) //membuka browser dan pergi ke blog ini :)
def closeEvent(self, event): //metode yg otomatis di jalankan ketika window di close. ‘built in PySide’
self.destroy() //menghentikan aplikasi
def buatTeks(self): //metode buatTeks
self.indikator = QtGui.QLabel('''<b> mn-belajarpython.blogspot.co.id </b>''') //membuat Teks dan disimpan ke ‘indikator’
def layout(self): //metode layout
widgetTengah = QtGui.QWidget() //membuat widget
self.layoutUtama = QtGui.QVBoxLayout(widgetTengah) //membuat layout utama
self.layoutTombol = QtGui.QToolBar() //membuat tempat tombol
self.layoutTombol.setMovable(False) //membuat ‘layoutTombol’ agar tidak bisa di pindah
self.layoutUtama.setSpacing(0) //membuat komponen lebih rapat
self.setCentralWidget(widgetTengah) //memasukkan widget (layoutUtama) ke window
def susunTombol(self): //metode ‘susunTombol’
self.layoutTombol.addAction(self.tombolBukaFile) //memasukkan ‘action’/perintah ‘Cari file mp3’ ke tempat tombol (layoutTombol)
self.layoutTombol.addAction(self.tombolWeb) //memasukkan ‘action’/perintah ‘pergi ke web’ ke tempat tombol (layoutTombol)
self.layoutTombol.addSeparator() //memberi garis batas
self.layoutTombol.addWidget(QtGui.QLabel(" ")) //memasukkan spasi ke tempat tombol agar ada jarak
self.layoutTombol.addWidget(self.indikator) //memasukkan teks yang ada di ‘indikator’
def rangkai(self): //metode ‘rangkai’
self.addToolBar( QtCore.Qt.BottomToolBarArea ,self.layoutTombol) //memasukkan tempat tombol (layoutTombol) ke dalam window
def dataDariFile(self): //metode ‘dataDariFile’ untuk membuka file musik
dialog = QtGui.QFileDialog(self) //membuat file dialog
dialog.setFileMode(QtGui.QFileDialog.ExistingFiles) //untuk membuat bisa memilih file musik lebih dari 1
dialog.setFilters(["*.mp3", "*.*"]) //menentukan ekstensi yang dapat di tampilkan di file dialog
if dialog.exec_() == QtGui.QDialog.Accepted: //menampilkan file dialog dan mengecek apakah user meng klik ‘ok’ dan bukan ‘cancel’
path = dialog.selectedFiles() //menampung lokasi file yang di pilih
for i in path : //mengambil satu persatu item (lokasi file musik)
lokasi=QtCore.QFileInfo(i).absolutePath() //dignakan untuk menampung lokasi
tipe=QtCore.QFileInfo(i).suffix() //untuk mengambil ekstensi file
if tipe.lower() == 'mp3' : //mengecek apakah ekstensi nya mp3
self.masukanFile([i,lokasi]) //memasukkan lokasi file musik jika ber ekstensi ‘mp3’
self.putarMusik() //menjalankan metode ‘putarMusik’
def masukanFile(self, data): //metode ‘masukanFile’ dengan parameter ‘data’
if data not in self.penampungFile : //memastikan file musik yang akan di masukkan tidak ada di penampung file (file musik yang telah di tampung)
self.penampungFile.append(data) //memasukkan file musik. Jika kondisi di atasnya terpenuhi
def dapatkanData(self): //metode ‘dapatkanFile’
if len(self.penampungFile) : //memastikan penampung file tidak kosong
if self.indeks < len(self.penampungFile) : //mengecek nilai ‘indeks’ lebih kecil dari jumlah item di ‘penampungFile’
self.indeks += 1 //menambah nilai ‘indek’ sebanya 1
return self.penampungFile[self.indeks-1][0] //mengembalikan lokasi file sesuai urutannya (penentu urutan = indeks)
else : //jika ‘indeks’ sama besarnya atau lebih besar dari jumlah item di ‘penampungFile’
self.indeks = 0 //mengembalikan indeks menjadi ‘0’
return self.penampungFile[self.indeks][0] //mengembalikan lokasi file musik pertama atau urutan 1
else: //jika ‘penampungFIle’ kosong
return None //mengembalikan None jika ‘PenampungFile’ Kosng
def putarMusik(self): //metode putarMusik
data = self.dapatkanData() //memanggil metode ‘dapatkanData’ untuk menapatkan lokasi musik yang ingin di putar
if data : //memastikan lokasi file tidak kosong
self.pemutar.setCurrentSource(data) //memuat lokasi musik ke pemutar
self.pemutar.play() //memutar musik
def statusBerubah(self, statusBaru, oldState): //metode ‘statusBerubah’
if statusBaru == Phonon.ErrorState: //mengecek apakah ada error
if self.mediaObject.errorType() == Phonon.FatalError: //mengecek apakah ada error dengan jenis fatal error
QtGui.QMessageBox.warning(self, self.tr("Fatal Error"), self.mediaObject.errorString()) //menampilkan pesan fatal error
else: //jika bukan fatal error
QtGui.QMessageBox.warning(self, self.tr("Error"), self.mediaObject.errorString()) //menampilkan pesan error saja
if __name__ == '__main__': //kondisi yang membuat code di bawahnya di jalankan paling awal
app = QtGui.QApplication(sys.argv) //inisialisasi window PySide
window = PemutarMusik() //memanggil class ‘PemutarMusik’
window.setWindowTitle("Musik Player -> mn-belajarpython.blogspot.co.id") //mengubah judul
window.show() //menampilkan window aplikasi
sys.exit(app.exec_()) //agar window tidak langsung clos saat dijalankan
Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf ya apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya temen - temen... Biar kita bisa belajar bersama - sama..
Oke terimakasih dan sampai di sini dulu ya temen - temen... Jangan lupa untuk membaca versi - versi yang lainnya... Biar ilmunya juga nambah.. Hehe.. Temikasih sekali lagi dan sekian...
Wassalamualaikum wr. wb.
ConversionConversion EmoticonEmoticon