Minggu, 21 Februari 2016

Membuat dan Menghapus User dan Database dengan psql

                                      Assalaamu’alaik­um Warahmatullaahi ­ Wabarakaatuh
                                                      (السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ)

 1. Membuat user di luar prompt psql

STEP 1 >> Masuklah ke direktori psql ( terdapat di "C:\Program Files\PostgreSQL\9.2\bin" )
STEP 2 >> ketiklah fungi "createuser" berikut ini :
keterangan = createuser : digunakan untuk menciptakan user/role baru.(wajib)
                     -h localhost : menunjukan nama server yang digunakan yaitu server local(localhost).
                     -p 5432 : menunjukkanno   port yang digunakan.
                     -U nama_user : nama user yang sudah ada (postgres biasanya sebagai user default)
                                                selalu menggunakan U kapital.(wajib)
                     nama_user_baru : nama user yang akan di buat.(wajib)
screenshootnya
 Opsi - opsi yang sering dipakai :
-d, --createdb     role can create new databases
-E, --encrypted    encrypt stored password
-i, --inherit      role inherits privileges of roles it is a member of (default)
-l, --login        role can login (default)
-P, --pwprompt     assign a password to new role
-r, --createrole   role can create new roles
-s, --superuser    role will be superuser

STEP 3 >> Selanjutnya kita cek user baru yang telah buat(\du : digunakan untuk melihat semua user yang telah dibuat), namun terlebih dahulu masuk ke psql
screenshootnya

terbukti pada kolom "Role name" terdapat hanif.

 2. Membuat user dengan prompt psql

STEP 1 >> Masuklah ke direktori psql ( terdapat di "C:\Program Files\PostgreSQL\9.2\bin" ).

STEP 2 >> Masuk sebagai user "postgres".
     Keterangan : postgres merupakan user default dengan akses Superuser,, sehingga akan selalu
                           meminta password. Untuk ini defaultnya memiliki -h localhost dan -p 5432.
STEP 3 >> Ketiklah fungsi "CREATE USER"
atau bisa tambahaka kata "WITH opsi".
opsinya sbb:
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | IN GROUP groupname [, ...]
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'abstime' 
 atau bisa menggunakan "CREATE ROLE". Ingat sertakan kata "LOGIN" karena defaulnya "Not login"
STEP 4 >> Kita Cek dengan(\du) untuk melihat daftar user yang telah di buat
     terbukti user "hanif2" dan "hanif3" telah berhasil di buat.

3. Membuat Database di luar prompt psql

STEP 1 >> Masuklah ke direktori psql ( terdapat di "C:\Program Files\PostgreSQL\9.2\bin" ).

STEP 2 >> Buat database dengan "createdb", boleh sertakan opsi yang diperlukan.

 Password diatas diisi dengan password dari user yang dipakai (contoh digai  seaatas adalah -U postgres), -O merupakan owner yang dianggap sbagai pemilik database yang akan dibuat. Hasilnya adalah terbentuknya database dengan nama "DBbaru" di user coba1.
opsi lain = -w (tidak meminta password database) , -W(miminta password database)
STEP 3 >> Lakukanlah pengecekan database(DBbaru) yang telah di buat.
 terbukti bahwa terdapat database dengan nama "DBbaru" dengan owner "coba1".

4. Membuat Database dengan prompt psql 

STEP 1 >> Masuklah ke direktori psql ( terdapat di "C:\Program Files\PostgreSQL\9.2\bin" ).
STEP 2 >> Saya ingin membuat database di prompt psql dengan menggunakan "coba1"
STEP 3 >> Gunakanlah "CREATE DATABASE"
STEP 4 >> Cek database-nya(\l)
    terbukti database "dbbaru2" ada
=============================================================================
NOTE : Untuk menghapus user dan database, gunakanlah konsep yang sama dengan saat membuatnya. Sesuaikan apakah di dalam prompt psql atau di luar prompt psql :
        1) jika di luar prompt psql : gantilah kata createuser atau createdb dengan dropuser atau dropdb
        2) jika di dalam prompt psql : gantilah kata CREATE USER atau CREATE DATABASE dengan 
            DROP USER atau DROP DATABASE.
==============================================================================

(وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُه)
Wassalamu 'alaikum Warahmatullaahi ­ Wabarakaatuh

Jumat, 19 Februari 2016

Cara Menjalankan PostgreSQL

                                              Assalaamu’alaik­um Warahmatullaahi ­ Wabarakaatuh
                                                                (السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ)

Ada dua cara menjalankan PostgreSQL:
  1. psql : berbasis teks
  2. pgAdminIII : berbasis GUI

1. Menjalankan PostgreSQL berbasis teks(psql)

# Untuk Windows #

  • Buka cmd > masuk ke folder bin(path: C:\Program Files\PostgreSQL\9.2\bin) > jalankan psql(memakai  postgres sebagai user server) > masukan password untuk user postgres(postgres# mengartikan sudah berhasil masuk dengan user postgres
atau dapat menggunakan cara lain :
Gambar 1
  • Buka Explorer windows > ketik "psql" > klik ikon "SQL shell(psql)"
  
  • Tekan 'Enter' terus karena tidak ada yang perlu di ganti( baik nama server, port, nama user) > tinggal masukan password untuk user postgres(password tidak akan terlihat saat pengetikan password)

Gambar 2

# Untuk  LINUX# 

Belum nyoba Brow

2. Menjalankan PostgreSQL berbasis GUI

# Untuk  Windows#

 

  •  Buka Explorer Windows > Ketik 'pgAdminIII' > Pilih ikon 'pgAdminIII'

      
    setelah itu tampilan GUI postgreSQL akan muncul

    # Untuk  LINUX# 

    Belum nyoba Brow
    Saran : Pelaajari postgreSQL lebih lanjut

    ' Langakah awal adalah pijakan meraih berbagai opsi keuksesan'

    SEMOGA BERMANFAAT !!!ju


    (وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُه)
    Wassalamu 'alaikum Warahmatullaahi ­ Wabarakaatuh


     

Sabtu, 13 Februari 2016

Link pada blog


Assalaamu’alaik­um Warahmatullaahi ­ Wabarakaatuh
        (السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ)

Apa itu link ?

Link merupakan suatu kata atau kalimat bisa juga berupa gambar dalam suatu web yang tehubung dengan suatu halaman web,baik dalam halaman web itu sendiri atau pun halaman web yang lain.
(1) Link internal, yaitu Link yang menghubungkan antara satu halaman web dengan halaman web lainnya yang masih dalam satu situs.
 
Buat target tujuan link atau objeknya :
Keterangan :    - kata id dapat menempel pada perintah apa aja(tidak hanya div)
                       - kata id dapat diganti dengan name, begitu sebaliknya
                       - abc : nama objek atau target link internal.
Membuat link :  
Keterangan :   - kata a href adalah atribut untuk membuat link
                      - #abc adalah cara penulisan url tujuannya(yaitu abc)
                      -  anchor_link :bisa berupa teks ataupun gambar

 (2) Link eksternal, yaitu Link yang menghubungkan diantara dua halaman web yang berbeda.

untuk link yang merujuk pada target tertentu namun halaman yang berbeda :          
Keterangan :  - url_halaman.html adalah situs halaman html lainnya 
                     -#abc akan merujuk pada bagian bagian.

cara membuat anchor_link dengan gambar:

STEP 1 >> Masuk ke "Entri baru", pilih "insert image".
 

STEP 2 >>  klik "Pilih File" dan cari gambar yang akan di upload

STEP 3 >> Jika gambar sudah ketemu, langsung "open",dan klik "Add selected"


STEP 4 >> klik kanan pada gambar dan pilih "Copy LInk Location"
STEP 5 >>Setelah itu Copy Paste-kan pada g-edit agar tidak lupa(link ini yang akan dipakai nantinya
STEP 6 >> Buat script html link dengan masuk ke html di blog.

gunakan url_gambar dengan yang dicopy-kan di gedit.



(وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُه) 
Wassalamu 'alaikum Warahmatullaahi ­ Wabarakaatuh



Jumat, 12 Februari 2016

license dan Konfigurasi Sublime Text 3

Assalaamu’alaik­um Warahmatullaahi ­ Wabarakaatuh
        (السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ)

/* Apa itu Sublime Text? */

    
       Sublime Text adalah teks editor berbasis Python, sebuah teks editor yang elegan, kaya akan fitur, cross-platform, mudah dan simpel yang cukup terkenal di kalangan pengembang, penulis, dan desainer. Sublime text juga mendukung banyak bahasa pemrograman diantaranya C++, C#, CSS,PHP,HTML,Javascript, ASP, dan masih banyak lagi. Sublime text mempunyai beberapa kenggulan – keunggulan yang dapat membantu pengguna dalam membuat sebuah web development. Berikut beberapa keunggulan tersebut diantaranya :
  • Multi Platform
    Kelebihan pertama dari Sublime Text adalah software ini tersedia dalam berbagai platform sistem operasi, antara lain Windows, Linux dan MacOs.
  • Plugin
    Plugin-nya sangat beragam, sehingga bisa memudahkan programmer dalam mengembangkan software-nya.
  • Tema dan color scheme yang bervariasi
    Anda bahkan bisa membuatnya sendiri atau mendownloadnya secara terpisah.
  • Membuka File Besar
    Sublime Text mampu membuka dan mengedit sebuah file teks yang sangat besar tanpa masalah.
  • Drag & Drop
    Menyeret dan melepas file teks ke dalam editor akan membuka tab baru secara otomatis. Anda juga bisa menentukan lokasi tab pada saat menyeret file teks tersebut.
  • Membuka banyak dokumen sekaligus ke dalam tab baru
  • Editor Sublime Text yang terpisah bisa di jadikan sebagai tab
    Editor Sublime Text pada jendela terpisah bisa jadikan sebagai tab baru dengan cara di seret. Tampilan jendela dapat dibagi baik secara vertikal maupun horizontal.

/* License Sublime Text? */


       Setelah selesai install sublime text alangkah baiknya kita memasukkan license-nya. Berikut langkah -langkahnya :
STEP 1 >> Buka Sublime Text, Setelah itu pada menubar pilih Help>Enter License.
STEP 2 >> Maka akan muncul Layar Inputan License

STEP 3 >> Copy(ctrl+c) kode License berikut ini 

STEP 4 >> Pastekan(ctrl+v) ke dalam Layar Inputan License
STEP 5 >> Kemudian klik Use License, Lalu muncul jendela peringatan klik Ok


STEP 6 >> Selanjutnya kita cek apakah pemberian license berhasil, dengan cara pada menubar pilih Help > About Sublime Text(gambar berikut mengartikan license sukses).

/* Konfigurasi Sublime Text */

Cakupan Materi :

(1) User Setting
Settingan default pengguna Sublime text dapat diubah dengan setting yang khusus(untuk HTML, Markdown, CSS, dan juga yang lainnya)


Caranya gimana ???


STEP 1 >> Buka Sublime Text
STEP 2 >> Buka file personal setting(Preferences > Setting-User)

STEP 3 >> Akan muncul file "Preferences.Sublime-Settings".

STEP 4 >> Ganti isinya dengan kode berikut(Silahkan Copypaste(ctrl+V))
         
STEP 5 >> Setelah di Copy Paste pada file "Preferences.Sublime-Setting", akan menghasilkan



(2) HTML Preferences

STEP 1 >> Buat file kosong dengan menekan Command + N (Mac) atau Ctrl + N (Windows atau Linux) di dalam Sublime Text.
STEP 2 >>  Pilih "Plain Text" di bagian kanan bawah jendela sublime text.Selanjutnya akan muncul berbagai daftar bahasa pemrograman, Pilih HTML.

 STEP 3 >> Buka pengaturan preferensi untuk coding HTML
  • Mac OS X: Sublime Text 2 > Preferences > Settings - More > Syntax Specific - User
  • Windows: Preferences > Settings - More > Syntax Specific - User
  • Linux: Preferences > Settings - More > Syntax Specific - Use
STEP 4 >> Selanjutnya akan muncul file "HTML.sublime-settings", Copy Paste(ctrl+v) kode berikut ke dalam file "HTML.sublime-settings"



STEP 5 >> Kemudian simpan(ctrl+S).

(3) CSS Preferences

STEP 1 >> Buat file kosong dengan menekan Command + N (Mac) atau Ctrl + N (Windows atau Linux) di dalam Sublime Text.
STEP 2 >>  Pilih "Plain Text" di bagian kanan bawah jendela sublime text.Selanjutnya akan muncul berbagai daftar bahasa pemrograman, Pilih CSS.

 STEP 3 >> Buka pengaturan preferensi untuk coding CSS
  • Mac OS X: Sublime Text 2 > Preferences > Settings - More > Syntax Specific - User
  • Windows: Preferences > Settings - More > Syntax Specific - User
  • Linux: Preferences > Settings - More > Syntax Specific - User


STEP 4 >> Selanjutnya akan muncul file "CSS.sublime-settings", Copy Paste(ctrl+v) kode berikut ke dalam file "CSS.sublime-settings"

STEP 5 >> Kemudian simpan(ctrl+S).
(4) Markdown
Ada dua jenis Markdown yaitu markdown dan multimarkdown yang support dengan sublime text.

a) Markdown
STEP 1 >> Buat file kosong dengan menekan Command + N (Mac) atau Ctrl + N (Windows atau Linux) di dalam Sublime Text.
STEP 2 >>  Pilih "Plain Text" di bagian kanan bawah jendela sublime text.Selanjutnya akan muncul berbagai daftar bahasa pemrograman, Pilih Markdown > Markdown.
STEP 3 >> Buka pengaturan preferensi untuk coding Markdown
  • Mac OS X: Sublime Text 2 > Preferences > Settings - More > Syntax Specific - User
  • Windows: Preferences > Settings - More > Syntax Specific - User
  • Linux: Preferences > Settings - More > Syntax Specific - User  
STEP 4 >> Selanjutnya akan muncul file "Markdown.sublime-settings", Copy Paste(ctrl+v) kode berikut ke dalam file "Markdown.sublime-settings"
STEP 5 >> Kemudian simpan(ctrl+S).

b) MultiMarkdown
STEP 1 >> Buat file kosong dengan menekan Command + N (Mac) atau Ctrl + N (Windows atau Linux) di dalam Sublime Text.
STEP 2 >>  Pilih "Plain Text" di bagian kanan bawah jendela sublime text.Selanjutnya akan muncul berbagai daftar bahasa pemrograman, Pilih Markdown > MultiMarkdown.
STEP 3 >> Buka pengaturan preferensi untuk coding MultiMarkdown
  • Mac OS X: Sublime Text 2 > Preferences > Settings - More > Syntax Specific - User
  • Windows: Preferences > Settings - More > Syntax Specific - User
  • Linux: Preferences > Settings - More > Syntax Specific - User 



STEP 4 >> Selanjutnya akan muncul file "MultiMarkdown.sublime-settings", Copy Paste(ctrl+v) kode berikut ke dalam file "MultiMarkdown.sublime-settings"
STEP 5 >> Kemudian simpan(ctrl+S).

Semoga bermanfaat artikel ini.

" Kejenuhan saat proses merupakan kenangan termanis di saat meraih hasil yang diharapkan "


(وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُه) 

Wassalamu 'alaikum Warahmatullaahi ­ Wabarakaatuh




Senin, 31 Agustus 2015

Contoh Program Tkinter python





Assalaamu’alaik­um Warahmatullaahi ­ Wabarakaatuh

        (السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ)
Hai sobat blogger, di sini saya akan membagikan secercah program phyton yang cukup menarik dan atractive hehehe...Tkinter? ya benar Tkinter, Apaan itu?....,,Tkinter adalah salah satu program GUI yang dimiliki oleh phython. Program ini juga di bumbui dengan cara import data dari berkas, pencarian data, pengurutan data dsb. Program ini terdiri dari 2 file:
    •  koperasi.CSV
  • Simpul.py

 OKe langsung saja, berikut adalah ilustrasi saat program di jalankan :
>> Berikut adalah Screen shoot dari tampilan Tkinter( Tabel Data Item Di toko Alat Tulis Kampus):
Langkah Awal


Catatan : Ini adalah tampilan awal setelah program Simpul.py di jalankan, Pada awal mula pada tombol TAMPILKAN, CARI, serta judul pada tabelnya tampak kurang jelas ini di maksudkan bahwa tombol – tombol ini belum aktif dan harus melakukan import data terlebih dahulu. Klik tombol IMPORT (lingkaran merah). untuk mengimport data csv.Setelah berhasil mengimport maka muncullah Pemberitahuan sebagai barikut :
 







                                                                                 Klik ok saja.

 Catatan : lihat tombol TAMPILKAN sudah aktif, klik TAMPILKAN

 Catatan : Muncul Pemberitahuan bahwa data berhasil di tampilkan.klik OK saja.


Langkah Pencarian data
Catatan : Setalah proses menampilakn berhasil maka tombol CARI berubah warna yang .mengartikan sudah dapat melakukan pencarian.klik CARI
 
 

 Memasukan Spidol sebagai data yang di cari. Kemudian klik cari maka hasilnya :




Langkah Pengurutan data
Untuk Pengurutan silakan klik tombol yang ingin di urutkan(NO, TANGGAL CEK, NAMA BARANG, JUMLAH BARANG, HARGA BARANG, MODAL, atau SALES)
Ini adalah screen shoot mengurutkan data Modal :
 Catatan : Klik tombol MODAL untuk mengurutkan data modal.maka data modal akan urut : 



 



>> NEXT, ini adalah kode skrip Simpul.py( menggunakan IDLE 2.7.8 atau pycham juga bisa) :
#Program by Kelompok 26,Program PEncarian Serta Pengurutan dengan Bubble Sort.
from Tkinter import Tk,Frame,Menu
from Tkinter import*
import tkMessageBox as psn
import ttk
import tkFileDialog as bk
from tkMessageBox import *
import Tkinter as tk
from winsound import *
import platform
os = platform.system()


class MouseWheel(object): # Kelas untuk mengatur scroolbar
    def __init__(self, root, factor = 2):
        global os
       
        self.activeArea = None
       
        if type(factor) == int:
            self.factor = factor
        else:
            raise Exception("Factor must be an integer.")

        if os == "Linux" :
            root.bind_all('<4>', self.onMouseWheel,  add='+')
            root.bind_all('<5>', self.onMouseWheel,  add='+')
        else:
            # Windows and MacOS
            root.bind_all("<MouseWheel>", self.onMouseWheel,  add='+')

    def onMouseWheel(self,event):
        if self.activeArea:
            self.activeArea.onMouseWheel(event)

    def mouseWheel_bind(self, widget):
        self.activeArea = widget

    def mouseWheel_unbind(self):
        self.activeArea = None

    @staticmethod
    def build_function_onMouseWheel(widget, orient, factor = 1):
        view_command = getattr(widget, orient+'view')
        if os == 'Linux':
            def onMouseWheel(event):
                if event.num == 4:
                    view_command("scroll",(-1)*factor,"units" )
                elif event.num == 5:
                    view_command("scroll",factor,"units" )
               
        elif os == 'Windows':
            def onMouseWheel(event):       
                view_command("scroll",(-1)*int((event.delta/120)*factor),"units" )
       
        elif os == 'Darwin':
            def onMouseWheel(event):       
                view_command("scroll",event.delta,"units" )            
       
        return onMouseWheel
       

    def add_scrolling(self, scrollingArea, xscrollbar=None, yscrollbar=None):
        scrollingArea.bind('<Enter>',lambda event: self.mouseWheel_bind(scrollingArea))
        scrollingArea.bind('<Leave>', lambda event: self.mouseWheel_unbind())

        if xscrollbar and not hasattr(xscrollbar, 'onMouseWheel'):
                setattr(xscrollbar, 'onMouseWheel', self.build_function_onMouseWheel(scrollingArea,'x', self.factor) )

        if yscrollbar and not hasattr(yscrollbar, 'onMouseWheel'):
                setattr(yscrollbar, 'onMouseWheel', self.build_function_onMouseWheel(scrollingArea,'y', self.factor) )

        active_scrollbar_on_mouse_wheel = yscrollbar or xscrollbar
        if active_scrollbar_on_mouse_wheel:
            setattr(scrollingArea, 'onMouseWheel', active_scrollbar_on_mouse_wheel.onMouseWheel)

        for scrollbar in (xscrollbar, yscrollbar):
            if scrollbar:
                scrollbar.bind('<Enter>', lambda event, scrollbar=scrollbar: self.mouseWheel_bind(scrollbar) )
                scrollbar.bind('<Leave>', lambda event: self.mouseWheel_unbind())


class simpul():
    '''Membuat kelas simpul'''
    def __init__(self, data=None):
        self.data = data
        self.link = None


class Tugas_GUI(Frame):
    '''Membuat kelas GUI'''
    def __init__(self,parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.initUI()
        self.list = None

        # membuat canvas pada frame utama
        self.canvas = Canvas(parent, background="brown")
        self.frame = Frame(self.canvas, background="yellow")

        # mengedit style untuk scrollbar
        s = ttk.Style()
        s.theme_use('classic')
        s.configure("coba.Vertical.TScrollbar", foreground = 'yellow',background='teal')

        # membuat scrollbar pada canvas
        self.vsb = ttk.Scrollbar(parent, style="coba.Vertical.TScrollbar", orient="vertical", command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=self.vsb.set)
        self.vsb.pack(side="right", fill="y")
        self.canvas.pack(side="left", fill="both", expand=True)
        self.canvas.create_window((0,0), window=self.frame, anchor="nw",
                                  tags="self.frame")
        self.frame.bind("<Configure>", self.OnFrameConfigure)

        # agar scrool bar dapat di scroll
        MouseWheel(root).add_scrolling(self.canvas, yscrollbar=self.vsb)

    def OnFrameConfigure(self, event):
        '''Reset the scroll region to encompass the inner frame'''
        self.canvas.configure(scrollregion=self.canvas.bbox("all"),width=400)
      

    def initUI(self):
        self.parent.title("Tabel Data Item Di Toko Alat Tulis Kampus")
        menubar = Menu(self.parent)     
        self.parent.config(menu = menubar, bg = 'yellow')

        # Membuat dan mengatur Button dan frame
        self.btnKeluar = Button(self.parent,cursor = 'pirate',text="\n\n\n\nK\n\nE\n\nL\n\nU\n\nA\n\nR\n\n\n\n",
                                relief=RIDGE, bd=5, bg='burlywood',
                                fg='red',command=self.onExit)
        self.btnKeluar.pack(side=RIGHT, fill=X)

        self.btnimpor = Button(self.parent,text="\n\n\n\nI\n\nM\n\nP\n\nO\n\nR\n\nT\n\n\n\n",
                                relief=RIDGE, bd=5, bg='burlywood',
                                fg='red',command=self.impor)
        self.btnimpor.pack(side=LEFT, fill=X)

        fr_atas = Frame(self.parent)
        fr_atas.pack(fill = BOTH)

       
        self.btnnomor = Button(fr_atas,text="NO",
                                 bd=1, bg='brown', width=14,
                                fg='green',command=self.nomor)
        self.btnnomor.pack(side=LEFT, fill=BOTH)
        self.btnnomor.configure(state=DISABLED)

        self.btntanggal = Button(fr_atas,text="TANGGAL CEK",
                                 bd=1, bg='brown',width=14,
                                fg='green',command=self.nomor)
        self.btntanggal.pack(side=LEFT, fill=BOTH)
        self.btntanggal.configure(state=DISABLED)

        self.btnnama = Button(fr_atas,text="NAMA BARANG",
                                 bd=1, bg='brown',width=14,
                                fg='green',command=self.nama)
        self.btnnama.pack(side=LEFT, fill=BOTH)
        self.btnnama.configure(state=DISABLED)

        self.btnjumlah = Button(fr_atas,text="JUMLAH BARANG",
                                 bd=1, bg='brown',width=14,
                                fg='green',command=self.jumlah)
        self.btnjumlah.pack(side=LEFT, fill=BOTH)
        self.btnjumlah.configure(state=DISABLED)

        self.btnharga = Button(fr_atas,text="HARGA BARANG",
                                 bd=1, bg='brown',width=14,
                                fg='green',command=self.harga)
        self.btnharga.pack(side=LEFT, fill=BOTH)
        self.btnharga.configure(state=DISABLED)

        self.btnmodal = Button(fr_atas,text="MODAL",
                                 bd=1, bg='brown',width=14,
                                fg='green',command=self.modal)
        self.btnmodal.pack(side=LEFT, fill=BOTH)
        self.btnmodal.configure(state=DISABLED)

        self.btnsales = Button(fr_atas,text="SALES",
                                 bd=1, bg='brown',width=14,
                                fg='green',command=self.sales)
        self.btnsales.pack(side=LEFT, fill=BOTH)
        self.btnsales.configure(state=DISABLED)

        self.btncari = Button(self.parent,cursor = 'target',text="CARI",
                                 bd=5, bg='burlywood',
                                fg='red',command=self.carisemua)
        self.btncari.pack(side=BOTTOM, fill=X)
        self.btncari.configure(state=DISABLED)
       

        self.lblStatus = Button(self.parent,
                        text='TAMPILKAN',
                                  bd=5,fg='green',bg='brown',command=self.tampilkan)
        self.lblStatus.pack(side=BOTTOM, fill=X)
        self.lblStatus.configure(state=DISABLED)

    def kejadian(self): # Fungsi Mengubah Button menjadi aktif
        self.btncari.configure(state=NORMAL)
        self.btnnomor.configure(state=NORMAL)
        self.btntanggal.configure(state=NORMAL)
        self.btnnama.configure(state=NORMAL)
        self.btnjumlah.configure(state=NORMAL)
        self.btnharga.configure(state=NORMAL)
        self.btnmodal.configure(state=NORMAL)
        self.btnsales.configure(state=NORMAL)

    def carisemua(self):    # Fungsi untuk pencarian data
##        p=self.list
        def show_entry_fields():  
            coba = [] 
            cek = False
            p=self.list
            while p.link is not None:
                p=p.link
                if p.data.no == target.get()or \
                   p.data.tanggal[:2] == target.get() or p.data.tanggal[3:5] == target.get() or p.data.tanggal[6:] == target.get() or \
                   p.data.nama == target.get() or \
                   p.data.jumlah == target.get() or \
                   p.data.harga == target.get() or \
                   p.data.modal == target.get() or \
                   p.data.sales == target.get():
                    data = (p.data.no,p.data.tanggal,p.data.nama,p.data.jumlah,p.data.harga,p.data.modal,p.data.sales.rstrip('\n'))
                    coba.append(data)
                   
                    cek=True

            p=self.list
            while p.link is not None:
                p=p.link
                if p.data.no != target.get()and \
                   p.data.tanggal[:2] != target.get() and p.data.tanggal[3:5] != target.get() and p.data.tanggal[6:] != target.get() and \
                   p.data.nama != target.get() and \
                   p.data.jumlah != target.get() and \
                   p.data.harga != target.get() and \
                   p.data.modal != target.get() and \
                   p.data.sales != target.get():
                        coba.append(('','','','','','',''))

           
            if cek == False:
               psn.showwarning("Peringatan !", "Data Tidak Sesuai")

            data_tampil = coba
            for bariske in range(len(coba)):
                baris = data_tampil[bariske]
                for kolomke in range(len(coba[0])):
                    nilai = baris[kolomke]
                    widget = self._widgets[bariske][kolomke]
                    widget.configure(text=nilai)

       
        cari = Tk()
        cari.title('PENCARIAN DATA')
        cari.config(bg='green')
        Label(cari, text="Masukan Data Yang Ingin Di Cari",fg='dark blue',bg='green').grid(row=0)
        target = Entry(cari)
        target.grid(row=0, column=1)       
        Button(cari, text='batal', command=cari.destroy,bg='#ff0000',fg='white').grid(row=3, column=1, sticky=W, padx=20,ipadx=30,pady=4)
        Button(cari, text=' cari ', command=show_entry_fields,bg='red',fg='white').grid(ipadx=30,row=3, column=0, sticky=W, padx=15)

        mainloop( )

   
    def diam(self):
        pass

    def tampilsortir(self):             # Fungsi untuk menampilkan hasil sortiran
        data_tampil = self.data_mhs
        for row in range(self.rows):
            baris = data_tampil[row]
            for column in range(self.columns):
                nilai = baris[column]
                widget = self._widgets[row][column]
                widget.configure(text=nilai)


############################## pengurutan data menggunakan Bubble Sort ####################################
    def bubbleSort(self,Data,indeks):
        '''fungsi untuk mengurutkan data dengan Bubble Sort
        input berupa list bernama Data'''
        n = len(Data)  # n adalah jumlah data

        #mengurutkan berdasarkan atribut nomor
        if indeks == 'nomor':
          for k in range(1,n):                                      # ulangi sebanyak n-1 kali
              for i in range(n-1):                                  # lakukan dari posisi paling kiri hingga ke kanan
                  if int(Data[i].data.no) > int(Data[i+1].data.no): # bandingkan dua data yang berdekatan
                      Data[i], Data[i+1] = Data[i+1], Data[i]       # menukar posisi data

        #mengurutkan berdasarkan atribut nama
        elif indeks == 'nama':
          for k in range(1,n): 
              for i in range(n-1):  
                  if (Data[i].data.nama) > (Data[i+1].data.nama): 
                      Data[i], Data[i+1] = Data[i+1], Data[i]

        #mengurutkan berdasarkan atribut jumlah
        elif indeks == 'jumlah':
          for k in range(1,n): 
              for i in range(n-1):  
                  if int(Data[i].data.jumlah) > int(Data[i+1].data.jumlah): 
                      Data[i], Data[i+1] = Data[i+1], Data[i]

        #mengurutkan berdasarkan atribut harga
        elif indeks == 'harga':
          for k in range(1,n): 
              for i in range(n-1):  
                  if int(Data[i].data.harga) > int(Data[i+1].data.harga): 
                      Data[i], Data[i+1] = Data[i+1], Data[i]

        #mengurutkan berdasarkan atribut modal
        elif indeks == 'modal':
          for k in range(1,n):
              for i in range(n-1): 
                  if int(Data[i].data.modal) > int(Data[i+1].data.modal): 
                      Data[i], Data[i+1] = Data[i+1], Data[i]

        #mengurutkan berdasarkan atribut sales
        elif indeks == 'sales':
          for k in range(1,n):
              for i in range(n-1): 
                  if (Data[i].data.sales) > (Data[i+1].data.sales): 
                      Data[i], Data[i+1] = Data[i+1], Data[i]
       
    def bubble(self,LL,indeks):
        '''mengurutkan linked list dengan Bubble Sort
        Tricky: dengan mengkonversi linked menjadi array, bubble sort lalu
        dikembalikan menjadi array'''
        # konversi dari Linked List ke python list
        li = []
        p = LL.link
        while p != None:
            li.append(p)
            p = p.link
        # memanggil fungsi bubble sort
        self.bubbleSort(li,indeks)
        # konversi dari python list ke Linked List
        p = LL
        for simpul in li:
            p.link = simpul
            simpul.link = None
            p = p.link
        p=LL.link
        self.data_mhs = []
        while p is not None:
            data=(p.data.no,p.data.tanggal,p.data.nama,p.data.jumlah,p.data.harga,p.data.modal,p.data.sales.rstrip('\n'))
            self.data_mhs.append(data)
            p=p.link

    def nomor(self):                    # Fungsi untuk mengurutkan nomor
            data = self.list_tampil
            self.bubble(data,'nomor')
            self.tampilsortir()

    def nama(self):                     # Fungsi untuk mengurutkan nama barang
            data=self.list_tampil
            self.bubble(data,'nama')
            self.tampilsortir()

    def jumlah(self):                   # Fungsi untuk mengurutkan jumlah barang
            data=self.list_tampil
            self.bubble(data,'jumlah')
            self.tampilsortir()

    def harga(self):                    # Fungsi untuk mengurutkan harga barang
            data=self.list_tampil
            self.bubble(data,'harga')
            self.tampilsortir()

    def modal(self):                    # Fungsi untuk mengurutkan modal
            data=self.list_tampil
            self.bubble(data,'modal')
            self.tampilsortir()

    def sales(self):                    # Fungsi untuk mengurutkan sales
            data=self.list_tampil
            self.bubble(data,'sales')
            self.tampilsortir()

    def impor(self):                    # Funsi untuk mengimport file csv
        try :
            File = bk.askopenfilename()
            x=open(File) # membuka file csv
            x.readline() # membaca file csv dengan mengabaikan baris pertama
            baca=x.readlines() #membaca semua data file csv dan menjadikannya sebuah list didalam variabel 'baca' 

            self.list = simpul() #self.list adalah kepala dari linked list yang akan dibuat ==> berisi None
            p=self.list      

            for k in range (len(baca)):                                 #
                z=baca[k].split(';')                                    #
                L=data_transaksi(z[0],z[1],z[2],z[3],z[4],z[5],z[6])    # membuat isi linked list
                p.link=simpul(L)                                        #
                p=p.link                                                #

            psn.showinfo("Pemberitahuan","import berhasil")
            x.close()
            self.list_tampil = self.list # membuat duplikat self.list
            self.lblStatus.configure(state=NORMAL) # mengaktifkan button tampilkan
        except IOError :
            psn.showwarning("Pemberitahuan","Import dibatalkan")
        except IndexError :
            psn.showwarning("Peringatan !","file anda tidak sesuai")


    def tampilkan(self): # Fungsi untuk menampilkan data
        try :
            p=self.list
            self.data_mhs = []
            while p.link is not None:
               
                data=(p.link.data.no,p.link.data.tanggal,p.link.data.nama,p.link.data.jumlah,p.link.data.harga,p.link.data.modal,p.link.data.sales.rstrip('\n'))
                self.data_mhs.append(data)
                p=p.link
                               
            # bagian yang ditambahkan untuk menampilkan data
            self.rows = len(self.data_mhs)  # jumlah baris
            self.columns = len(self.data_mhs[0])  # jumlah kolom
            self._widgets = list()
            for row in range(self.rows):
                self.current_row = list()
                for column in range(self.columns):
                    tampil = ''
                    label = Label(self.frame, text="%s" % tampil,  width=14, bg = 'blueviolet',fg = 'aqua')
                    label.grid(row=row, column=column, sticky="nsew", padx=1, pady=1)
                    self.current_row.append(label)
                self._widgets.append(self.current_row)
            for column in range(self.columns):
                self.grid_columnconfigure(column, weight=1)
            self.pack(side="top", fill="x")
            # akhir bagian yang ditambahkan untuk menampilkan data

            data_tampil = self.data_mhs
            for row in range(self.rows):
                baris = data_tampil[row]
                for column in range(self.columns):
                    nilai = baris[column]
                    widget = self._widgets[row][column]
                    widget.configure(text=nilai)
            self.kejadian()
            psn.showinfo("pemberitahuan","Berhasil Ditampilkan")
##            self.lblStatus.configure(state=DISABLED) # ini bisa di gunakan untuk maximize dan minimize
        except :
            psn.showwarning("Peringatan !", "Tidak ada file yang terbaca")
           

    def onExit(self):       # Fungsi untuk keluar dari program
        if askyesno('Peringatan!', 'Anda ingin keluar?'):
            play1 = PlaySound('SuaraMengunciMobil.wav', SND_FILENAME)
            self.parent.destroy()
        else:
            showinfo('Pemberitahuan', 'Keluar dibatalkan')




class data_transaksi():
    '''Membuat kelas data transaksi'''
    def __init__(self,no=None,tanggal=None,nama=None,jumlah=None,harga=None,modal=None,sales=None):
        self.no = no
        self.tanggal = tanggal
        self.nama    = nama
        self.jumlah  = jumlah
        self.harga   = harga
        self.modal   = modal
        self.sales   = sales

if __name__ =='__main__': # Untuk menjalankan Tkinter atau GUI
    root = Tk() 

    root.geometry("813x294+400+400")
    root.resizable(False,False)
    app = Tugas_GUI(root)
    root.mainloop()






 

   


>> Dan berikut adalah berkas dari koperasi.CSV yang di gunakan sebagai data dan akan di import nantinya :
NO;TANGGAL;NAMA;JUMLAH;HARGA;MODAL;SALES
1;05/5/15;Amplop;15;1500;20000;JAYA
2;10/5/15;Buku;5;2000;8000;MAKMUR
3;13/5/15;Bolpen;12;2000;21500;BINTANG
4;22/5/15;Binder;7;4000;24000;MUTIARA
5;2/6/15;Cutter;8;8000;62000;MUNCUL
6;4/6/15;Penggaris;10;3000;27500;MAJU
7;28/6/15;Penghapus;15;2000;26000;SELARAS
8;28/6/15;Spidol;6;10000;57000;TOP
9;16/7/15;Tipe-x;8;7000;53000;HARAPAN
10;19/7/15;Folio;50;10000;435000;PRESTASI

Demikianlah postingan kali ini saya sudahi sampai disini,,Semoga bisa diambil manfaatnya dengan bijak sana dan sini.


  (وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُه) 

Wassalamu 'alaikum Warahmatullaahi ­ Wabarakaatuh

luvne.com luvne.com ayeey.com cicicookies.com mbepp.com kumpulanrumusnya.comnya.com.com