Parametrically

Graphing parametrically is fairly easy. Plotting the solution for {L, q} will show q as a function of L.
param=First@​​SolveValues[{L==z(1+Tanh[z])/2,q==-z^2/(2L^2)},{L,q}]
Out[]=

1
2
z(1+Tanh[z]),-
2
2
(1+Tanh[z])

ParametricPlot[param,{z,-1,5},AspectRatio->1/GoldenRatio]
Out[]=
1
2
3
4
5
-4.0
-3.5
-3.0
-2.5
-2.0
-1.5
-1.0
-0.5

Lambert W (ProductLog[]) solution

Reduce[L==z(1+Tanh[z])/2//TrigToExp,z]
Out[]=
(L0&&z0)||1+
2z

≠0&&(L0&&z0)||

1
∈&&L≠0&&zL+
1
2
ProductLog[

1
,2
-2L

L]
The Lambert W function (ProductLog[]) has two real branches, one for C[1]  0 and one for C[1]  -1.
qL0=First@​​SolveValues[{Reduce[L==z(1+Tanh[z])/2//TrigToExp,z]/.​​C[1]->0,q==-z^2/(2L^2)},q,{z},Reals]//FullSimplify
Out[]=
-
2
(2L+ProductLog[2
-2L

L])
8
2
L
if L>0||-
1
2
ProductLog
1

≤L<0
qL1=First@​​SolveValues[{Reduce[L==z(1+Tanh[z])/2//TrigToExp,z]/.​​C[1]->-1,q==-z^2/(2L^2)},q,{z},Reals]//FullSimplify
Out[]=
-
2
(2L+ProductLog[-1,2
-2L

L])
8
2
L
if -
1
2
ProductLog
1

≤L<0
The two branches start at the same point and increase and decrease respectively. The -1 branch is defined only over a narrow range of values of L.
Plot[{qL0,qL1},{L,-(1/2)ProductLog[1/E],5},​​PlotRange->{-100,0},ScalingFunctions->"SignedLog"]
Out[]=

Why you should embrace the Lambert W function

Your occupation is listed as "student", but I don't know if that's grade six or graduate school. :) If you might have a career in chemistry, physics, combinatorics, or other mathematical disciplines, the W function has proved very useful in many fields since attention was brought to it in 1996 in Corless, et al., http://dx.doi.org/10.1007/BF02124750. See Nick Higham's blog, https://nhigham.com/2016/08/23/corless-knuth-and-lambert-w/, for more.