Jumat, 31 Mei 2019

SVM Python

import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline


def display(img):
    cv2.imshow("show",img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    b=edges.shape[0]
    c=edges.shape[1]

    #for i in range(b):
    #    for j in range(c):
    #        D=edges[i][j]
    #        #print(str(i)+","+str(j)+"="+str(D))
    return img 

def myresize(img,b,c):
    dim = (b, c)
    resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
    return resized

def resshape(img):
    width = int(img.shape[0])
    height = int(img.shape[1])
    wh=width * height
    dim = (wh, 1)
    resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
    return resized

def uk(img):
    width = int(img.shape[0])
    height = int(img.shape[1])
    print (width ,' x ' , height)
    return (width ,' x ' , height)

def uk2(img):
    width =len(img[0])
    height = len(img[1])
    print (width ,' x ' , height)
    return (width ,' x ' , height)

def uk3(img):
    s =img.shape()
    return s

def model(img):
    lap=type(img)
    print(lap)
    return lap




bankdata = pd.read_csv("data/wavelet.csv")
bankdata.head()   #<class 'pandas.core.frame.DataFrame'>


train=bankdata
model(train)
#X = bankdata.drop('Class', axis=1) 
#y = bankdata['Class']

X = train.iloc[:, :-1].values.astype('int32') #:[:, :-1], [:, 4]=just c4,[:, 1:]c1 dst=1371  x  4
y = train.iloc[:, 4].values.astype('int32')

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.30) 


from sklearn.svm import SVC 
svclassifier = SVC(kernel='linear') 
svclassifier.fit(X_train, y_train) 




print(X_test)
y_pred = svclassifier.predict(X_test)  

print(y_test)
print(y_pred)

correct = 0
total = len(y_test)
for i in range(total):
    predicted = y_pred[i] #np.argmax(y_pred[i])
    test = y_test[i] #np.argmax(y_test[i])
    #print(predicted ,'=',test)
    correct = correct + (1 if predicted == test else 0)
print('Accuracy: {:f}'.format(correct/total))


hasil:
[[-3 -8 10  0]
 [ 1  6  0  0]
 [-1  9  1 -5]
 ...
 [ 3  1  1  1]
 [ 0 -1  1  0]
 [ 0  3  4  0]]
[1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0
 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1
 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1
 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0
 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1
 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0
 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0
 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0
 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1
 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0
 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0
 1 1 0 1 0]
[1 0 0 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0
 0 0 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1
 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 1 1 1
 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0
 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1
 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0
 1 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1
 1 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1
 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1
 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0
 0 1 1 1 1 0 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 0
 1 1 0 1 0]
Accuracy: 0.975728


from sklearn.metrics import classification_report, confusion_matrix  
print(confusion_matrix(y_test,y_pred))  
print(classification_report(y_test,y_pred))  

hasil
[[210   9]
 [  1 192]]
              precision    recall  f1-score   support

           0       1.00      0.96      0.98       219
           1       0.96      0.99      0.97       193

    accuracy                           0.98       412
   macro avg       0.98      0.98      0.98       412
weighted avg       0.98      0.98      0.98       412


#pengujian
dataUji=[3.6216,8.6661,-2.8073,-0.44699]
uji=list()
uji.append(dataUji)

y_pred = svclassifier.predict(uji)  
print("Hasil Pengujian ")
print(y_pred)

Hasil Pengujian 
[0]
pengujian uji=list() uji.append(X_test[0]) uji.append(X_test[1]) uji.append(X_test[2]) uji.append(X_test[3]) uji.append(X_test[4]) y_pred = svclassifier.predict(uji) print("Hasil Pengujian ") print(y_pred)
Hasil Pengujian 
[1 0 0 1 1]







Minggu, 19 Mei 2019

STEMMING IN PYTHON

Install LIB:
pip install -U nltk
pip install Sastrawi  

Selanjutnya kita diharuskan mengunduh paket tambahan dari modul NLTK ini dengan menjalankan kode dibawah.
import nltk

nltk.download()



#######################CODE:

from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer

import nltk
import string

kalimat = "[MOJOK.co] Manfaat monitoring, singing dan jogging setiap pagi yang pertama adalah meredakan stres. Olahraga itu seperti kode bagi tubuh untuk memproduksi hormon endorfin, agen perangsang rasa bahagia. Dilakukan di pagi hari, ketika udara masih bersih, sejuk, jalanan lengang, gunung terlihat jelas di sebelah utara, manfaat jogging bisa kamu rasakan secara maksimal."
kalimat = kalimat.translate(str.maketrans('','',string.punctuation)).lower() #menghilangkan tanda baca
case_folding = kalimat.lower() #casefolding

tokens = nltk.tokenize.word_tokenize(case_folding) #list
#print(tokens)

kemunculan = nltk.FreqDist(tokens)
#print(kemunculan.most_common())

listStopword =  set(stopwords.words('indonesian'))
st = PorterStemmer()

removed = []
stemmed = []
for t in tokens:
    if t not in listStopword:
        removed.append(t)
        stemmed.append(st.stem(t))   #include STEMMING in English
     
#print(removed) #list
#print(stemmed) #list

kemunculan = nltk.FreqDist(stemmed)
print(kemunculan.most_common())

mydistinct = set(stemmed)                #type SET
kemunculan = nltk.FreqDist(mydistinct)
print(kemunculan.most_common())
#print(mydistinct)
######################################Convert  SET to List
listdata=[]
for letter in set(mydistinct):
    listdata.append(letter)
print(listdata)



OUT:
[('manfaat', 2), ('jog', 2), ('pagi', 2), ('mojokco', 1), ('monitor', 1), ('sing', 1), ('meredakan', 1), ('stre', 1), ('olahraga', 1), ('kode', 1), ('tubuh', 1), ('memproduksi', 1), ('hormon', 1), ('endorfin', 1), ('agen', 1), ('perangsang', 1), ('bahagia', 1), ('udara', 1), ('bersih', 1), ('sejuk', 1), ('jalanan', 1), ('lengang', 1), ('gunung', 1), ('sebelah', 1), ('utara', 1), ('rasakan', 1), ('maksim', 1)]
[('maksim', 1), ('bahagia', 1), ('hormon', 1), ('stre', 1), ('memproduksi', 1), ('utara', 1), ('rasakan', 1), ('kode', 1), ('manfaat', 1), ('gunung', 1), ('endorfin', 1), ('jog', 1), ('lengang', 1), ('mojokco', 1), ('tubuh', 1), ('perangsang', 1), ('sejuk', 1), ('meredakan', 1), ('udara', 1), ('agen', 1), ('bersih', 1), ('jalanan', 1), ('sing', 1), ('olahraga', 1), ('sebelah', 1), ('pagi', 1), ('monitor', 1)]
['maksim', 'bahagia', 'hormon', 'mojokco', 'stre', 'memproduksi', 'utara', 'tubuh', 'rasakan', 'kode', 'perangsang', 'manfaat', 'gunung', 'sejuk', 'meredakan', 'udara', 'agen', 'bersih', 'jalanan', 'sing', 'olahraga', 'sebelah', 'endorfin', 'jog', 'pagi', 'monitor', 'lengang']

++++++++++++



STEMMING INDONESIA

from nltk.tokenize import sent_tokenize, word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from Sastrawi.Stemmer.StemmerFactory import StemmerFactory

import nltk
import string

#sastrawi
factory = StemmerFactory()
stemmerIndonesia = factory.create_stemmer()

kalimat = "[MOJOK.co] Manfaat monitoring, singing dan jogging setiap pagi yang pertama adalah meredakan stres. Olahraga itu seperti kode bagi tubuh untuk memproduksi hormon endorfin, agen perangsang rasa bahagia. Dilakukan di pagi hari, ketika udara masih bersih, sejuk, jalanan lengang, gunung terlihat jelas di sebelah utara, manfaat jogging bisa kamu rasakan secara maksimal."
kalimat = kalimat.translate(str.maketrans('','',string.punctuation)).lower() #menghilangkan tanda baca
case_folding = kalimat.lower() #casefolding

tokens = nltk.tokenize.word_tokenize(case_folding) #list
#print(tokens)

kemunculan = nltk.FreqDist(tokens)
#print(kemunculan.most_common())

listStopword =  set(stopwords.words('indonesian'))
stemmerEnglish = PorterStemmer()

removed = []
stemmed = []
for t in tokens:
    if t not in listStopword:
        removed.append(t)
        t2=stemmerEnglish.stem(t)                #Stem in English
        t3=stemmerIndonesia.stem(t2)             #Stem in sastrawi
        stemmed.append(t3)
 
#print(removed) #list
#print(stemmed) #list

kemunculan = nltk.FreqDist(stemmed)
print(kemunculan.most_common())

mydistinct = set(stemmed)                #type SET
kemunculan = nltk.FreqDist(mydistinct)
print(kemunculan.most_common())
#print(mydistinct)
#####################################stemming
listdata=[]
for letter in set(mydistinct):#Convert  SET to List
    listdata.append(letter)
print(listdata)

out
[('manfaat', 2), ('jog', 2), ('pagi', 2), ('mojokco', 1), ('monitor', 1), ('sing', 1), ('reda', 1), ('stre', 1), ('olahraga', 1), ('kode', 1), ('tubuh', 1), ('produksi', 1), ('hormon', 1), ('endorfin', 1), ('agen', 1), ('rangsang', 1), ('bahagia', 1), ('udara', 1), ('bersih', 1), ('sejuk', 1), ('jalan', 1), ('lengang', 1), ('gunung', 1), ('belah', 1), ('utara', 1), ('rasa', 1), ('maksim', 1)]
[('maksim', 1), ('bahagia', 1), ('hormon', 1), ('stre', 1), ('utara', 1), ('kode', 1), ('manfaat', 1), ('gunung', 1), ('reda', 1), ('endorfin', 1), ('jog', 1), ('lengang', 1), ('rangsang', 1), ('jalan', 1), ('mojokco', 1), ('tubuh', 1), ('belah', 1), ('sejuk', 1), ('udara', 1), ('bersih', 1), ('agen', 1), ('sing', 1), ('produksi', 1), ('rasa', 1), ('olahraga', 1), ('pagi', 1), ('monitor', 1)]
['maksim', 'jalan', 'bahagia', 'hormon', 'mojokco', 'stre', 'tubuh', 'utara', 'belah', 'kode', 'manfaat', 'gunung', 'sejuk', 'udara', 'reda', 'bersih', 'agen', 'sing', 'produksi', 'rasa', 'olahraga', 'endorfin', 'jog', 'pagi', 'monitor', 'lengang', 'rangsang']

Reff: https://github.com/sastrawi/sastrawi


Contoh Logika Percabangan +LOOP

x = input("something:")

IF  =hanya 1 cabang
nilai = 3
#Jika pernyataan pada if bernilai TRUE maka if akan dieksekusi, tetapi jika FALSE kode pada else yang akan dieksekusi.
if(nilai > 7):
    print("Selamat Anda Lulus")
else:
    print("Maaf Anda Tidak Lulus")

ELIF =bisa banyak cabang

hari_ini = "Minggu"

if(hari_ini == "Senin"):
    print("Saya akan kuliah")
elif(hari_ini == "Selasa"):
    print("Saya akan kuliah")
elif(hari_ini == "Rabu"):
    print("Saya akan kuliah")
elif(hari_ini == "Kamis"):
    print("Saya akan kuliah")
elif(hari_ini == "Jumat"):
    print("Saya akan kuliah")
elif(hari_ini == "Sabtu"):
    print("Saya akan kuliah")
elif(hari_ini == "Minggu"):
    print("Saya akan libur")

LOOP

count = 0
while (count < 9):
    print ('The count is:', count)
    count = count + 1

print ("Good bye!")

out:
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!


angka = [1,2,3,4,5]
for x in angka:
    print(x)

#Contoh pengulangan for
buah = ["nanas", "apel", "jeruk"]
for makanan in buah:
    print ("Saya suka makan", makanan)



1
2
3
4
5
Saya suka makan nanas
Saya suka makan apel
Saya suka makan jeruk

TIPE DATA LIST TUPEL DICT



nama = "Riadi MD"
umur = 31
tinggi = 170.5
menikah = True
# mencetak isi variabel
print ("Nama : "+ nama)
print ("Umur : "+ str(umur))
print ("Tinggi : ", (tinggi))
if(menikah):
    print ("Status: menikah")
else:
    print ("Status: belum menikah")


Nama : Riadi MD
Umur : 31
Tinggi :  170.5
Status: menikah

+++++++++++++++++++++++++

Fungsi-fungsi untuk mengubah tipe data:
  1. int() untuk mengubah menjadi integer;
  2. long() untuk mengubah menjadi integer panjang;
  3. float() untuk mengubah menjadi float;
  4. bool() untuk mengubah menjadi boolean;
  5. chr() untuk mengubah menjadi karakter;
  6. str() untuk mengubah menjadi string.
  7. bin() untuk mengubah menjadi bilangan Biner.
  8. hex() untuk mengubah menjadi bilangan Heksadesimal.
  9. oct() untuk mengubah menjadi bilangan okta.

a = True
b = False

# Logika AND
c = a and b
print ("%r and %r = %r" % (a,b,c))

# Logika OR
c = a or b
print ("%r or %r = %r" % (a,b,c))

# Logika Not
c = not a
print ("not %r  = %r" % (a,c))


OUT:
True and False = False
True or False = True
not True  = False

++++++++++++++++++++++++++++++++++++++++++
LIST


list1 = ['fisika', 'kimia', 1993, 2017]
list2 = [1, 2, 3, 4, 5, 6, 7 ]

print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
list1[0]:  fisika
list2[1:5]:  [2, 3, 4, 5]

list = ['fisika', 'kimia', 1993, 2017]
print ("Nilai ada pada index 2 : ", list[2])

list[2] = 2001
print ("Nilai baru ada pada index 2 : ", list[2])
Nilai ada pada index 2 :  1993
Nilai baru ada pada index 2 :  2001

list = ['fisika', 'kimia', 1993, 2017]
print (list)
del list[2]
print ("Setelah dihapus nilai pada index 2 : ", list)

['fisika', 'kimia', 1993, 2017]
Setelah dihapus nilai pada index 2 :  ['fisika', 'kimia', 2017]





### Operasi Dasar Pada List Python

List Python merespons operator + dan * seperti string; Itu artinya penggabungan dan pengulangan di sini juga berlaku, kecuali hasilnya adalah list baru, bukan sebuah String.

Sebenarnya, list merespons semua operasi urutan umum yang kami gunakan pada String di bab sebelumnya. Dibawah ini adalah tabel daftar operasi dasar pada list python.

| Python Expression | Hasil | Penjelasan | 
| `len([1, 2, 3, 4])` | `4`                                                                    Length |
| `[1, 2, 3] + [4, 5, 6]` | `[1, 2, 3, 4, 5, 6]`                                           Concatenation |
| `['Halo!'] * 4` | `['Halo!', 'Halo!', 'Halo!', 'Halo!']`                  Repetition |
| `2 in [1, 2, 3]`         | `True` |                                                   Membership                        
| `for x in [1,2,3] : print (x,end = ' ')` | `1 2 3`                    Iteration |




### Indexing, Slicing dan Matrix Pada List Python

Karena list adalah urutan, pengindeksan dan pengiris bekerja dengan cara yang sama untuk list seperti yang mereka lakukan untuk String.

Dengan asumsi input berikut :

`L = ['C++'', 'Java', 'Python']`

 | Python Expression | Hasil | Penjelasan | 
 | `L[2]` | `'Python'` | Offset mulai dari nol | 
 | `L[-2]` | `'Java'` | Negatif: hitung dari kanan | 
 | `[1:]` | `['Java', 'Python']` | Slicing mengambil bagian | 



Python menyertakan fungsi built-in sebagai berikut :

| Python Function | Penjelasan |
| cmp(list1, list2) # |  Tidak lagi tersedia dengan Python 3 |
| len(list) | Memberikan total panjang list. |
| max(list) | Mengembalikan item dari list dengan nilai maks. |
| min(list) | Mengembalikan item dari list dengan nilai min. |
| list(seq) | Mengubah tuple menjadi list. |



Python menyertakan methods built-in sebagai berikut
 | list.append(obj) | Menambahkan objek obj ke list |
 | list.count(obj) | Jumlah pengembalian berapa kali obj terjadi dalam list |
 | list.extend(seq) | Tambahkan isi seq ke list |
 | list.index(obj) | Mengembalikan indeks terendah dalam list yang muncul obj |
 | list.insert(index, obj) | Sisipkan objek obj ke dalam list di indeks offset |
 | list.pop(obj = list[-1]) | Menghapus dan mengembalikan objek atau obj terakhir dari list |
 | list.remove(obj) | Removes object obj from list |
 | list.reverse() | Membalik list objek di tempat |
 | list.sort([func]) | Urutkan objek list, gunakan compare func jika diberikan |


++++++++++
CONTOH LIST-TUPEL-DICT

list = ['fisika', 'kimia', 1993, 2017]
type(list)    #list
len(list)      #4
list.count('fisika')  #1

+++++
tup1 = ('fisika', 'kimia', 1993, 2017)
tup2 = (1, 2, 3, 4, 5, 6, 7 )

print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')

# Aksi seperti dibawah ini tidak bisa dilakukan pada tuple python
# Karena memang nilai pada tuple python tidak bisa diubah
# tup1[0] = 100;

# Jadi, buatlah tuple baru sebagai berikut
tup3 = tup1 + tup2
print (tup3)
(12, 34.56, 'abc', 'xyz')

+++++
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

dict['Age'] = 8; # Mengubah entri yang sudah ada
dict['School'] = "DPS School" # Menambah entri baru

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

#del dict['Name'] # hapus entri dengan key 'Name'
#dict.clear()     # hapus semua entri di dict
#del dict         # hapus dictionary yang sudah ada

out:
list[0]:  fisika
tup1[0]:  fisika
tup2[1:5]:  (2, 3, 4, 5)
dict['Name']:  Zara
dict['Age']:  7
dict['Age']:  8
dict['School']:  DPS School


str(dict)   #"{'Name': 'Zara', 'Age': 8, 'Class': 'First', 'School': 'DPS School'}"
dict.items()   #dict_items([('Name', 'Zara'), ('Age', 8), ('Class', 'First'), ('School', 'DPS School')])
dict.values()  #dict_values(['Zara', 8, 'First', 'DPS School'])



MEMBUAT CLASS:


class Employee:
   'Common base class for all employees'
   empCount = 0

   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self):
     print ("Total Employee %d" % Employee.empCount)

   def displayEmployee(self):
      print( "Name : ", self.name,  ", Salary: ", self.salary)



emp1 = Employee("Zara", 2000)
emp2 = Employee("Manni", 5000)
emp1.displayEmployee()
emp2.displayEmployee()
print ("Total Employee %d" % Employee.empCount)

out:
Name :  Zara , Salary:  2000
Name :  Manni , Salary:  5000
Total Employee 6


Ref: https://belajarpython.com/tutorial/object-class-python








Contoh Python Basic

Belajar Dasar-Dasar Python 2

Kursus Hari2 Materi2

#-------------------------------------------------------
print "Selamat Belajar Python"
print "Sukses!"
#-------------------------------------------------------
nilai = input("Nilai ujian (0-100):")

if nilai >= 60:
    print "Lulus"
else:
    print "Tidak lulus"
#-------------------------------------------------------
tinggi = input("Tinggi segitiga: ")

baris = 1
while baris <= tinggi:
    print "*" * baris
    baris = baris + 1
#-------------------------------------------------------
x = 254

print "%d" % x
print "%8d" % x
print "%10d" % x

x = -254
y = 2.4678e-4

print "Format %%i: %i" % x
print "Format %%d: %d" % x
print "Format %%o: %o" % x
print "Format %%x: %x" % x
print "Format %%X: %X" % x
print "Format %%S: %s" % x

print "Format %%e: %e" % y
print "Format %%E: %E" % y
print "Format %%f: %f" % y
print "Format %%G: %G" % y
print "Format %%g: %g" % y
print "Format %%S: %s" % y

#-------------------------------------------------------
import math

kecepatan = input("Kecepatan: ")
sudut     = input("Sudut (derajat): ");

sudut = math.radians(sudut)
jarak = 2 * kecepatan * kecepatan * \
        math.sin(sudut) * math.cos(sudut) / 9.8

print "Jarak = ", jarak
#-------------------------------------------------------
nilai = input("Nilai ujian (0-100): ")

if nilai >= 90:
    print "A"
elif nilai >= 70:
    print "B"
elif nilai >= 60:
    print "C"
elif nilai >= 50:
    print "D"
else:
    print "E"
#-------------------------------------------------------
print "Menjumlah dua buah bilangan"

x = input("bilangan pertama: ")
y = input("bilangan kedua: ")

print "Jumlah = ",  (x+y)
#-------------------------------------------------------
while True:
    try:
        bil = input("Masukkan bilangan: ")
        break
    except SyntaxError:
        print("Anda salah memasukkan bilangan")
    except KeyboardInterrupt:
        print("\nMaaf jangan menekan tombol Ctrl+C")

print "Anda memasukkan bilangan", bil
#-------------------------------------------------------

while True:
    try:
        bil = input("Masukkan bilangan: ")
        break
    except SyntaxError:
        print("Anda salah memasukkan bilangan")

print "Anda memasukkan bilangan", bil
#-------------------------------------------------------
import time

bulan = ("Januari", "Pebruari", "Maret",
         "April", "Mei", "Juni",
         "Juli", "Agustus", "September",
         "Oktober", "Nopember", "Desember")
hari = ("Minggu", "Senin", "Selasa",
        "rabu", "Kamis", "Jumat", "Sabtu")

sekarang = time.time()
infowaktu = time.localtime(sekarang)
print "Saat sekarang :"
print "Tanggal", infowaktu[2], \
      bulan[infowaktu[1]-1], infowaktu[0]

print "Hari", hari[infowaktu[6]]
print "Jam", str(infowaktu[3]) + ":" + \
             str(infowaktu[4]) + ":" + \
             str(infowaktu[5])
#-------------------------------------------------------
def hitung_luas_lingkaran():
    print "Menghitung luas lingkaran"
    radius = input("Jari-jari = ")
    luas = 3.14 * radius * radius
    print "Luas=", luas

def hitung_luas_persegipanjang():
    print "Menghitung luas persegi panjang"
    panjang = input("Panjang = ")
    lebar   = input("Lebar   = ")
    luas = panjang * lebar
    print "Luas=", luas


# Program utama
print "Menghitung luas"
print "1. Lingkaran"
print "2. Persegipanjang"

pilihan = input("Pilihan (1 atau 2): ")
if pilihan == 1:
    hitung_luas_lingkaran()
elif pilihan == 2:
    hitung_luas_persegipanjang()
else:
    print "Pilihan salah"
#-------------------------------------------------------
daftar = ["1234", 2, "Edi", 1999]
jumlah = 0

for nilai in daftar:
    try:
        bil = int(nilai)
        jumlah = jumlah + 1
    except ValueError:
        pass

print "Jumlah elemen berupa bilangan:", jumlah
#-------------------------------------------------------
kalimat = raw_input("Masukkan suatu kalimat: ")
jumkar = {}
for kar in kalimat:
    jumkar[kar] = jumkar.get(kar,0) + 1

# Tampilkan frekuensi karakter
for kar in jumkar.keys():
    if kar == " ":
        print "Spasi = ",
    else:
        print kar, "=",

    print jumkar[kar]
#-------------------------------------------------------

daftar_nama = [ "Anwar Suadi", "Ahmad Jazuli",
                "Safitri", "Edi Juanedi",
                "Dian Anggraeni", "Rahmat Anwari"]

dicari = raw_input("Penggalan nama yang dicari: ")

indeks = 0
ketemu = False

while indeks <= len(daftar_nama):
    if dicari in daftar_nama[indeks]:
        ketemu = True
        break

    indeks = indeks + 1

if ketemu:
    print "Nama yang Anda cari cocok dengan: "
    print daftar_nama[indeks]
else:
    print "Tak ada yang cocok"
#-------------------------------------------------------
inp = raw_input('Enter Fahrenheit Temperature:')
fahr = float(inp)
cel = (fahr - 32.0) * 5.0 / 9.0
print cel
#-------------------------------------------------------
a = False
b = True

print ("a or b = ", a or b)
print ("a and b = ", a and b)
print ("not a = ", not a)
print ("not b = ", not b)
#-------------------------------------------------------
a = 21
b = 10

if ( a == b ):
   print "Baris 1 - a sama dengan b"
else:
   print "Baris 1 - a tidak sama dengan b"

if ( a != b ):
   print "Baris 2 - a tidak sama dengan b"
else:
   print "Baris 2 - a sama dengan b"

if ( a <> b ):
   print "Baris 3 - a tidak sama dengan b"
else:
   print "Baris 3 - a sama dengan b"

if ( a < b ):
   print "Baris 4 - a kurang dari b"
else:
   print "Baris 4 - a tidak kurang dari b"

if ( a > b ):
   print "Baris 5 - a lebih dari b"
else:
   print "Baris 5 - a tidak lebih dari b"

a = 5;
b = 20;
if ( a <= b ):
   print "Baris 6 - a kurang dari atau sama dengan b"
else:
   print "Baris 6 - a tidak kurang dari b"

if ( b >= a ):
   print "Baris 7 - a lebih dari atau sama dengan b"
else:
   print "Baris 7 - a tidak lebih dari b"
#-------------------------------------------------------
a = 15            # 60 = 0011 1100
b = 12            # 13 = 0000 1101
c = 0

c = a & b;        # 12 = 0000 1100
print "Baris 1 - Nilai dari c adalah ", c

c = a | b;        # 61 = 0011 1101
print "Baris 2 - Nilai dari c adalah ", c

c = a ^ b;        # 49 = 0011 0001
print "Baris 3 - Nilai dari c adalah ", c

c = ~a;           # -61 = 1100 0011
print "Baris 4 - Nilai dari c adalah ", c

c = a << 2;       # 240 = 1111 0000
print "Baris 5 - Nilai dari c adalah ", c

c = a >> 2;       # 15 = 0000 1111
print "Baris 6 - Nilai dari c adalah ", c
#-------------------------------------------------------
x = raw_input ('Masukkan nilai x = ')
y = raw_input ('Masukkan nilai y = ')

if x < y:
   print 'x is less than y'
elif x > y:
   print 'x is greater than y'
else:
   print 'x and y are equal'
#-------------------------------------------------------
x = raw_input ('Masukkan nilai x = ')
y = raw_input ('Masukkan nilai y = ')

if x == y:
      print 'x dan y adalah sama'
else:
      if x < y:
            print 'x kurang dari y'
      else:
            print 'x is lebih dari y'

if 0 < x:
   if x < 10:
       print 'x is a positive single-digit number.'
#-------------------------------------------------------
inp = raw_input('Enter Fahrenheit Temperature:')
fahr = float(inp)
cel = (fahr - 32.0) * 5.0 / 9.0
print cel


#dengan try-except
inp = raw_input('Enter Fahrenheit Temperature:')
try:
  fahr = float(inp)
  cel = (fahr - 32.0) * 5.0 / 9.0
  print cel
except:
  print 'Please enter a number'
#-------------------------------------------------------
a = raw_input('Data masukan 1 :')
b = raw_input('Data masukan 2 :')

c=max(a)
d=min(b)

print c
print d
#-------------------------------------------------------
def print_sayhello():
     print "Hallo, apa kabar?"
     print "Saya senang Anda dapat memiliki dan menggunkan buku kami ini."


#memanggil fungsi di sini

print_sayhello ()  

#-------------------------------------------------------
def faktorial (a):
  if a == 1 :
      print a
      return 1
  else :
      print a
      return ( a * faktorial(a-1))

#program utama

m=raw_input ('Masukkan angka : ')
try :
  x=int(m)
  hasil=faktorial(x)
  print "Hasil faktorial ",x," adalah ", hasil
except:
  print "Data yang dimasukan salah, ulangi!"
#-------------------------------------------------------
N=raw_input ("jumlah loop N = ")
try :
   m=int(N)
   while m > 0 :
      print m
      m=m-1

   print  "BLASTOFF!"
except :
    print "Salah entry data"
#-------------------------------------------------------
i=1
while 1:
   i +=1
   print i
   if i == 1000:
      i=0
#stop with KeyboardInterrupt: tekan CTRL C di Windwows dan CTRL Z di Raspberry
print 'selesai ...'
#-------------------------------------------------------
i=1
while 1:
   i +=1
   print i
   if i == 1000:
      break
#stop with break
print 'selesai ...'
#-------------------------------------------------------
while True:
   print 'Ketik "done" untuk keluar dari loop ini'
   line = raw_input('> ')
   if line == 'done':
      break
   else :
      continue
   print line

print 'Done!'
 
#-------------------------------------------------------
temantemin = ['Edi', 'Faisal', 'Fajar']
for teman in temantemin:
   print 'Selamat bekerja kawanku,', teman,' !'

print 'SELESAI!'
 
#-------------------------------------------------------
data = [3, 41, 12, 9, 74, 15]
count = 0
for itervar in data:
      count = count + 1
      print count,itervar

print 'Count: ', count
#-------------------------------------------------------
data = [3, 41, 12, 9, 74, 15]
total = 0
for itervar in data:
      total = total + itervar
      print total
   
print 'Jumlah: ', total
#-------------------------------------------------------
data = [3, 41, 12, 9, 74, 15]
total = 0
for itervar in data:
      total = total + itervar
      print total
   
print 'Jumlah: ', total
#-------------------------------------------------------
data = [3, 41, 12, 9, 74, 15]
terbesar = None
print 'Sebelum: ', terbesar

for itervar in data:
      if terbesar is None or itervar > terbesar :
          terbesar = itervar
      print 'Loop:', itervar, terbesar

print 'Data terbesar : ', terbesar






#-------------------------------------------------------
wadah = "lp2m"
panjang = len(wadah)
firstletter=wadah[0]
lastletter=wadah[len(wadah)-1]
print "Panjang         : ",len(wadah)
print "Huruf pertama   : ",firstletter
print "Huruf terakhir  : ",lastletter

print "Susunan letter wadah dilooping : ", "\n"
hit=0
for i in wadah :
   print "Letter ke-",hit," adalah ",i
   hit+=1

#-------------------------------------------------------
fruit='manggo'
index = 0
a=len(fruit)
while index < a:
   letter = fruit[index]
   print letter
   index = index + 1

#-------------------------------------------------------
fhand = open('mbox.txt')
count = 0
for line in fhand:
    count = count + 1
print 'Line Count:', count
#-------------------------------------------------------
fhand = open('pesan.txt')
inp = fhand.read()
print len(inp)
print inp[:36]
#-------------------------------------------------------
NIM=['1120329','1120330','1120332','1120333','1120335','1120336']
NAMA=['Udin Suridin','Maman Suherman','Toto Suharto','Leban Pangaribuan','Bonbon Bonjovi','Miseline Adeleide']
NOHP=['628128283344','628128281244','6281358281244','628123456789','62817582812','628535822322']


f = raw_input("Nama file tanpa extention : ")
fon = f + '.csv'
fo=open(fon,"a")
c=0
while c < 6  :
    print '%s ; %20s ; %13s \n' %(NIM[c],str(NAMA[c]),str(NOHP[c]))
    fo.write(str(NIM[c]) + "; " + str(NAMA[c]) + "; " + str(NOHP[c]) + "\n")
    c+=1
fo.close()




def print_sayhello():
     print "Hallo, apa kabar? i'm lp2maray.com"
     print "Saya senang Anda dapat memiliki dan menggunkan buku kami ini."


#memanggil fungsi di sini

print_sayhello ()  

#-------------------------------------------------------
def faktorial (a):
  if a == 1 :
      print a
      return 1
  else :
      print a
      return ( a * faktorial(a-1))

#program utama

m=raw_input ('Masukkan angka : ')
try :
  x=int(m)
  hasil=faktorial(x)
  print "Hasil faktorial ",x," adalah ", hasil
except:
  print "Data yang dimasukan salah, ulangi!"
#-------------------------------------------------------

def hitung_luas_lingkaran():
    print "Menghitung luas lingkaran"
    radius = input("Jari-jari = ")
    luas = 3.14 * radius * radius
    print "Luas=", luas

def hitung_luas_persegipanjang():
    print "Menghitung luas persegi panjang"
    panjang = input("Panjang = ")
    lebar   = input("Lebar   = ")
    luas = panjang * lebar
    print "Luas=", luas


# Program utama
print "Menghitung luas"
print "1. Lingkaran"
print "2. Persegipanjang"

pilihan = input("Pilihan (1 atau 2): ")
if pilihan == 1:
    hitung_luas_lingkaran()
elif pilihan == 2:
    hitung_luas_persegipanjang()
else:
    print "Pilihan salah"
#--------------------------


Selamat Mencoba

Minggu, 12 Mei 2019

Cek Python Version + Install Jupyter


pada halaman CLI

python -V

GUI PYTHON JUPYTER
1.Download Anaconda Jupyter ->lalu Install (Cheklist pythin 3.7)
2.setelah Install...
ketik di run anaconda navigtor.....




3.pilih SPYDER  dan ketik untuk tes kode python apapun..
misal:
print('halo anaconda')
lalu run.....

4.Jupyter akan aktif dengan port 8888
automatis launch:



atau jika minta Token ?

maka buka ANACONDA POWERSHELL PROMP
ketikkan sbb:

(base) PS C:\Users\USER> jupyter notebook list
Currently running servers:
http://localhost:8888/?token=04266551d3916b069aab2ed1b13f2787d15d40dc2127f34bb35 ::
C:\Users\USER
hasil token diatas di masukkan ke browser:


Maka selanjutnya Layar jupyter sudah siap digunakan terusssssssssssssssssssssssss....


Referensi ttg Jupyter server ada di mari


langkah awal buat konfigurasi servernya dahulu di :C:\Users\USER\.jupyter

(base) PS C:\Users\USER> jupyter notebook --generate-config
Writing default config to: C:\Users\USER\.jupyter\jupyter_notebook_config.py

+++++++++++++++++++++


















Rabu, 05 Desember 2018

Optimasi Data Sorting untuk PSO



Teknik Optimasi

umum digunakan untuk pengambilan keputusan, tetapi bisa juga digunakan untuk pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian posisi dengan pengembalian nilai fungsi minimal. . 
Umumnya Teknik optimasi dilakukan dengan cara menghitung secara terus menerus calon solusi dengan menggunakan suatu acuan kualitas. Tujuannya adalah untuk mengoptimasi permasalahan dengan cara menggerakan partikel / calon solusi di dalam ruang permasalahan menggunakan fungsi tertentu untuk posisi dan kecepatan dari partikel. Pergerakan partikel dipengaruhi oleh solusi terbaik partikel tersebut, dan solusi terbaik secara umum yang didapatkan dari partikel lain. Sekumpulan partikel ini dinamakan swarm, dan pada akhirnya swarm ini akan bergerak menuju kepada solusi terbaik.

Salah satu proses optiamasi adalah mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending).

      PSO untuk pengurutan  adalah salah satu algoritma yang paling umum, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi.(menggunakan perbandingan dalam operasi antar elemennya.)

Contoh Penerapan:

Misalkan kita mempunyai sebuah array dengan.  Elemen-elemen “4 2 5 3 9”. Proses yang akan terjadi apabila digunakan algoritma Optimasinya adalah sebagai berikut.

Pass pertama
(4 2 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 5 3 9)
(2 4 5 3 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 4 3 5 9)
Pass kedua
(2 4 3 5 9) menjadi (2 4 3 5 9)
(2 4 3 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
Pass ketiga
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)
(2 3 4 5 9) menjadi (2 3 4 5 9)

Dapat dilihat pada proses di atas, sebenarnya pada pass kedua, langkah kedua, array telah terurut. Namun algoritma tetap dilanjutkan hingga pass kedua berakhir. Pass ketiga dilakukan karena definisi terurut dalam algoritma PSO Optimasia dalah tidak ada satupun penukaran pada suatu pass, sehingga pass ketiga dibutuhkan untuk memverifikasi keurutan array tersebut.

Atau jika di jabarkan:

Jika kita perhatikan proses diatas, para proses kedua data sudah terurut dengan benar. Tetapi algoritma Optimasi tetap berjalan hingga proses kedua berakhir. Proses ketiga masih terus berjalan karena pada algoritma ini maksud terurut itu adalah tidak ada satupun penukaran pada suatu proses. Proses ketiga ini dilakukan untuk verifikasi data.

Proses Optimasi ini mempunyai kelebihan dan kekurangan, untuk kelebihannya metode ini merupakan metode paling sederhana untuk mengurutkan data. Selain sederhana, algoritma Optimasi ini mudah dipahami. Sementara itu, kekurangannya terletak pada efisiensi..


B.      Rule Algoritma Optimasi

1.    Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
2.    Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
3.    Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
4.    Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh Kasus 

Misalkan kita punya data seperti ini: 6, 4, 3, 2 dan kita ingin mengurutkan data ini (ascending) dengan menggunakan Teknik Optimasi. Berikut ini adalah proses yang terjadi:
Iterasi ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)
Iterasi ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)
Iterasi ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)
Iterasi ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses selesai



C.      Kompleksitas Algoritma Optimasi Jarak

Kompleksitas Algoritma ini dapat dilihat dari beberapa jenis kasus, yaitu worst-case, average-case, dan best-case.

Ø  Kondisi Best-Case

Dalam kasus ini, data yang akan disorting telah terurut sebelumnya, sehingga proses perbandingan hanya dilakukan sebanyak (n-1) kali, dengan satu kali pass.
Proses perbandingan dilakukan hanya untuk memverifikasi keurutan data. Contoh Best-Case dapatdilihat pada pengurutan data “1 2 3 4” di bawah ini.

Pass Pertama
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)

Dari proses di atas, dapat dilihat bahwa tidak terjadi penukaran posisi satu kalipun, sehingga tidak dilakukan pass selanjutnya. Perbandingan elemen dilakukan sebanyak tiga kali. Proses perbandingan pada kondisi ini hanya dilakukan sebanyak (n-1) kali. Persamaan Big-O yang diperoleh dari proses ini adalah O(n). Dengan kata lain, pada kondisi Best-Case algoritma Optimasi termasuk pada algoritma lanjar.


Ø  Kondisi Worst-Case

Dalam kasus ini, data terkecil berada pada ujung array. Contoh Worst-Case dapat dilihat pada pengurutan data “4 3 2 1” di bawah ini.

Pass Pertama
(4 3 2 1) menjadi (3 4 2 1)
(3 4 2 1) menjadi (3 2 4 1)
(3 2 4 1) menjadi (3 2 1 4)
Pass Kedua
(3 2 1 4) menjadi (2 3 1 4)
(2 3 1 4) menjadi (2 1 3 4)
(2 1 3 4) menjadi (2 1 3 4)
Pass Ketiga
(2 1 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
Pass Keempat
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)
(1 2 3 4) menjadi (1 2 3 4)

Dari langkah pengurutan di atas, terlihat bahwa setiap kali melakukan satu pass, data terkecil akan bergeser ke arah awal sebanyak satu step. Dengan kata lain, untuk menggeser data terkecil dari urutan keempat menuju urutan pertama, dibutuhkan pass sebanyak tiga kali, ditambah satu kali pass untuk memverifikasi. Sehingga jumlah proses pada kondisi best case dapat dirumuskan sebagai berikut. Jumlah proses = n2+n (3)
Dalam persamaan (3) di atas, n adalah jumlah elemen yang akan diurutkan. Sehingga notasi Big-O yang didapat adalah O(n2). Dengan kata lain, pada kondisi worst-case, algoritma Optimasi termasuk dalam kategori algoritma kuadratik.

Ø  Kondisi Average-Case

Pada kondisi average-case, jumlah pass ditentukan dari elemen mana yang mengalami penggeseran ke kiri paling banyak. Hal ini dapat ditunjukkan oleh proses pengurutan suatu array, misalkan saja (1 8 6 2). Dari (1 8 6 2), dapat dilihat bahwa yang akan mengalami proses penggeseranpaling banyak adalah elemen 2, yaitu sebanyak dua kali.

Pass Pertama
(1 8 6 2) menjadi (1 8 6 2)
(1 8 6 2) menjadi (1 6 8 2)
(1 6 8 2) menjadi (1 6 2 8)
Pass Kedua
(1 6 2 8) menjadi (1 6 2 8)
(1 6 2 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)
Pass Ketiga
(1 2 6 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)
(1 2 6 8) menjadi (1 2 6 8)

Dari proses pengurutan di atas, dapat dilihat bahwa untuk mengurutkan diperlukan dua buah passing,ditambah satu buah passing untuk memverifikasi. Dengan kata lain, jumlah proses perbandingan dapat dihitung sebagai berikut. Jumlah proses = x2+x (4) Dalam persamaan (4) di atas, x adalah jumlahpenggeseran terbanyak. Dalam hal ini, x tidak pernah lebih besar dari n, sehingga x dapat dirumuskan sebagai
Dari persamaan (4) dan (5) di atas, dapat disimpulkan bahwa notasi
big-O nya adalah O(n2). Dengan kata lain, pada kondisi average case algoritma Optimasi termasuk dalam algoritma kuadratik.

D.      Implementasi dalam Pseudo-Code

Setiap algoritma akan memiliki implementasi yang berbeda, tergantung dari bahasa program yang dipakai. Oleh karena itu berikut ini adalah pseudo-code dari algoritma Pengurutan Jarak untuk memudahkan implementasi Algortima pada bahasa apapun.

procedure Optimize( A : list of
bestOptimize items ) defined as:
do
swapped := false
for each i in 0 to length(A) - 2
inclusive do:
GBEST=A[i] 
if GBEST> A[i+1] then
PBEST=A[i+1]
swap( A[i], PBEST )
swapped := true
end if
end for
while swapped
end procedure


E.       List Code

Adapun implementasi dalam code java nya adalah sbb:

public static void Optimasi(){
                int j;
                boolean flag = true;  
                double temp=0.0;  
                String stemp="";
                while ( flag ){
                       flag= false;    
                       for( j=0;  j < jd -1;  j++ ){
                             GBEST=dJarak[ j ] ;
                              if ( GBEST > dJarak[j+1] ) {
                                      PBEST= dJarak[ j ];               
                                      dJarak[ j ] = dJarak[ j+1 ];
                                      dJarak[ j+1 ] = PBEST;
                                     
                                      stemp=arId[j];
                                      arId[ j ] = arId[ j+1 ];
                                      arId[ j+1 ] = stemp;
                                     
                                      stemp=arNama[j];
                                      arNama[ j ] = arNama[ j+1 ];
                                      arNama[ j+1 ] = stemp;
                                     
                                      stemp=arUrl[j];
                                      arUrl[ j ] = arUrl[ j+1 ];
                                      arUrl[ j+1 ] = stemp;
                                     
                                      stemp=arKet[j];
                                      arKet[ j ] = arKet[ j+1 ];
                                      arKet[ j+1 ] = stemp;
                                     
                                      stemp=arUrlFoto[j];
                                      arUrlFoto[ j ] = arUrlFoto[ j+1 ];
                                      arUrlFoto[ j+1 ] = stemp;
                                     
                                      stemp=arTelp[j];
                                      arTelp[ j ] = arTelp[ j+1 ];
                                      arTelp[ j+1 ] = stemp;
                                     
                                      stemp=arLati[j];
                                      arLati[ j ] = arLati[ j+1 ];
                                      arLati[ j+1 ] = stemp;
                                     
                                      stemp=arLongi[j];
                                      arLongi[ j ] = arLongi[ j+1 ];
                                      arLongi[ j+1 ] = stemp;
                                     
                                      stemp=arAlamat[j];
                                      arAlamat[ j ] = arAlamat[ j+1 ];
                                      arAlamat[ j+1 ] = stemp;
                                     
                                      stemp=arJarak[j];
                                      arJarak[ j ] = arJarak[ j+1 ];
                                      arJarak[ j+1 ] = stemp;
                                     
                                      flag = true;             
                              }
                       }
                 }
           }