Rabu, 02 Mei 2018

Program Menu Matrix dengan Bahasa Pemrograman Python

Hello sobat semua pasti penasaran sama Program Matrix kali ini :) atau ada tugas dari dosen suruh buat program matrix? Berikut codingan Program Matrix menggunakan Bahasa Pemrograman Python yang berisi : Determinan, Ekspansi Baris Kolom, Invers, Transformasi, Laplace dan Sarrus.

def menu():
    print """
    =============================
            MENU UTAMA
    =============================
    1. Matrix 2x2
    2. Matrix 3x3
    3. Matrix 4x4
    4. Matrix 5x5
    5. Keluar
    =============================
    """
    pil = input("Masukkan Pilihan :")
    print " "
    if pil == 1 :
        duadua()
        menu()
    elif pil == 2 :
        tigatiga()
        menu()
    elif pil == 3 :
        empatempat()
        menu()
    elif pil == 4 :
        limalima()
        menu()
    elif pil == 5 :
        keluar()
    else :
        print "Maaf Pilihan yang anda masukkan tidak terdaftar"
        print "Coba lagi ? [Y/N]"
        coba = raw_input().upper()
        if coba == "Y":
            menu()
        else:
            print "\n"*100

def duadua():
    print """
    =============================
          MATRIX ORDO 2 X 2
    =============================
    """
    a=int(input("Masukkan nilai Baris 1 Kolom 1 : "))
    b=int(input("Masukkan nilai Baris 1 Kolom 2 : "))
    c=int(input("Masukkan nilai Baris 2 Kolom 1 : "))
    d=int(input("Masukkan nilai Baris 2 Kolom 1 : "))
    print "============================="
    print "=========PILIH METODE========"
    print "1. Invers"
    print "2. Determinan"
    pm=int(input("Masukkan Metode Pilihan Anda : "))
    if (pm == 1):
        print "============================="
        print "===========Invers============"
        print "Matriks : "
        print "|", a, b, "|"
        print "|", c, d, "|"
        print "============================="
        b1=b*-1.0
        c1=c*-1.0
        hasil=(a*d-b*c)
        if hasil==0:
            print """
            | """,d,"""/ 0  """,b1,"""/ 0 |
            | """,c1,"""/ 0  """,a,"""/ 0 |
            Matrix ini tidak memilikin invers atau di sebut natriks singular
            """
        else :
            print """
            | """,d*(1.0/hasil),"""  """,b1*(1.0/hasil),""" |
            | """,c1*(1.0/hasil),"""  """,a*(1.0/hasil),""" |
            """
        print "============================="
    elif (pm == 2): 
        print "============================="
        print "Matriks : "
        print "|", a, b, "|"
        print "|", c, d, "|"
        print "============================="
        print ("Determinannya adalah : "),(a*d)-(b*c)
    print " "
    print "Mau Coba lagi ? [Y/N]"
    coba = raw_input().upper()
    if coba == "Y":
        menu()
    else:
        exit()

def tigatiga():
    print """
    =============================
          MATRIX ORDO 3 X 3
    =============================
    """
    a=int(input("Masukkan nilai baris 1 kolom 1 : "))
    b=int(input("Masukkan nilai baris 1 kolom 2 : "))
    c=int(input("Masukkan nilai baris 1 kolom 3 : "))
    d=int(input("Masukkan nilai baris 2 kolom 1 : "))
    e=int(input("Masukkan nilai baris 2 kolom 2 : "))
    f=int(input("Masukkan nilai baris 2 kolom 3 : "))
    g=int(input("Masukkan nilai baris 3 kolom 1 : "))
    h=int(input("Masukkan nilai baris 3 kolom 2 : "))
    i=int(input("Masukkan nilai baris 3 kolom 3 : "))
    print "============================="
    print "=========PILIH METODE========"
    print "1. Sarrus"
    print "2. Ekspansi baris kolom"
    print "3. Transformasi"
    pm=int(input("Masukkan Metode Pilihan Anda : "))
    if (pm == 1):
        print "============================="
        print "===========SARRUS============"
        print "Matriks : "
        print "|",a,b,c,"|"
        print "|",d,e,f,"|"
        print "|",g,h,i,"|"
        print "============================="
        print ("Determinannya Adalah : "),(a*e*i)+(b*f*g)+(c*d*h)-((c*e*g)+(a*f*h)+(b*d*i))
        print "============================="
        print " "       
        print "============================="
        print "===========PILIHAN==========="
        print "1. Hitung Lagi"
        print "2. Kembali ke menu"
        print "3. Keluar"
        pil=int(input("Masukkan Pilihan Anda : "))
        print "============================="
        if pil==1 :
            tigatiga()
        elif pil==2 :
            menu()
        elif pil==3 :
            exit()
        else:
            print('Pilihan Tidak Tersedia')
        print " "
        print "Mau Coba lagi ? [Y/N]"
        coba = raw_input().upper()
        if coba == "Y":
            menu()
        else:
             exit()
    elif (pm == 2):
        print "============================="
        print "=======PILIH EKSPANSI========"
        print "============================="
        print "1. Baris 1"
        print "2. Baris 2"
        print "3. Baris 3"
        print "4. Kolom 1"
        print "5. Kolom 2"
        print "6. Kolom 3"
        pil=int(input("Pilihan : "))
        print "============================="
        print "===========EKSPANSI=========="
        print "Matriks : "
        print "|",a,b,c,"|"
        print "|",d,e,f,"|"
        print "|",g,h,i,"|"
        print "============================="
        if (pil == 1):
            print("Determinannya Jika Menggunakan Baris ke-1 : "),(a*((e*i)-(f*h)))+(-1*b*((d*i)-(g*f)))+(c*((d*h)-(g*e)))
            tigatiga
        elif (pil == 2):
            print("Determinannya Jika Menggunakan Baris ke-2 : "),(-1*d*((b*i)-(c*h)))+(e*((a*i)-(g*c)))+(-1*f*((a*h)-(g*b)))

        elif (pil == 3):
            print("Determinannya Jika Menggunakan Baris ke-3 : "),(g*((b*f)-(e*c)))+((-1*h)*((a*f)-(d*c)))+(i*((a*e)-(d*b)))

        elif (pil == 4):
            print("Determinannya Jika Menggunakan Kolom ke-1 : "),(a*((e*i)-(h*f))+((-1*d)*((b*i)-(c*h))+(g*((b*f)-(e*c)))))

        elif (pil == 5):
            print("Determinannya Jika Menggunakan Kolom ke-2 : "),(-1*b*((d*i)-(g*f)))+(e*((a*i)-(c*g)))+(-1*h*((a*f)-(d*c)))

        elif (pil == 6):
            print("Determinannya Jika Menngunakan Kolom ke-3 : ",(c*((d*h)-(e*g)))+(-1*f*((a*h)-(b*g)))+(i*((a*e)-(d*b))))

        else:
            print " Pilihan Anda Tidak Tersedia"
            print " "       
            print "============================="
            print "===========PILIHAN==========="
            print "1. Hitung Lagi"
            print "2. Kembali ke menu"
            print "3. Keluar"
            pil=int(input("Masukkan Pilihan Anda : "))
            print "============================="
            if pil==1 :
                tigatiga()
            elif pil==2 :
                menu()
            elif pil==3 :
                exit()
            else:
                print('Pilihan Tidak Tersedia')
            print " "
            print "Mau Coba lagi ? [Y/N]"
            coba = raw_input().upper()
            if coba == "Y":
                menu()
            else:
                exit()
           
    elif (pm == 3):
        def mat():
            print"====TRANSFORMASI ELEMENTER===="
            a=int(input('Masukkan nilai baris 1 kolom 1 : '))
            b=int(input('Masukkan nilai baris 1 kolom 2 : '))
            c=int(input('Masukkan nilai baris 1 kolom 3 : '))
            d=int(input('Masukkan nilai baris 2 kolom 1 : '))
            e=int(input('Masukkan nilai baris 2 kolom 2 : '))
            f=int(input('Masukkan nilai baris 2 kolom 3 : '))
            g=int(input('Masukkan nilai baris 3 kolom 1 : '))
            h=int(input('Masukkan nilai baris 3 kolom 2 : '))
            i=int(input('Masukkan nilai baris 3 kolom 3 : '))
        def matriks():
            print "============================="
            print "Matriks : "
            print "|",a,b,c,"|"
            print "|",d,e,f,"|"
            print "|",g,h,i,"|"
        matriks()
        def trans():
            print "============================="
            print "====PILIHAN TRANSFORMASI====="
            print ('1. H12')
            print ('2. K23')
            print ('3. H2^(-2)')
            print ('4. H21')
            print ('5. H32')
            print ('6. H31')
            print ('7. Mengalikan Kolom dengan skalar')
            print ('8. Mengalikan Baris dengan skalar')
            print ('9. Keluar')
            pil=int(input('Masukkan Pilihan Anda : '))
            print "============================="
            if (pil==1):
                print "|",d,e,f,"|"
                print "|",a,b,c,"|"
                print "|",g,h,i,"|"
                trans()
            elif(pil==2):
                print "|",a,c,b,"|"
                print "|",d,f,e,"|"
                print "|",g,i,h,"|"
                trans()
            elif(pil==3):
                print "|",a,b,c,"|"
                print "|",d*-2,e*-2,f*-2,"|"
                print "|",g,h,i,"|"
                trans()
            elif(pil==4):
                print "|",a,b,c,"|"
                print "|",e,d,f,"|"
                print "|",h,g,i,"|"
                trans()
            elif(pil==5):
                print "|",a,b,c,"|"
                print "|",d,e,f,"|"
                print "|",g,h,i,"|"
                trans()
            elif(pil==6):
                print "|",a,b,c,"|"
                print "|",d,e,f,"|"
                print "|",g,h,i,"|"
                trans()
            elif(pil==7):
                def menkol():
                    print "===========PILIH============="
                    print ('1. Kolom 1')
                    print ('2. Kolom 2')
                    print ('3. Kolom 3')
                    print ('4. Menu Utama')
                    kol=int(input('Masukkan Kolom Pilihan Anda : '))
                    if (kol==1):
                        skl=float(input('Masukkan Bilangan Skalar : '))
                        print "|",skl*a,b,c,"|"
                        print "|",skl*d,e,f,"|"
                        print "|",skl*g,h,i,"|"
                        menkol()
                    elif (kol==2):
                        skl=float(input('Masukkan Bilangan Skalar : '))
                        print "|",a,skl*b,c,"|"
                        print "|",d,skl*e,f,"|"
                        print "|",g,skl*h,i,"|"
                        menkol()
                    elif (kol==3):
                        skl=float(input('Masukkan Bilangan Skalar : '))
                        print "|",a,b,skl*c,"|"
                        print "|",d,e,skl*f,"|"
                        print "|",g,h,skl*i,"|"
                        menkol()
                    elif (kol==4):
                        trans()
                    else :
                        print ('Pilihan Tidak Tersedia')
                        menkol()
                menkol()
                trans()
            elif(pil==8):
                def menbar():
                    print "===========PILIH============="
                    print ('1. Baris 1')
                    print ('2. Baris 2')
                    print ('3. Baris 3')
                    print ('4. Menu Utama')
                    bar=int(input('Masukkan Baris Pilihan Anda : '))
                    if (bar==1):
                        ska=float(input('Masukkan Bilangan Skalar : '))
                        print "|",ska*a,ska*b,ska*c,"|"
                        print "|",d,e,f,"|"
                        print "|",g,h,i,"|"
                        menbar()
                    elif (bar==2):
                        ska=float(input('Masukkan Bilangan Skalar : '))
                        print "|",a,b,c,"|"
                        print "|",ska*d,ska*e,ska*f,"|"
                        print "|",g,h,i,"|"
                        menbar()
                    elif (bar==3):
                        ska=float(input('Masukkan Bilangan Skalar : '))
                        print "|",a,b,c,"|"
                        print "|",d,e,f,"|"
                        print "|",ska*g,ska*h,ska*i,"|"
                    elif (bar==4):
                        trans()
                    else:
                        print ('Pilihan Tidak Tersdia')
                        menbar()
                menbar()
                trans()
            elif(pil==9):
                print('Terima Kasih')
                exit()
            else:
                print('Pilihan Tidak Tersedia, Silahkan Coba Lagi')
                trans()
        trans()
    mat()
    print " "
    print "Mau Coba lagi ? [Y/N]"
    coba = raw_input().upper()
    if coba == "Y":
        menu()
    else:
        exit()

def empatempat():
    print """
    =============================
          MATRIX ORDO 4 X 4
    =============================
    """
    a=int(input("Masukkan Nilai Baris 1 Kolom 1 : "))
    b=int(input("Masukkan Nilai Baris 1 Kolom 2 : "))
    c=int(input("Masukkan Nilai Baris 1 Kolom 3 : "))
    d=int(input("Masukkan Nilai Baris 1 Kolom 4 : "))
    e=int(input("Masukkan Nilai Baris 2 Kolom 1 : "))
    f=int(input("Masukkan Nilai Baris 2 Kolom 2 : "))
    g=int(input("Masukkan Nilai Baris 2 Kolom 3 : "))
    h=int(input("Masukkan Nilai Baris 2 Kolom 4 : "))
    i=int(input("Masukkan Nilai Baris 3 Kolom 1 : "))
    j=int(input("Masukkan Nilai Baris 3 Kolom 2 : "))
    k=int(input("Masukkan Nilai Baris 3 Kolom 3 : "))
    l=int(input("Masukkan Nilai Baris 3 Kolom 4 : "))
    m=int(input("Masukkan Nilai Baris 4 Kolom 1 : "))
    n=int(input("Masukkan Nilai Baris 4 Kolom 2 : "))
    o=int(input("Masukkan Nilai Baris 4 Kolom 3 : "))
    p=int(input("Masukkan Nilai Baris 4 Kolom 4 : "))
    a2412=(-1)*((e*n)-(f*m))
    a2413=(e*o)-(g*m)
    a2414=(-1)*((e*p)-(m*h))
    a2423=(-1)*((f*o)-(n*g))
    a2424=(f*p)-(n*h)
    a2434=(-1)*((g*p)-(o*h))
    m1312=(a*j)-(i*b)
    m1313=(a*k)-(i*c)
    m1314=(a*l)-(d*i)
    m1323=(b*k)-(j*c)
    m1324=(b*l)-(j*d)
    m1334=(c*l)-(k*d)
    print "============================="
    print "===========MATRIX============"
    print "|",a,b,c,d,"|"
    print "|",e,f,g,h,"|"
    print "|",i,j,k,l,"|"
    print "|",m,n,o,p,"|"
    print "===========Laplace==========="
    print ('A2412 = '),a2412
    print ('A2413 = '),a2413
    print ('A2414 = '),a2414
    print ('A2423 = '),a2423
    print ('A2424 = '),a2424
    print ('A2434 = '),a2434
    print ('M1312 = '),m1312
    print ('M1313 = '),m1313
    print ('M1314 = '),m1314
    print ('M1323 = '),m1323
    print ('M1324 = '),m1324
    print ('M1334 = '),m1334
    print "============================="
    det=(a2412*m1334)+(a2413*m1324)+(a2414*m1323)+(a2423*m1314)+(a2424*m1313)+(a2434*m1312)
    print ("Det ="),'(a2412*m1334)+(a2413*m1324)+(a2414*m1323)+(a2423*m1314)+(a2424*m1313)+(a2434*m1312)'
    print ("    ="),a2412,'*',m1334,'+',a2413,'*',m1324,'+',a2414,'*',m1323,'+',a2423,'*',m1314,'+',a2424,'*',m1313,'+',a2434,'*',m1312
    print ("    ="),det
    print "============================="
    print "===========PILIHAN==========="
    print "1. Hitung Lagi"
    print "2. Kembali ke menu"
    print "3. Keluar"
    pil=int(input("Masukkan Pilihan Anda : "))
    print "============================="
    if pil==1 :
        empatempat()
    elif pil==2 :
        menu()
    elif pil==3 :
        exit()
    else:
        print('Pilihan Tidak Tersedia')
    print " "
    print "Mau Coba lagi ? [Y/N]"
    coba = raw_input().upper()
    if coba == "Y":
        menu()
    else:
        exit()

def limalima():
    print """
    =============================
          MATRIX ORDO 5 x 5
    =============================
    """
    a=int(input('Masukkan Baris 1 Kolom 1 : '))
    b=int(input('Masukkan Baris 1 Kolom 2 : '))
    c=int(input('Masukkan Baris 1 Kolom 3 : '))
    d=int(input('Masukkan Baris 1 Kolom 4 : '))
    e=int(input('Masukkan Baris 1 Kolom 5 : '))
    f=int(input('Masukkan Baris 2 Kolom 1 : '))
    g=int(input('Masukkan Baris 2 Kolom 2 : '))
    h=int(input('Masukkan Baris 2 Kolom 3 : '))
    i=int(input('Masukkan Baris 2 Kolom 4 : '))
    j=int(input('Masukkan Baris 2 Kolom 5 : '))
    k=int(input('Masukkan Baris 3 Kolom 1 : '))
    l=int(input('Masukkan Baris 3 Kolom 2 : '))
    m=int(input('Masukkan Baris 3 Kolom 3 : '))
    n=int(input('Masukkan Baris 3 Kolom 4 : '))
    o=int(input('Masukkan Baris 3 Kolom 5 : '))
    p=int(input('Masukkan Baris 4 Kolom 1 : '))
    q=int(input('Masukkan Baris 4 Kolom 2 : '))
    r=int(input('Masukkan Baris 4 Kolom 3 : '))
    s=int(input('Masukkan Baris 4 Kolom 4 : '))
    t=int(input('Masukkan Baris 4 Kolom 5 : '))
    u=int(input('Masukkan Baris 5 Kolom 1 : '))
    v=int(input('Masukkan Baris 5 Kolom 2 : '))
    w=int(input('Masukkan Baris 5 Kolom 3 : '))
    x=int(input('Masukkan Baris 5 Kolom 4 : '))
    y=int(input('Masukkan Baris 5 Kolom 5 : '))
    det1=(g*((((m*s*y)+(n*t*w)+(o*r*x))-((w*s*o)+(x*t*m)+(n*r*y)))))
    det2=(-1)*(h*(((l*s*y)+(n*t*v)+(o*q*x))-((o*s*v)+(l*t*x)+(n*q*y))))
    det3=(i*((((l*r*y)+(m*t*v)+(o*q*w))-((o*r*v)+(l*t*w)+(m*q*y)))))
    det4=(-1)*(j*(((l*r*x)+(m*s*v)+(n*q*w))-((n*r*v)+(w*s*l)+(m*q*x))))
    deta=det1+det2+det3+det4
    det5=(f*(((m*s*y)+(n*t*w)+(o*r*x))-((o*s*w)+(m*t*x)+(n*r*y))))
    det6=(-1)*(h*(((k*s*y)+(n*t*u)+(o*p*x))-((o*s*u)+(k*t*x)+(n*p*y))))
    det7=(i*(((k*r*y)+(m*t*u)+(o*p*w))-((o*r*u)+(k*t*w)+m*p*y)))
    det8=(-1)*(j*(((k*r*x)+(m*s*u)+(n*p*w))-((n*r*u)+(k*s*w)+(m*p*x))))
    detb=det5+det6+det7+det8
    det9=(f*(((l*s*y)+(n*t*v)+(o*q*x))-((o*s*v)+(l*t*x)+(n*q*y))))
    det10=(-1)*(g*(((k*s*y)+(n*t*u)+(o*p*x))-((o*s*u)+(k*t*x)+(n*p*y))))
    det11=(i*(((k*q*y)+(l*t*u)+(o*p*v))-((o*q*u)+(k*t*v)+(l*p*y))))
    det12=(-1)*(j*(((k*q*x)+(l*s*u)+(n*p*v))-((n*q*u)+(k*s*v)+(l*p*x))))
    detc=det9+det10+det11+det12
    det13=(f*(((l*r*y)+(m*t*v)+(o*q*w))-((o*r*v)+(l*t*w)+(m*q*y))))
    det14=(-1)*(g*(((k*r*y)+(m*t*u)+(o*p*w))-((o*r*u)+(k*t*w)+(m*p*y))))
    det15=(h*(((k*q*y)+(l*t*u)+(o*p*v))-((o*q*u)+(k*t*v)+(l*p*y))))
    det16=(-1)*(j*(((k*q*w)+(l*r*u)+(m*p*v))-((m*q*u)+(k*r*v)+(l*p*w))))
    detd=det13+det14+det15+det16
    det17=(f*(((l*r*x)+(m*s*v)+(n*q*w))-((n*r*v)+(l*s*w)+(m*q*x))))
    det18=(-1)*(g*(((k*r*x)+(m*s*u)+(n*p*w))-((n*r*u)+(k*s*w)+(m*p*x))))
    det19=(h*(((k*q*x)+(l*s*u)+(n*p*v))-((n*q*u)+(k*s*v)+(l*p*x))))
    det20=(-1)*(i*(((k*q*w)+(l*r*u)+(m*p*v))-((m*q*u)+(k*r*v)+(l*p*w))))
    dete=det17+det18+det19+det20
    dettot=(a*deta)+((-1)*b*detb)+(c*detc)+((-1)*d*detd)+(e*dete)
    print "============================="
    print "===========MATRIX============"
    print "|",a,b,c,d,e,"|"
    print "|",f,g,h,i,j,"|"
    print "|",k,l,m,n,o,"|"
    print "|",p,q,r,s,t,"|"
    print "|",u,v,w,x,y,"|"
    print "============================="
    print "===Ekspansi baris kolom 1===="
    print "Determinan dari Matriks diatas adalah : ","(",a,"*",deta,")","+","(",(-1)*b,"*",detb,"}","+","(",c,"*",detc,")","+","(",(-1)*d,"*",detd,")","+","(",e,"*",dete,")","=",dettot
    print " "
    print "============================="
    print "===========PILIHAN==========="
    print "1. Hitung Lagi"
    print "2. Keluar"
    pil=int(input('Masukkan Pilihan Anda : '))
    print "============================="
    if pil==1 :
        limalima()
    elif pil==2 :
        exit()
    else:
        print('Pilihan Tidak Tersedia')
    print " "
    print "Mau Coba lagi ? [Y/N]"
    coba = raw_input().upper()
    if coba == "Y":
        menu()
    else:
        exit()
       
def keluar():
    exit()

menu()

4 komentar:

  1. Kak program ini ada yang dalam bentuk flowchart ngak terimakasih

    BalasHapus
  2. kak knpa dia salah pas keluar itu

    BalasHapus
    Balasan
    1. mungkin versi python mempengaruhi, ini pakai python jadul, lupa versi berapa

      Hapus