Postingan

Praktik Cohort Analisis menggunakan Python

Gambar
Praktik ini menggunakan Google Colab dan menggunakan bahasa Python. Dataset yang digunakan berasal dari Kaggle : https://www.kaggle.com/datasets/carrie1/ecommerce-data?resource=download Cohort  adalah sekumpulan objek yang dikelompokan berdasarkan karakteristik yang serupa. Cohort Analysis adalah proses analisis digunakan untuk memahami perubahan user engagement dari waktu ke waktu. Berikut langkah-langkah analisi cohort menggunakan google colab: 1.  Upload dan menampilkan data. Dataset yang  sudah di download dari Kaggle tersebut maka bisa di upload dengan cara : 1.        Buka google colab dan klik pada Folder 2.        Klik ikon “Upload File” lalu silahkan pilih file e-commerce(file dataset yang sudah di download, biasanya hasilnya masih zip maka harus di ekstark terlebih dahulu). Mohon ditunggu sampai dataset terupload dengan baik. 3.        Ketika data sudah berhasil terupload, maka Namanya akan berubah menjadi “data.csv” (csv merupakan jenis file, atau kepanjangan dari Comma Sep

Tree

Gambar
class Node: def __init__ ( self , data): self .left = None self .right = None self .data = data def insert ( self , data): # Compare the new value with the parent node if self .data: if data < self .data: if self .left is None : self .left = Node(data) else : self .left.insert(data) elif data > self .data: if self .right is None : self .right = Node(data) else : self .right.insert(data) else : self .data = data # Print the tree def PrintTree ( self ): if self .left: self .left.PrintTree() print ( self .data) , if self .right: self .right.PrintTree() class Node: def __init__ ( self , data): self .left = None self .right = None self .data = data def insert ( sel

Single Linked List

Gambar
class Node: def __init__ ( self , value): self .value = value self .next = None def getData ( self ): return self .value def getNext ( self ): return self .next def setData ( self , newData): self .value = newData def setNext ( self , newNext): self .next = newNext class OrderedList: def __init__ ( self ): self .head = None def show ( self ): current = self .head print ( 'Head->' , end = "" ) while current != None : print (current.getData() , end = "->" ) current = current.getNext() print ( 'None' ) def search ( self , item): current = self .head count = 0 while current is not None : if current.value == item: count += 1 print ( 'data ditemukan' ) print ( 'jumlah : ' , count)

Double Linked List(2)

Gambar
class Node: def __init__ ( self , initdata): self .data = initdata self .next = None self .prev = None def getData ( self ): return self .data def getNext ( self ): return self .next def getPrev ( self ): return self .prev def setData ( self , newdata): self .data = newdata def setNext ( self , newnext): self .next = newnext def setPrev ( self , newprev): self .prev = newprev class orderedlist: def __init__ ( self ): self .head = None def show ( self ): current = self .head print ( 'None <-' ) print ( 'Head ->' , end = '' ) while current != None : if current.getNext() == None : print (current.getData() , end = '->' ) else : print (current.getData() , end = '<->' ) current = current.getNext() print ( 'No

Double Linked List

Gambar
class Node: def __init__ ( self , data): self .data = data self .next = None self .prev = None class DoublyLinkedList: def __init__ ( self ): self .first = None self .last = None def get_node ( self , index): current = self .first for i in range (index): if current is None : return None current = current.next return current def insert_after ( self , ref_node , new_node): new_node.prev = ref_node if ref_node.next is None : self .last = new_node else : new_node.next = ref_node.next new_node.next.prev = new_node ref_node.next = new_node def insert_before ( self , ref_node , new_node): new_node.next = ref_node if ref_node.prev is None : self .first = new_node else : new_node.prev = ref_node.prev new_node.prev.next = new_node r

Circular Singly Linked List

Gambar
# Represents the node of list. class Node: def __init__ ( self , data): self .data = data; self .next = None ; class CreateList: # Declaring head and tail pointer as null. def __init__ ( self ): self .head = Node( None ); self .tail = Node( None ); self .head.next = self .tail; self .tail.next = self .head; # This function will add the new node at the end of the list. def add ( self , data): newNode = Node(data); # Checks if the list is empty. if self .head.data is None : # If list is empty, both head and tail would point to new node. self .head = newNode; self .tail = newNode; newNode.next = self .head; else : # tail will point to new node. self .tail.next = newNode; # New node will become new tail. self .tail = newNode; # Since, it is circular linked list tail will poin

Bubblesort

Gambar
def bubblesort (list): # Swap the elements to arrange in order for iter_num in range ( len (list)- 1 , 0 , - 1 ): for idx in range (iter_num): if list[idx]>list[idx+ 1 ]: temp = list[idx] list[idx] = list[idx+ 1 ] list[idx+ 1 ] = temp list = [ 19 , 2 , 31 , 45 , 6 , 11 , 121 , 27 ] bubblesort(list) print (list)