Procedure Insert(x : TipeData; Var T : BST);
Begin
If (T = Nil) Then (* Jika ditemukan T yang nil *)
Begin
New(T);(* ciptakan node baru ditunjuk oleh T *)
T^.Kiri := Nil; (* Set pointer kiri = nil *)
T^.Info := x; (* Isi data pada node = x *)
T^.Kanan := Nil; (* Set pointer kanan = nil *)
End
Else (If x = T^.Data) Then (* x sudah ada dalam T *)
Writeln(‘Error : data tersebut sudah ada *)
Else (If x < T^.Data) Then
Insert(x, T^.Ki) (*jika x data yang ditunuk T sisipkan x ke kanan *)
Insert(x, T^.Ka)
End;